/* ---------- CSS Variables (テーマ共通) ---------- */
:root {
  --H-text-base: #1D1D1F;
  --H-text-btn: #FFFFFF;
  --H-base-font-family: "Noto Sans JP", sans-serif;
  --H-accent-font-family: "Noto Serif JP", sans-serif;
  --H-font-weight: 400;
  --H-main-color: #003754;
  --H-btn-color: #50B996;
  --Base: #ffffff;
  --Accent-1: #000000;
  --Accent-2: #386f81;
  --Sub: #868686;
  --Link: #386f81;
  --Background: #f5f8fa;
  --Alert: #e21e1e;
  --Border-1: #d8dddf;
  --Border-2: #bdc1c2;
  --font-size-text-body: 14px;
}

:root {
  font-family: var(--H-base-font-family);
  font-size: 100%;
  font-weight: var(--H-font-weight);
  color: var(--H-text-base);
}

/* ---------- Reset (テーマ共通) ---------- */
* {
  box-sizing: border-box;
  color: inherit;
}
*:before,
*:after {
  box-sizing: border-box;
  color: inherit;
}

body {
  -webkit-text-size-adjust: 100%;
  position: relative;
  -webkit-overflow-scrolling: touch;
}

body,
section,
article,
address,
div,
ul,
ol,
li,
table,
tr,
th,
td,
dl,
dt,
dd,
h1,
h2,
h3,
h4,
h5,
p,
a,
span,
strong,
small,
b,
pre,
form,
input,
select,
textarea,
button,
pre {
  font-family: inherit;
  font-style: inherit;
  text-decoration: inherit;
  margin: 0;
  padding: 0;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}

a {
  -webkit-text-decoration: none;
  text-decoration: none;
}

*:link,
*:visited,
*:active {
  text-decoration: inherit;
}

img,
video {
  display: block;
  width: 100%;
  height: auto;
  border: none;
}

ul,
ol,
li {
  list-style: none;
}

/* ---------- Header (bundle.css ベース + style.css カスタム) ---------- */
.l-header {
  width: 100%;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 100;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  background-color: var(--H-main-color);
  border-top: unset;
  border-bottom: unset;
  margin-bottom: 0;
  padding-bottom: 0;
}

.l-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 1180px;
  min-height: 70px;
  padding: 5px 100px 0;
  margin: 0 auto;
  padding-bottom: 0;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-header__inner {
    min-height: 140px;
  }
}

@media screen and (max-width: 750px) {
  .l-header__inner {
    min-height: 18.6666666667vw;
    padding: 0;
    height: 50px;
    padding: 0 20px;
  }
}

/* Hamburger */
.l-header__inner__btn {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 30px;
  margin: auto;
  width: 60px;
  height: 34px;
}

@media screen and (min-width: 1181px) {
  .l-header__inner__btn {
    display: none;
  }
}

@media screen and (max-width: 750px) {
  .l-header__inner__btn {
    left: 4vw;
    width: 8vw;
    height: 4.5333333333vw;
  }
}

.l-header__inner__btn__bar {
  width: 100%;
  background-color: #fff;
  height: 4px;
  position: absolute;
}

@media screen and (max-width: 750px) {
  .l-header__inner__btn__bar {
    height: 0.5333333333vw;
  }
}

.l-header__inner__btn__bar:nth-child(1) { top: 0; }
.l-header__inner__btn__bar:nth-child(2) { top: 48%; }
.l-header__inner__btn__bar:nth-child(3) { top: 98%; }

/* Close */
.l-header__inner__close {
  display: block;
  width: 60px;
  height: 60px;
  position: relative;
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  margin-left: unset;
}

@media screen and (min-width: 1181px) {
  .l-header__inner__close { display: none; }
}

@media screen and (max-width: 750px) {
  .l-header__inner__close {
    width: 10.4vw;
    height: 10.4vw;
  }
}

.l-header__inner__close::before,
.l-header__inner__close::after {
  position: absolute;
  content: "";
  width: 60%;
  height: 4px;
  top: 0; bottom: 0; left: 0; right: 0;
  margin: auto;
  background-color: #fff;
  transform-origin: center;
}

@media screen and (max-width: 750px) {
  .l-header__inner__close::before,
  .l-header__inner__close::after { height: 0.8vw; }
}

