/* HP visual language adapted from the LP2 artwork. Keep copy and page structure in HTML. */
:root {
  --color-primary: #71394a;
  --color-primary-dark: #522d3a;
  --color-secondary: #b98a91;
  --color-accent: #b65770;
  --color-accent-dark: #924158;
  --color-bg: #fffaf7;
  --color-bg-gray: #f8eeec;
  --color-text: #594d47;
  --color-text-sub: #705e58;
  --color-border: #ead9d3;
  --font-display: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, Georgia, serif;
  --shadow-sm: 0 12px 36px rgba(112, 57, 74, .09);
}

body { background: var(--color-bg); }
::selection { color: #fff; background: #a64f65; }

/* The LP uses blush paper, rose buttons, fine gold dividers and Mincho headlines. */
.l-header,
.l-header.is-fixed,
.l-header--subpage,
.l-header--lp2-home:not(.is-fixed) {
  color: var(--color-text);
  border-bottom: 1px solid rgba(184, 145, 142, .24);
  background: rgba(255, 250, 247, .95);
  box-shadow: 0 5px 24px rgba(112, 57, 74, .045);
  backdrop-filter: blur(12px);
}
.l-header__nav a::after { background: var(--color-accent); }
.c-btn { border-radius: 999px; letter-spacing: .035em; }
.c-btn--primary,
.c-btn--header,
.p-floating-cta__reserve {
  color: #fff;
  background: linear-gradient(100deg, #8f3d55, #a64f65 65%, #ad5c70);
  box-shadow: 0 9px 22px rgba(166, 79, 101, .18);
}
.c-btn--primary:hover,
.c-btn--header:hover { background: linear-gradient(100deg, #783149, #924158 65%, #a24c61); }
.c-btn--outline { border-color: #b65c70; color: #93475c; }
.c-btn--outline:hover { border-color: #a64f65; background: #a64f65; color: #fff; }
.c-btn--light { color: #854054; background: #fffaf7; }
.c-btn--light:hover { background: #fff; }
.p-mobile-menu { background: linear-gradient(160deg, #71394a, #9d5369); }
.p-mobile-menu__label,
.p-mobile-menu__nav span { color: #f5dce0; }

.p-hero--lp2 { background: #fffaf7; }
.p-hero--lp2 .p-hero__shade {
  background: linear-gradient(90deg, rgba(255, 250, 247, .96), rgba(255, 250, 247, .82) 38%, rgba(255, 250, 247, .03) 72%);
}
.p-hero--lp2 .p-hero__title {
  color: #57433d;
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: .055em;
  line-height: 1.4;
}
.p-hero--lp2 .p-hero__title em { color: #8b4257; font-family: inherit; font-weight: 600; }
.p-hero--lp2 .p-hero__eyebrow { color: #714b4d; border-color: #d8b36a; font-family: var(--font-display); }
.p-hero--lp2 .p-hero__eyebrow-icon { color: #ad5870; }
.p-hero--lp2 .p-hero__lead { color: #594d47; }
.p-hero--lp2 .p-hero__facts span { color: #795260; border-color: #dfb9c1; border-radius: 999px; background: rgba(255, 249, 248, .9); }
.p-hero__vertical { color: #7a5d56; }
.p-hero--lp2 .p-hero__scroll i { background: #e4c8c4; }
.p-hero--lp2 .p-hero__scroll i::after { background: #b65770; }

.p-lp2-campaign {
  position: relative;
  overflow: hidden;
  border-top: 1px solid #e3c6c6;
  border-bottom: 1px solid #e3c6c6;
  background: linear-gradient(145deg, #fff8f5 0%, #f6e2e5 65%, #f9edeb 100%);
}
.p-lp2-campaign::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(145deg, transparent 47%, rgba(255, 255, 255, .4) 47%, rgba(255, 255, 255, .4) 62%, transparent 62%);
}
.p-lp2-campaign__inner { position: relative; }
.p-lp2-campaign__eyebrow { color: #9c4b61; }
.p-lp2-campaign h2 { color: #59433f; font-family: var(--font-display); font-weight: 600; }
.p-lp2-campaign h2 strong { color: #ac5069; }

.c-section-heading > p,
.p-page-heading > p { color: #a64f65; font-family: Georgia, var(--font-display); letter-spacing: .08em; }
.c-section-heading h2,
.p-page-heading h2,
.p-editorial-grid__copy h2,
.p-article h1,
.p-article h2,
.p-policy h2 { font-family: var(--font-display); font-weight: 600; letter-spacing: .035em; }
.c-section-heading::before,
.p-page-heading::before {
  content: "";
  display: block;
  width: 44px;
  height: 1px;
  margin: 0 auto 22px;
  background: #d8b36a;
}
.c-section-heading--left::before,
.p-page-heading::before { margin-left: 0; }
.c-section-heading--light { color: var(--color-text); }
.c-section-heading--light > p { color: #a64f65; }

.p-intro { background: #fffaf7; }
.p-intro__number strong { color: #a64f65; }
.p-intro__visual::after { background: #f3dfe0; }
.p-intro__visual img,
.p-effect__feature,
.p-point-card__media img,
.p-editorial-grid__image img { border-radius: 4px; }
.p-effect { background: #f8eeec; }
.p-effect__feature,
.p-effect-card {
  border: 1px solid #ead1cf;
  background: #fffdfb;
  box-shadow: 0 15px 35px rgba(112, 57, 74, .055);
}
.p-effect__num,
.p-effect-card > span { color: #ba667a; }
.p-effect__content h3,
.p-effect-card h3 { font-family: var(--font-display); font-weight: 600; }
.p-effect-card__media { border: 3px solid #efd4d8; }
.p-effect-card > span { opacity: .13; }

.p-point {
  color: var(--color-text);
  background: linear-gradient(155deg, #f3dfe0 0%, #fff7f4 52%, #f8e6e5 100%);
}
.p-point::before { color: rgba(166, 79, 101, .06); }
.p-point .c-section-heading { max-width: 940px; }
.p-point .c-section-heading h2 { font-size: clamp(29px, 3vw, 44px); text-wrap: balance; }
.p-point__grid { gap: 18px; border: 0; }
.p-point-card {
  border: 1px solid #e8c7c7;
  background: rgba(255, 253, 250, .92);
  box-shadow: 0 12px 28px rgba(112, 57, 74, .055);
}
.p-point-card__media { border: 1px solid #ead3d1; background: #fff; }
.p-point-card__num { color: #ae5368; }
.p-point-card h3 { color: #5e4346; font-family: var(--font-display); font-weight: 600; }
.p-point-card p { color: var(--color-text-sub); }

.p-price { background: #fff7f5; }
.p-price__trial,
.p-lp2-discount,
.p-price__plan--recommend { border-color: #d9aaa6; background: #fffdfa; }
.p-price__trial { box-shadow: 0 18px 42px rgba(112, 57, 74, .08); }
.p-price__ribbon { background: linear-gradient(90deg, #a84761, #d47b82); }
.p-price__trial h3,
.p-lp2-discount h3,
.p-price__group-heading,
.p-price__plan h3 { font-family: var(--font-display); font-weight: 600; }
.p-price__amount strong,
.p-lp2-discount__grid strong { color: #a64f65; }
.p-lp2-discount { box-shadow: 0 14px 34px rgba(112, 57, 74, .055); }
.p-lp2-discount__grid p { border-color: #ead3d1; border-radius: 4px; }
.p-price__tag { background: #a64f65; }
.p-flow { background: #fffaf7; }
.p-flow-step h3,
.p-faq-item summary,
.p-access__info h3 { font-family: var(--font-display); }
.c-reserve-panel,
.p-page-cta { background: linear-gradient(110deg, #71394a, #9f4d63 65%, #ad5c70); }
.p-faq { background: #f8eeec; }
.p-faq-item { background: rgba(255, 253, 251, .55); }
.p-faq-item[open] { background: #fffdfa; }
.p-access { background: #fffaf7; }
.p-news { background: #fffaf7; }
.l-footer { background: linear-gradient(150deg, #673745, #482a35); }
.p-floating-cta { border-radius: 14px; }
.p-floating-cta__phone { background: #71394a; }

/* Interior pages use the same calm photo treatment as the LP2 hero. */
.p-page-hero { color: #55433f; background: #f8eeec; }
.p-page-hero__shade {
  background: linear-gradient(90deg, rgba(255, 250, 247, .96), rgba(255, 250, 247, .8) 42%, rgba(255, 250, 247, .1) 76%);
}
.p-page-hero__label { color: #a64f65; font-family: Georgia, var(--font-display); letter-spacing: .14em; }
.p-page-hero h1 { font-family: var(--font-display); font-weight: 600; letter-spacing: .06em; }
.p-page-hero__lead { color: #604d49; }
.c-breadcrumb { background: #fffaf7; }
.p-page-section--gray { background: #f8eeec; }
.p-page-section--white { background: #fffaf7; }
.p-page-section--dark { background: #71394a; }
.p-data-table th { background: #faefed; }
.p-data-table__group th { background: #efdfe0; }
.p-feature-lines li,
.p-voice-list article { background: #fffdfb; }
.p-guide-document__inner { border-color: #dfb7b9; border-left-color: #b65770; background: #fff8f5; }

/* First visit has its own layout; align its colors and type with the site. */
.p-first-hero { background: #f6e8e7; }
.p-first-hero__panel { border: 1px solid #ead1cf; background: #fffaf7; }
.p-first-hero h1,
.p-first-section h2,
.p-first-cta h2 { color: #594443; font-family: var(--font-display); font-weight: 600; }
.p-first-hero__eyebrow,
.p-first-section__number,
.p-first-hero__book,
.p-first-prepare dt { color: #a64f65; }
.p-first-hero__line { background: #d8b36a; }
.p-first-nav { background: #71394a; }
.p-first-section h2 em { color: #b65770; }
.p-first-intro__photo span { background: #b65770; }
.p-first-facts { border-color: #e5c6c6; }
.p-first-facts > div + div { border-color: #e5c6c6; }
.p-first-facts strong { color: #a64f65; }
.p-first-section--experience { background: #f8eeec; }
.p-first-steps li { border: 1px solid #ead1cf; background: #fffdfa; }
.p-first-steps li > span { color: #a64f65; }
.p-first-section--information,
.p-materials { background: #f7e8e6; }
.p-first-links a,
.p-materials__card { border-top-color: #b65770; background: #fffdfa; }
.p-first-cta { background: linear-gradient(120deg, #71394a, #ad5c70); }
.p-first-cta h2 { color: #fff; }

@media (max-width: 767px) {
  .p-hero--lp2 .p-hero__shade {
    background: linear-gradient(0deg, rgba(57, 36, 41, .83), rgba(65, 39, 45, .43) 44%, rgba(65, 39, 45, .04) 78%);
  }
  .p-hero--lp2 .p-hero__title,
  .p-hero--lp2 .p-hero__title em,
  .p-hero--lp2 .p-hero__eyebrow,
  .p-hero--lp2 .p-hero__lead { color: #fff; }
  .p-hero--lp2 .p-hero__eyebrow { border-color: #d8b36a; }
  .p-hero--lp2 .p-hero__facts span { color: #fff; border-color: rgba(255, 255, 255, .6); background: rgba(90, 49, 62, .5); }
  .p-point__grid { gap: 12px; }
  .p-point-card { padding: 27px 24px; }
  .p-page-hero__shade {
    background: linear-gradient(0deg, rgba(255, 250, 247, .96), rgba(255, 250, 247, .78) 52%, rgba(255, 250, 247, .12));
  }
  .p-floating-cta { border-radius: 0; }
}