.l-header__inner__close::before { transform: rotate(45deg); }
.l-header__inner__close::after { transform: rotate(-45deg); }

/* Overlay */
.l-header__inner__overlay {
  display: none;
  width: 100vw;
  height: 100vh;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
  background-color: rgba(0, 0, 0, 0.5);
}

@media screen and (min-width: 1181px) {
  .l-header__inner__overlay { display: none; }
}

.l-header__inner__overlay.is-open { display: block; }

/* Logo */
.l-header__inner__logo {
  margin: 0 auto;
  max-width: 362px;
  width: 48.2666666667vw;
}

@media screen and (min-width: 1181px) {
  .l-header__inner__logo {
    margin: 0;
    max-width: 294px;
    width: 39.2vw;
  }
}

.l-header__inner__logo picture {
  width: 100%;
  display: block;
}

/* SP Wrap (Sidebar Menu) */
.l-header__inner__spWrap {
  display: flex;
  align-items: center;
  gap: 0 30px;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-header__inner__spWrap {
    position: absolute;
    top: 0;
    left: -5%;
    pointer-events: none;
    width: 82.1333333333%;
    background-color: var(--H-main-color);
    height: 100vh;
    transition: all 0.3s ease-in-out;
    padding: 40px;
    opacity: 0;
    display: block;
    overflow-y: scroll;
    padding-bottom: 20vh;
  }
  .l-header__inner__spWrap.is-open {
    left: 0%; opacity: 1; pointer-events: all; z-index: 99;
  }
}

@media screen and (max-width: 750px) {
  .l-header__inner__spWrap {
    position: absolute;
    top: 0;
    left: -5%;
    pointer-events: none;
    width: 82.1333333333%;
    background-color: var(--H-main-color);
    height: 100vh;
    transition: all 0.3s ease-in-out;
    padding: 8vw 5.3333333333vw;
    opacity: 0;
    display: block;
    overflow-y: scroll;
    padding-bottom: 20vh;
  }
  .l-header__inner__spWrap.is-open {
    left: 0%; opacity: 1; pointer-events: all; z-index: 99;
  }
}

/* Block */
.l-header__inner__block {
  display: flex;
  position: relative;
  justify-content: space-between;
  width: 241px;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-header__inner__block {
    flex-wrap: wrap; gap: 0; padding: 0; width: 100%;
  }
}

@media screen and (max-width: 750px) {
  .l-header__inner__block {
    flex-wrap: wrap; gap: 0; padding: 0; width: 100%;
  }
}

/* Nav Links */
.l-header__inner__block__nav {
  display: flex;
  gap: 0 20px;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-header__inner__block__nav {
    flex-direction: column; padding: 0; margin-top: 20px;
    border-top: solid 1px #fff; gap: 0;
  }
}

@media screen and (max-width: 750px) {
  .l-header__inner__block__nav {
    flex-direction: column; padding: 0;
    margin-top: 5.8666666667vw;
    border-top: solid 1px #fff; gap: 0;
  }
}

.l-header__inner__block__nav__link {
  font-size: 1rem;
  letter-spacing: 0em;
  line-height: 1.5;
  color: var(--H-text-btn);
  font-weight: bold;
  cursor: pointer;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-header__inner__block__nav__link {
    font-size: 2.375rem; letter-spacing: 0.025em;
    line-height: 4.6052631579; width: 100%; padding-left: 16px;
  }
}

@media screen and (max-width: 750px) {
  .l-header__inner__block__nav__link {
    font-size: 5.0666666667vw; letter-spacing: 0.025em;
    line-height: 4.6052631579; width: 100%; padding-left: 2.1333333333vw;
  }
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-header__inner__block__nav__item {
    border-bottom: solid 1px #fff; display: flex; align-items: stretch;
  }
}

@media screen and (max-width: 750px) {
  .l-header__inner__block__nav__item {
    border-bottom: solid 1px #fff; display: flex; align-items: stretch;
  }
}

/* Items (Cart, etc.) */
.l-header__inner__block__item,
.l-header__inner__block__item--menu,
.l-header__inner__block__item--search {
  position: relative;
}

.l-header__inner__block__item:not(:last-child),
.l-header__inner__block__item--menu:not(:last-child),
.l-header__inner__block__item--search:not(:last-child) {
  margin-right: 20px;
}

@media screen and (max-width: 719px) {
  .l-header__inner__block__item:not(:last-child),
  .l-header__inner__block__item--menu:not(:last-child),
  .l-header__inner__block__item--search:not(:last-child) {
    margin-right: 15px;
  }
}

.l-header__inner__block__item i,
.l-header__inner__block__item--menu i,
.l-header__inner__block__item--search i {
  font-size: 24px;
}

@media screen and (max-width: 719px) {
  .l-header__inner__block__item i,
  .l-header__inner__block__item--menu i,
  .l-header__inner__block__item--search i {
    font-size: 20px;
  }
}

.l-header__inner__block__item--name {
  font-size: var(--font-size-text-body);
}

@media screen and (max-width: 719px) {
  .l-header__inner__block__item--name { display: none; }
}

.l-header__inner__block__item .count,
.l-header__inner__block__item--menu .count,
.l-header__inner__block__item--search .count {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 20px;
  height: 20px;
  font-size: 12px;
  position: absolute;
  left: 20px;
  top: -10px;
  padding: 0 4px;
  border-radius: 10px;
  line-height: 1;
}

@media screen and (max-width: 750px) {
  .l-header__inner__block__item .count,
  .l-header__inner__block__item--menu .count,
  .l-header__inner__block__item--search .count {
    width: 5.3333333333vw; height: 5.3333333333vw;
    border-radius: 50%; font-size: 2.8vw;
    top: 0; bottom: 24%; right: unset; left: 30%; margin: auto;
  }
}

@media screen and (min-width: 1181px) {
  .l-header__inner__block__item--cart {
    margin: 0 24px 0 8px !important;
  }
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-header__inner__block__item--cart { width: 100%; }
  .l-header__inner__block__item { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 50%; }
}

@media screen and (max-width: 750px) {
  .l-header__inner__block__item--cart { width: 100%; }
}

/* Header Links */
.l-header__inner__block__link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: 0.4s;
}

.l-header__inner__block__link:hover { opacity: 0.4; }

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-header__inner__block__link {
    border-bottom: solid 1px #fff; width: 100%;
    align-items: stretch; padding-left: 16px;
  }
  .l-header__inner__block__link img { display: none; }
}

@media screen and (max-width: 750px) {
  .l-header__inner__block__link {
    border-bottom: solid 1px #fff; width: 100%;
    align-items: stretch; padding-left: 2.1333333333vw;
  }
  .l-header__inner__block__link img { display: none; }
}

.l-header__inner__block__link__text {
  font-size: 0.6875rem; letter-spacing: 0.025em;
  line-height: 2.5454545455; color: var(--H-text-btn); font-weight: 500;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-header__inner__block__link__text {
    font-size: 2.375rem; letter-spacing: 0.025em; line-height: 4.6052631579;
  }
}

@media screen and (max-width: 750px) {
  .l-header__inner__block__link__text {
    font-size: 5.0666666667vw; letter-spacing: 0.025em; line-height: 4.6052631579;
  }
}

/* Sub Menu */
.l-header__inner__block__sub {
  padding: 35px 0;
  display: flex;
  flex-direction: column;
  gap: 21px 0;
}

@media screen and (min-width: 1181px) {
  .l-header__inner__block__sub { display: none; }
}

@media screen and (max-width: 750px) {
  .l-header__inner__block__sub {
    padding: 4.6666666667vw 0; gap: 2.8vw 0;
  }
}

.l-header__inner__block__sub__item {
  font-size: 1.75rem; letter-spacing: -0.025em; line-height: 1;
  text-decoration: underline; color: #fff; padding-left: 16px;
}

@media screen and (max-width: 750px) {
  .l-header__inner__block__sub__item {
    font-size: 3.7333333333vw; letter-spacing: -0.025em;
    line-height: 1; padding-left: 2.1333333333vw;
  }
}

/* Menu Open State */
body.is-menu-open {
  position: fixed;
  top: 0; left: 0; width: 100%; height: 100%; overflow: hidden;
}

/* ---------- Footer (bundle.css ベース + style.css カスタム) ---------- */
.l-footer {
  background-color: var(--H-main-color);
  padding: 48px 0;
  color: var(--H-text-base);
  border-top: unset;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.l-footer.footer_bg {
  background-color: var(--H-main-color);
  color: var(--H-text-base);
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer { padding: 118px 55px 77px; }
}

@media screen and (max-width: 750px) {
  .l-footer {
    padding: 15.7333333333vw 7.3333333333vw 10.2666666667vw;
    flex-direction: column;
  }
}

.l-footer__inner {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer__inner {
    display: grid; grid-template-columns: 51% 49%;
  }
}

@media screen and (max-width: 750px) {
  .l-footer__inner {
    display: grid; grid-template-columns: 51% 49%;
  }
}

.l-footer__logo {
  width: 210px;
  display: block;
  margin-right: auto;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer__logo {
    width: 472px; margin: 0 auto 110px; grid-column: 1/3;
  }
}

@media screen and (max-width: 750px) {
  .l-footer__logo {
    width: 62.9333333333vw; margin: 0 auto 14.6666666667vw; grid-column: 1/3;
  }
}

.l-footer-nav {
  margin-bottom: 35px;
  margin-right: 120px;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer-nav {
    margin: 0; border-top: solid 1px #CCCCCC;
    padding-top: 60px; grid-column: 1/2;
  }
}

@media screen and (max-width: 750px) {
  .l-footer-nav {
    margin: 0; border-top: solid 1px #CCCCCC;
    padding-top: 8vw; grid-column: 1/2;
  }
}

.l-footer-nav__item {
  font-size: 0.875rem; letter-spacing: 0em; line-height: 1.4285714286;
  color: var(--H-text-btn); margin-bottom: 5px; font-weight: 500;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer-nav__item {
    font-size: 1.875rem; letter-spacing: 0.025em;
    line-height: 1.4666666667; margin-bottom: 15px;
  }
}

@media screen and (max-width: 750px) {
  .l-footer-nav__item {
    font-size: 4vw; letter-spacing: 0.025em;
    line-height: 1.4666666667; margin-bottom: 2vw;
  }
}

.l-footer-nav__item:nth-child(1) { margin-bottom: 50px; }

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer-nav__item:nth-child(1) { margin-bottom: 120px; }
}

@media screen and (max-width: 750px) {
  .l-footer-nav__item:nth-child(1) { margin-bottom: 16vw; }
}

.l-footer-info {
  margin-right: 50px;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer-info {
    grid-column: 2/3; margin: 0;
    border-top: solid 1px #CCCCCC; padding-top: 60px;
  }
}

@media screen and (max-width: 750px) {
  .l-footer-info {
    grid-column: 2/3; margin: 0;
    border-top: solid 1px #CCCCCC; padding-top: 8vw;
  }
}

.l-footer-info__item {
  font-size: 0.625rem; letter-spacing: 0.025em; line-height: 1.5;
  color: var(--H-text-btn); margin-bottom: 3px; font-weight: 500;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer-info__item {
    font-size: 1.4375rem; letter-spacing: -0.025em;
    line-height: 1.4782608696; margin-bottom: 20px; padding-left: 25px;
  }
}

@media screen and (max-width: 750px) {
  .l-footer-info__item {
    font-size: 3.0666666667vw; letter-spacing: -0.025em;
    line-height: 1.4782608696; margin-bottom: 2.6666666667vw; padding-left: 3.3333333333vw;
  }
}

.l-footer-bottom {
  width: 100%;
  border-top: solid 1px #CCCCCC;
  border-bottom: solid 1px #CCCCCC;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer-bottom {
    margin-top: 76px; border-top: unset; border-bottom: unset;
    flex-direction: column-reverse; align-items: flex-start; grid-column: 1/3;
  }
}

@media screen and (max-width: 750px) {
  .l-footer-bottom {
    margin-top: 10.1333333333vw; border-top: unset; border-bottom: unset;
    flex-direction: column-reverse; align-items: flex-start; grid-column: 1/3;
  }
}

.l-footer__copy {
  font-size: 0.75rem; letter-spacing: 0em; line-height: 3.3333333333;
  color: var(--H-text-btn);
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer__copy {
    font-size: 1.375rem; line-height: 1.3636363636; margin-top: 20px;
  }
}

@media screen and (max-width: 750px) {
  .l-footer__copy {
    font-size: 2.9333333333vw; line-height: 1.3636363636; margin-top: 2.6666666667vw;
  }
}

.l-footer__company {
  font-size: 1.0625rem; letter-spacing: 0em; line-height: 2.3529411765;
  color: var(--H-text-btn); font-weight: bold;
}

@media screen and (min-width: 751px) and (max-width: 1180px) {
  .l-footer__company {
    font-size: 2.1875rem; line-height: 2.2285714286;
    border-top: solid 1px #CCCCCC; border-bottom: solid 1px #CCCCCC; width: 100%;
  }
}

@media screen and (max-width: 750px) {
  .l-footer__company {
    font-size: 4.6666666667vw; line-height: 2.2285714286;
    border-top: solid 1px #CCCCCC; border-bottom: solid 1px #CCCCCC; width: 100%;
  }
}

/* Footer Store Info */
.l-footer__info { flex: 1; max-width: 400px; }
@media screen and (max-width: 719px) { .l-footer__info { order: 2; } }

.l-footer__info__store__logo { max-width: 180px; margin-bottom: 20px; }

.l-footer__info__store__sns { margin-bottom: 20px; }

.l-footer__info__store__sns__item { transition: 0.4s; }
.l-footer__info__store__sns__item:hover { opacity: 0.4; }
.l-footer__info__store__sns__item:not(:last-child) { margin-right: 20px; }
.l-footer__info__store__sns__item i { font-size: 24px; }

.l-footer__info__store__copyright { font-size: 12px; }

.l-footer__info__newsletter { margin-bottom: 60px; }
.l-footer__info__newsletter__title { font-size: 16px; letter-spacing: 0.2em; margin-bottom: 10px; }
.l-footer__info__newsletter__lead { font-size: 12px; margin-top: 10px; margin-bottom: 12px; }

.l-footer__menu { display: flex; }
@media screen and (max-width: 719px) { .l-footer__menu { display: block; } }

/* ---------- Layout Container ---------- */
.l-container { display: block; }

/* ==========================================================================
   キャンペーンLP固有スタイル: .p-anniversary
   ========================================================================== */

/* ---------- Base ---------- */
.p-anniversary {
  font-family: "Noto Sans JP", sans-serif;
  color: #1E1E1E;
  line-height: 1.75;
  letter-spacing: 0.025em;
  max-width: 100%;
  margin: 0 auto;
  background: #fff;
  box-sizing: border-box;
  overflow: hidden;
}

.p-anniversary *,
.p-anniversary *::before,
.p-anniversary *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.p-anniversary img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ---------- Container ---------- */
.p-anniversary__container {
  max-width: 780px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ---------- Badge (特典1. / 特典2.) ---------- */
.p-anniversary__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 53px;
  padding: 0 28px;
  border-radius: 26.5px;
  border: 2px solid #7A6A56;
  background: linear-gradient(90deg, #EAD18F 4.167%, #C49D2C 47.511%, #F8E4C9 100%);
  font-weight: 700;
  font-size: 30px;
  line-height: 38px;
  letter-spacing: 0.025em;
  color: #000;
}

/* ---------- Divider ---------- */
.p-anniversary__divider {
  display: block;
  margin: 12px auto 0;
  width: auto;
  max-width: 100%;
}

/* ==========================================================================
   Section 02: Hero
   ========================================================================== */
.p-anniversary__hero {
  width: 100%;
}

.p-anniversary__hero-img {
  width: 100%;
  height: auto;
  display: block;
}

/* ==========================================================================
   Section 03: Message
   ========================================================================== */
.p-anniversary__message {
  padding: 74px 0 60px;
}

.p-anniversary__message-heading {
  font-weight: 700;
  font-size: 30px;
  line-height: 1.27;
  letter-spacing: 0.025em;
  color: #2D3E56;
  margin: 0 0 40px;
}

.p-anniversary__message-body {
  font-weight: 500;
  font-size: 16px;
  line-height: 1.75;
  color: #1E1E1E;
}

.p-anniversary__message-body p {
  margin: 0;
}

.p-anniversary__blank {
  display: block;
  height: 28px;
}

.p-anniversary__message-sign {
  font-weight: 500;
  font-size: 16px;
  line-height: 1.75;
  color: #1E1E1E;
  text-align: right;
  margin: 24px 0 0;
}

/* ==========================================================================
   Section 04: Benefit 1 — Products
   ========================================================================== */
.p-anniversary__products {
  background: #EFEFEF;
  padding: 67px 0 80px;
}

.p-anniversary__products-header {
  text-align: center;
  margin-bottom: 40px;
}

.p-anniversary__products-title {
  font-weight: 700;
  font-size: 30px;
  line-height: 38px;
  letter-spacing: 0.025em;
  color: #2D3E56;
  margin: 16px 0 0;
}

/* --- Product Cards Grid --- */
.p-anniversary__products-grid {
  display: flex;
  gap: 30px;
  justify-content: center;
  padding: 0 20px;
}

.p-anniversary__card {
  width: 345px;
  flex-shrink: 0;
  text-decoration: none;
  color: inherit;
}

.p-anniversary__card-label {
  background: #2D3E56;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px 10px 0 0;
}

.p-anniversary__card-label-text {
  font-weight: 700;
  font-size: 20px;
  line-height: 21px;
  letter-spacing: 0.025em;
  color: #fff;
}

.p-anniversary__card-image {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

.p-anniversary__card-desc {
  background: #fff;
  padding: 20px 16px;
  border-radius: 0 0 10px 10px;
  min-height: 86px;
  text-align: center;
}

.p-anniversary__card-desc p {
  font-weight: 500;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: rgba(0,0,0,0.8);
  margin: 0;
}

.p-anniversary__card-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 269px;
  height: 48px;
  margin: 16px auto 0;
  background: #31A396;
  border-radius: 24px;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.2s;
}

.p-anniversary__card-cta:hover {
  opacity: 0.85;
}

/* ==========================================================================
   Section 05: Benefit 2 — Coupon
   ========================================================================== */
.p-anniversary__coupon {
  background: #EFEFEF;
  padding: 25px 0 80px;
}

.p-anniversary__coupon-header {
  text-align: center;
  margin-bottom: 40px;
}

.p-anniversary__coupon-title {
  font-weight: 700;
  font-size: 30px;
  line-height: 38px;
  letter-spacing: 0.025em;
  color: #2D3E56;
  margin: 16px 0 0;
}

/* --- Coupon Card --- */
.p-anniversary__coupon-card {
  max-width: 780px;
  margin: 0 auto;
  border-radius: 10px;
  background: linear-gradient(90deg, #EAD18F 0%, #E4CBAA 52.404%, #D8B85F 100%);
  padding: 40px;
  text-align: center;
}

.p-anniversary__coupon-logo {
  width: 50%;
  margin: 10px auto 0;
}

.p-anniversary__coupon-subtitle {
  font-weight: 500;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: #1E1E1E;
  margin: 12px 0 0;
}

.p-anniversary__coupon-desc {
  font-weight: 500;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: #1E1E1E;
  margin: 8px 0 0;
}

/* --- Coupon Code Box --- */
.p-anniversary__coupon-code {
  background: #2D3E56;
  border-radius: 10px;
  padding: 16px 32px 12px;
  margin: 24px auto 0;
  max-width: 446px;
}

.p-anniversary__coupon-code-label {
  font-weight: 500;
  font-size: 9px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: #fff;
  margin: 0;
}

.p-anniversary__coupon-code-value {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #4D4C4C;
  margin: 8px auto;
  padding: 4px 18px;
  width: fit-content;
  max-width: calc(100% - 12px);
  min-width: 246px;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.p-anniversary__coupon-code-value:hover {
  background: #3f3e3e;
}

.p-anniversary__coupon-code-value:active {
  transform: scale(0.98);
}

.p-anniversary__coupon-code-value:focus-visible {
  outline: 2px solid #FFFFFF;
  outline-offset: 3px;
}

.p-anniversary__coupon-code-value span {
  font-weight: 500;
  font-size: 43px;
  line-height: 1;
  letter-spacing: -0.011em;
  color: #fff;
  white-space: nowrap;
}

.p-anniversary__coupon-code-note {
  font-weight: 500;
  font-size: 9px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: #fff;
  margin: 4px 0 0;
}

/* クーポンコピー操作の視認性を高めるためのボタン/ステータス */
.p-anniversary__coupon-copy-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  max-width: 246px;
  margin: 6px auto 0;
  padding: 7px 12px;
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-weight: 700;
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.p-anniversary__coupon-copy-icon {
  width: 16px;
  height: 16px;
  display: block;
  flex-shrink: 0;
  /* アイコン色をボタン文字色に馴染ませる */
  filter: brightness(0) invert(1);
  transition: filter 0.2s ease;
}

.p-anniversary__coupon-copy-btn-text {
  display: inline-block;
}

.p-anniversary__coupon-copy-btn:hover {
  background: #fff;
  color: #1E1E1E;
}

.p-anniversary__coupon-copy-btn:hover .p-anniversary__coupon-copy-icon {
  filter: none;
}

.p-anniversary__coupon-copy-btn:focus-visible {
  outline: 2px solid #FFFFFF;
  outline-offset: 3px;
}

.p-anniversary__coupon-copy-status {
  min-height: 1.5em;
  margin: 4px 0 0;
  text-align: center;
  font-weight: 500;
  font-size: 10px;
  line-height: 1.4;
  letter-spacing: 0.01em;
  color: #fff;
}

/* --- How to Use / Steps --- */
.p-anniversary__coupon-howto-title {
  font-weight: 500;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: #1E1E1E;
  margin: 32px 0 12px;
}

.p-anniversary__steps {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 16px;
}

.p-anniversary__step {
  background: #fff;
  border-radius: 5px;
  width: 141px;
  padding: 15px 8px;
  text-align: center;
}

.p-anniversary__step-number {
  font-weight: 500;
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: #1E1E1E;
  margin: 0;
}

.p-anniversary__step-title {
  font-weight: 500;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: #1E1E1E;
  margin: 4px 0;
}

.p-anniversary__step-desc {
  font-weight: 400;
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: #7F7F7F;
  margin: 0;
}

.p-anniversary__step-arrow {
  display: flex;
  align-items: center;
  padding-top: 40px;
}

.p-anniversary__step-arrow svg {
  width: 9px;
  height: 12px;
}

/* ==========================================================================
   Section 06: Terms
   ========================================================================== */
.p-anniversary__terms {
  padding: 55px 0 80px;
}

.p-anniversary__terms-title {
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: -0.011em;
  color: #1E1E1E;
  text-align: center;
  margin: 0 0 24px;
}

.p-anniversary__terms-list {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: 0.025em;
  color: #000;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-anniversary__terms-list li {
  position: relative;
  padding-left: 1.2em;
  margin-bottom: 6px;
}

/* グローバルで li の marker が無効化されているため、terms セクション専用で疑似要素の点を表示 */
.p-anniversary__terms-list > li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: #1E1E1E;
  font-weight: 500;
}

.p-anniversary__terms-note {
  color: #444;
  font-size: 0.94em;
  line-height: 1.7;
}

.p-anniversary__terms-list > li.p-anniversary__terms-note::before {
  content: "";
}

.p-anniversary__terms-list ul {
  list-style: none;
  padding-left: 1.2em;
  margin: 8px 0 0;
}

.p-anniversary__terms-contact-list li {
  margin-bottom: 2px;
}

.p-anniversary__terms-contact-list li::before {
  content: " - ";
  position: absolute;
  left: 0;
  top: 0;
}

/* ==========================================================================
   Section 07: LINE Banner
   ========================================================================== */
.p-anniversary__line-banner {
  padding: 0 0 56px;
}

.p-anniversary__line-banner-inner {
  /* メッセージ本文コンテナと近い見た目幅に合わせる */
  max-width: 780px;
  margin: 0 auto;
  padding: 0 20px;
}

.p-anniversary__line-banner-image {
  width: 100%;
  border-radius: 24px;
}

/* ---------- SP-only break utility ---------- */
.p-anniversary__sp-only {
  display: none;
}

/* ==========================================================================
   SP (Mobile) — max-width: 767px
   ========================================================================== */
@media screen and (max-width: 767px) {

  /* --- SP-only break --- */
  .p-anniversary__sp-only {
    display: inline;
  }

  /* --- Container --- */
  .p-anniversary__container {
    padding: 0 7.3333vw;
  }

  /* --- Message --- */
  .p-anniversary__message {
    padding: 34px 0 40px;
  }

  .p-anniversary__message-heading {
    font-size: 19px;
    line-height: 1.42;
    letter-spacing: 0.025em;
  }

  .p-anniversary__message-body {
    font-size: 12px;
    line-height: 2.0;
    letter-spacing: 0.025em;
  }

  .p-anniversary__blank {
    height: 24px;
  }

  .p-anniversary__message-sign {
    font-size: 12px;
    line-height: 2.0;
  }

  /* --- Badge --- */
  .p-anniversary__badge {
    height: 36px;
    padding: 0 18px;
    font-size: 17.5px;
    line-height: 19px;
    border-radius: 19px;
  }

  /* --- Products --- */
  .p-anniversary__products {
    padding: 30px 0 50px;
  }

  .p-anniversary__products-title {
    font-size: 21px;
    line-height: 1.33;
    margin-top: 10px;
    letter-spacing: 0.025em;
    padding: 0 16px;
  }

  .p-anniversary__products-grid {
    flex-direction: column;
    align-items: center;
    gap: 40px;
    padding: 0 24px;
  }

  .p-anniversary__card {
    width: 100%;
    max-width: 273px;
  }

  .p-anniversary__card-label {
    height: 38px;
  }

  .p-anniversary__card-label-text {
    font-size: 16px;
  }

  .p-anniversary__card-desc {
    padding: 14px 12px;
    min-height: 60px;
  }

  .p-anniversary__card-desc p {
    font-size: 13px;
    line-height: 1.5;
  }

  .p-anniversary__card-cta {
    width: 100%;
    max-width: 273px;
    height: 38px;
    border-radius: 19px;
    font-size: 12.5px;
    margin: 12px auto 0;
  }

  /* --- Coupon --- */
  .p-anniversary__coupon {
    padding: 38px 0 50px;
  }

  .p-anniversary__coupon-title {
    font-size: 21px;
    line-height: 1.33;
    margin-top: 10px;
    padding: 0 16px;
  }

  .p-anniversary__coupon-card {
    margin: 0 4vw;
    padding: 24px 4.3vw 28px;
  }

  .p-anniversary__coupon-logo {
    width: 50%;
  }

  .p-anniversary__coupon-subtitle {
    font-size: 12px;
    letter-spacing: 0.025em;
  }

  .p-anniversary__coupon-desc {
    font-size: 8.5px;
  }

  .p-anniversary__coupon-code {
    max-width: 329px;
    padding: 10px 16px 8px;
  }

  .p-anniversary__coupon-code-label {
    font-size: 7.5px;
  }

  .p-anniversary__coupon-code-value {
    min-width: 241px;
    max-width: calc(100% - 8px);
    min-height: 32px;
    padding: 4px 14px;
  }

  .p-anniversary__coupon-code-value span {
    font-size: 21.5px;
  }

  .p-anniversary__coupon-code-note {
    font-size: 4.5px;
  }

  .p-anniversary__coupon-copy-btn {
    max-width: 241px;
    margin-top: 5px;
    padding: 6px 10px;
    font-size: 10px;
    gap: 5px;
  }

  .p-anniversary__coupon-copy-icon {
    width: 14px;
    height: 14px;
  }

  .p-anniversary__coupon-copy-status {
    min-height: 1.35em;
    font-size: 9px;
  }

  .p-anniversary__coupon-howto-title {
    font-size: 16px;
    margin: 24px 0 10px;
  }

  /* --- Steps --- */
  .p-anniversary__steps {
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  .p-anniversary__step {
    width: 180px;
    min-height: 120px;
    padding: 20px 12px 16px;
    border-radius: 4px;
  }

  .p-anniversary__step-number {
    font-size: 10px;
  }

  .p-anniversary__step-title {
    font-size: 16px;
    margin: 6px 0;
  }

  .p-anniversary__step-desc {
    font-size: 10px;
  }

  .p-anniversary__step-arrow {
    padding-top: 0;
    transform: rotate(90deg);
  }

  .p-anniversary__step-arrow svg {
    width: 11px;
    height: 13.5px;
  }

  /* --- Terms --- */
  .p-anniversary__terms {
    padding: 40px 0 50px;
  }

  .p-anniversary__terms-title {
    font-size: 21px;
    margin-bottom: 24px;
  }

  .p-anniversary__terms-list {
    font-size: 13px;
    line-height: 1.27;
    letter-spacing: 0.025em;
  }

  .p-anniversary__terms-list li {
    margin-bottom: 6px;
    padding-left: 1.1em;
  }

  .p-anniversary__terms-note {
    font-size: 12px;
    line-height: 1.5;
  }

  /* --- LINE Banner --- */
  .p-anniversary__line-banner {
    padding: 0 0 40px;
  }

  .p-anniversary__line-banner-inner {
    padding: 0 7.3333vw;
  }

  .p-anniversary__line-banner-image {
    border-radius: 20px;
  }
}
