@charset "UTF-8";
/* CSS Document */


  :root{
    --bg:           #FBF8F3;   /* オフホワイト */
    --bg-warm:      #F4ECDF;   /* ウォームベージュ薄 */
    --beige:        #E8DDC8;   /* ウォームベージュ */
    --sand:         #C9A87C;   /* サンドベージュ(CTA・小見出し) */
    --sand-deep:    #A8865A;   /* CTA hover */
    --sky:          #BCD7E4;   /* 夏空ブルー(透明感) */
    --sky-deep:     #7AAFC4;
    --ink:          #3A2E25;   /* ディープブラウン */
    --ink-soft:     #6B5B4C;
    --line:         #E5D9C2;
    --serif-ja:     "Noto Serif JP", "Hiragino Mincho ProN", serif;
    --serif-en:     "Cormorant Garamond", "Times New Roman", serif;
    --sans:         "Noto Sans JP", -apple-system, sans-serif;
  }

  *{ box-sizing: border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  body{
    font-family: var(--sans);
    background: var(--bg);
    color: var(--ink);
    font-weight: 400;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "palt";
  }

  img{ max-width:100%; display:block; }
  button{ font-family: inherit; cursor:pointer; border:none; background:none; color:inherit; }

  /* === Layout === */
  .page{
    max-width: 480px;
    margin: 0 auto;
    background: var(--bg);
    overflow: hidden;
    position: relative;
  }
  @media (min-width: 768px){
    .page{ max-width: 520px; box-shadow: 0 0 80px rgba(58,46,37,0.06); }
    body{ background: linear-gradient(180deg, #F4ECDF 0%, #FBF8F3 100%); }
  }

  section{ padding: 64px 28px; position: relative; }
  .section-label{
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 13px;
    color: var(--sand);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    margin-bottom: 10px;
    display: block;
  }
  .section-title{
    font-family: var(--serif-ja);
    font-weight: 500;
    font-size: 26px;
    line-height: 1.55;
    color: var(--ink);
    margin-bottom: 32px;
    letter-spacing: 0.03em;
  }
  .section-title em{
    font-style: normal;
    color: var(--sand);
    font-family: var(--serif-en);
    font-size: 1.15em;
  }

  /* === Header === */
  .topbar{
    display:flex; justify-content:space-between; align-items:center;
    padding: 18px 28px;
    background: var(--bg);
    position: sticky; top:0; z-index: 50;
    border-bottom: 1px solid rgba(229,217,194,0.5);
    backdrop-filter: blur(6px);
    background: rgba(251,248,243,0.92);
  }
  .logo{
    font-family: var(--serif-en);
    font-size: 22px;
    letter-spacing: 0.25em;
    color: var(--ink);
    font-weight: 400;
  }
  .logo-sub{
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 11px;
    color: var(--sand);
    letter-spacing: 0.1em;
    margin-top: 2px;
  }
  .topbar .cta-mini{
    font-family: var(--serif-ja);
    font-size: 12px;
    padding: 8px 16px;
    background: var(--ink);
    color: var(--bg);
    border-radius: 999px;
    letter-spacing: 0.1em;
  }

  /* === Hero === */
  .hero{
    padding: 40px 0 0 0;
    background: linear-gradient(180deg, #FBF8F3 0%, #F4ECDF 100%);
    text-align: center;
    overflow: hidden;
  }
  .hero-eyebrow{
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 14px;
    color: var(--sky-deep);
    letter-spacing: 0.2em;
    margin-bottom: 18px;
  }
  .hero h1{
    font-family: var(--serif-ja);
    font-weight: 500;
    font-size: 34px;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--ink);
    padding: 0 24px;
    margin-bottom: 16px;
  }
  .hero h1 .accent{
    background: linear-gradient(transparent 62%, rgba(188,215,228,0.6) 62%);
    padding: 0 4px;
  }
  .hero-lead{
    font-size: 14px;
    color: var(--ink-soft);
    margin-bottom: 36px;
    padding: 0 32px;
    line-height: 2;
  }
  .hero-img-wrap{
    position: relative;
    margin: 0 28px 36px;
    aspect-ratio: 4/5;
    border-radius: 240px 240px 12px 12px;
    overflow: hidden;
    background:
      radial-gradient(ellipse at 30% 20%, rgba(255,255,255,0.6), transparent 60%),
      linear-gradient(135deg, #BCD7E4 0%, #E8DDC8 60%, #F4ECDF 100%);
  }
  .hero-img-wrap::before{
    content:"";
    position: absolute; inset:0;
    background:
      repeating-linear-gradient(45deg, transparent 0 18px, rgba(255,255,255,0.08) 18px 19px);
  }
  .hero-img-wrap::after{ content:"" !important;
    white-space: pre;
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-family: ui-monospace, "SF Mono", monospace;
    font-size: 10px;
    color: rgba(58,46,37,0.55);
    letter-spacing: 0.1em;
    text-align: center;
    line-height: 2;
  }
  .hero-sun{
    position: absolute;
    top: 14%; right: 12%;
    width: 90px; height: 90px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #FFF6E5, #F4D9A8 70%);
    box-shadow: 0 0 60px rgba(255, 220, 160, 0.6);
    z-index: 2;
  }
  .hero-bottle{
    position: absolute;
    bottom: -8px; left: 50%; transform: translateX(-50%);
    width: 110px; height: 160px;
    background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(251,248,243,0.85));
    border-radius: 16px 16px 8px 8px;
    border: 1px solid rgba(58,46,37,0.08);
    box-shadow: 0 12px 30px rgba(58,46,37,0.15);
    z-index: 3;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
  }
  .hero-bottle .b-cap{
    position: absolute; top: -10px;
    width: 70px; height: 18px;
    background: var(--ink);
    border-radius: 4px;
  }
  .hero-bottle .b-label{
    font-family: var(--serif-en);
    font-size: 14px;
    letter-spacing: 0.3em;
    color: var(--ink);
    margin-top: 4px;
  }
  .hero-bottle .b-sub{
    font-family: var(--serif-ja);
    font-size: 8px;
    color: var(--ink-soft);
    letter-spacing: 0.15em;
    margin-top: 4px;
  }
  .hero-bottle .b-line{
    width: 30px; height: 1px; background: var(--sand);
    margin: 6px 0;
  }
  .hero-bottle .b-cap-amount{
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 10px;
    color: var(--sand);
  }

  .hero-badges{
    display: flex; justify-content: center; gap: 10px;
    margin: 28px 0 36px;
    padding: 0 16px;
    flex-wrap: wrap;
  }
  .hero-badge{
    width: 78px; height: 78px;
    border-radius: 50%;
    background: var(--bg);
    border: 1px solid var(--sand);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    font-family: var(--serif-ja);
    font-size: 10px;
    color: var(--ink);
    line-height: 1.4;
    text-align: center;
  }
  .hero-badge .num{
    font-family: var(--serif-en);
    font-size: 20px;
    color: var(--sand);
    font-style: italic;
  }

  .hero-cta-wrap{
    padding: 0 28px 56px;
    text-align: center;
  }
  .cta-primary{
    display: block;
    width: 100%;
    padding: 22px 24px;
    background: linear-gradient(180deg, #C9A87C, #A8865A);
    color: #fff;
    font-family: var(--serif-ja);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.15em;
    border-radius: 999px;
    box-shadow: 0 8px 20px rgba(168, 134, 90, 0.35);
    transition: transform 0.2s, box-shadow 0.2s;
    text-decoration: none;
    text-align: center;
  }
  .cta-primary:hover{
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(168, 134, 90, 0.45);
  }
  .cta-primary .small{
    display:block;
    font-size: 10px;
    letter-spacing: 0.2em;
    margin-bottom: 6px;
    opacity: 0.85;
    font-family: var(--serif-en);
    font-style: italic;
    font-weight: 400;
  }
  .cta-note{
    font-size: 11px;
    color: var(--ink-soft);
    margin-top: 12px;
    letter-spacing: 0.05em;
  }

  /* === Worries === */
  .worries{
    background: var(--bg);
    text-align: center;
  }
  .worries .section-title{ text-align: center; }
  .worry-list{
    display: flex; flex-direction: column; gap: 14px;
    margin-top: 8px;
  }
  .worry-item{
    background: var(--bg-warm);
    padding: 22px 24px;
    border-radius: 4px;
    display: flex; align-items: center; gap: 16px;
    text-align: left;
    border-left: 2px solid var(--sand);
  }
  .worry-check{
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--bg);
    border: 1px solid var(--sand);
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    color: var(--sand);
    font-family: var(--serif-en);
    font-size: 16px;
    font-style: italic;
  }
  .worry-text{
    font-family: var(--serif-ja);
    font-size: 14px;
    line-height: 1.7;
    color: var(--ink);
  }
  .worries-arrow{
    margin: 36px auto 0;
    text-align: center;
    color: var(--sand);
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 14px;
    letter-spacing: 0.1em;
  }
  .worries-arrow::after{
    content: "";
    display: block;
    width: 1px; height: 32px;
    background: var(--sand);
    margin: 12px auto 0;
  }

  /* === Features (3 ingredients) === */
  .features{
    background: linear-gradient(180deg, #F4ECDF 0%, #FBF8F3 100%);
    text-align: center;
  }
  .features .section-title{ text-align: center; }
  .feature-grid{
    display: flex; flex-direction: column; gap: 20px;
  }
  .feature-card{
    background: var(--bg);
    padding: 32px 24px;
    border-radius: 8px;
    text-align: left;
    border: 1px solid var(--line);
    position: relative;
  }
  .feature-num{
    position: absolute;
    top: 16px; right: 20px;
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 36px;
    color: var(--beige);
    line-height: 1;
  }
  .feature-icon{
    width: 56px; height: 56px;
    border-radius: 50%;
    background: var(--bg-warm);
    display:flex; align-items:center; justify-content:center;
    margin-bottom: 18px;
  }
  .feature-icon svg{ width: 28px; height: 28px; stroke: var(--sand); fill: none; stroke-width: 1.4; }
  .feature-tag{
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 11px;
    color: var(--sand);
    letter-spacing: 0.15em;
    margin-bottom: 8px;
  }
  .feature-name{
    font-family: var(--serif-ja);
    font-size: 19px;
    font-weight: 500;
    color: var(--ink);
    margin-bottom: 12px;
    line-height: 1.5;
  }
  .feature-desc{
    font-size: 13px;
    color: var(--ink-soft);
    line-height: 1.9;
  }

  /* === Science === */
  .science{
    background: var(--ink);
    color: var(--bg);
    text-align: center;
  }
  .science .section-label{ color: var(--sand); }
  .science .section-title{
    color: var(--bg);
    text-align: center;
  }
  .science .section-title em{ color: var(--sky); }
  .science-lead{
    font-size: 13px;
    color: rgba(251,248,243,0.7);
    line-height: 2;
    margin-bottom: 36px;
    padding: 0 8px;
  }
  .stat-row{
    display: flex; flex-direction: column; gap: 24px;
    margin-bottom: 28px;
  }
  .stat{
    border-top: 1px solid rgba(201,168,124,0.3);
    padding-top: 24px;
    text-align: center;
  }
  .stat-num{
    font-family: var(--serif-en);
    font-size: 64px;
    font-weight: 300;
    color: var(--sand);
    line-height: 1;
    letter-spacing: -0.02em;
  }
  .stat-num .unit{ font-size: 24px; font-style: italic; margin-left: 4px; }
  .stat-label{
    font-family: var(--serif-ja);
    font-size: 13px;
    margin-top: 12px;
    color: var(--bg);
    line-height: 1.7;
  }
  .stat-source{
    font-size: 10px;
    color: rgba(251,248,243,0.4);
    margin-top: 8px;
    font-family: var(--serif-en);
    font-style: italic;
  }

  /* === Media === */
  .media{
    background: var(--bg);
    text-align: center;
  }
  .media .section-title{ text-align: center; }
  .media-grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 8px;
  }
  .media-logo{
    aspect-ratio: 3/2;
    background: var(--bg-warm);
    border: 1px solid var(--line);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--serif-en);
    font-size: 13px;
    letter-spacing: 0.15em;
    color: var(--ink-soft);
    font-style: italic;
  }
  .media-note{
    font-size: 11px;
    color: var(--ink-soft);
    margin-top: 16px;
    font-family: var(--serif-en);
    font-style: italic;
  }

  /* === Voices === */
  .voices{
    background: var(--bg-warm);
    text-align: center;
  }
  .voices .section-title{ text-align: center; }
  .voice-list{
    display: flex; flex-direction: column; gap: 18px;
  }
  .voice-card{
    background: var(--bg);
    padding: 26px 22px;
    border-radius: 4px;
    text-align: left;
    border: 1px solid var(--line);
  }
  .voice-stars{
    color: var(--sand);
    font-size: 14px;
    letter-spacing: 0.15em;
    margin-bottom: 10px;
  }
  .voice-headline{
    font-family: var(--serif-ja);
    font-size: 15px;
    font-weight: 500;
    color: var(--ink);
    margin-bottom: 12px;
    line-height: 1.6;
  }
  .voice-text{
    font-size: 13px;
    color: var(--ink-soft);
    line-height: 1.9;
    margin-bottom: 16px;
  }
  .voice-author{
    display: flex; align-items: center; gap: 12px;
    border-top: 1px solid var(--line);
    padding-top: 14px;
  }
  .voice-avatar{
    width: 36px; height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--beige), var(--sand));
  }
  .voice-name{
    font-family: var(--serif-ja);
    font-size: 12px;
    color: var(--ink);
  }
  .voice-meta{
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 11px;
    color: var(--ink-soft);
  }

  /* === Before / After === */
  .ba{
    background: var(--bg);
    text-align: center;
  }
  .ba .section-title{ text-align: center; }
  .ba-chart{
    background: var(--bg-warm);
    border-radius: 8px;
    padding: 32px 24px 24px;
    margin-top: 8px;
  }
  .ba-chart-title{
    font-family: var(--serif-ja);
    font-size: 13px;
    color: var(--ink-soft);
    margin-bottom: 24px;
    text-align: center;
  }
  .ba-bars{
    display: flex; align-items: flex-end; justify-content: space-around;
    gap: 12px;
    height: 180px;
    border-bottom: 1px solid var(--sand);
    padding: 0 4px 4px;
  }
  .ba-bar{
    flex: 1;
    display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    height: 100%;
    position: relative;
  }
  .ba-bar .val{
    font-family: var(--serif-en);
    font-size: 14px;
    color: var(--ink);
    margin-bottom: 6px;
    font-style: italic;
  }
  .ba-bar .col{
    width: 28px;
    background: linear-gradient(180deg, var(--sky), var(--sky-deep));
    border-radius: 2px 2px 0 0;
    transition: height 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .ba-bar.before .col{
    background: linear-gradient(180deg, var(--beige), var(--sand));
  }
  .ba-labels{
    display: flex; justify-content: space-around; gap: 12px;
    margin-top: 12px;
  }
  .ba-labels span{
    flex: 1;
    font-family: var(--serif-ja);
    font-size: 11px;
    color: var(--ink-soft);
    text-align: center;
  }
  .ba-legend{
    display: flex; justify-content: center; gap: 20px;
    margin-top: 18px;
    font-size: 11px;
    color: var(--ink-soft);
  }
  .ba-legend span{ display:flex; align-items:center; gap:6px; }
  .ba-legend i{ width: 10px; height: 10px; border-radius: 2px; display:inline-block; }
  .ba-note{
    font-size: 10px;
    color: var(--ink-soft);
    margin-top: 16px;
    text-align: center;
    font-family: var(--serif-en);
    font-style: italic;
  }

  /* === How to === */
  .howto{
    background: linear-gradient(180deg, #FBF8F3, #F4ECDF);
    text-align: center;
  }
  .howto .section-title{ text-align:center; }
  .howto-steps{
    display: flex; flex-direction: column; gap: 16px;
  }
  .howto-step{
    display: flex; align-items: center; gap: 18px;
    background: var(--bg);
    padding: 20px 22px;
    border-radius: 4px;
    text-align: left;
    border: 1px solid var(--line);
  }
  .howto-num{
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 32px;
    color: var(--sand);
    line-height: 1;
    flex-shrink: 0;
    width: 40px;
  }
  .howto-content h4{
    font-family: var(--serif-ja);
    font-size: 14px;
    font-weight: 500;
    color: var(--ink);
    margin-bottom: 4px;
  }
  .howto-content p{
    font-size: 12px;
    color: var(--ink-soft);
    line-height: 1.7;
  }

  /* === FAQ === */
  .faq{
    background: var(--bg);
  }
  .faq .section-title{ text-align: center; }
  .faq-list{
    display: flex; flex-direction: column;
    border-top: 1px solid var(--line);
  }
  .faq-item{
    border-bottom: 1px solid var(--line);
  }
  .faq-q{
    width: 100%;
    padding: 20px 0;
    display: flex; align-items: flex-start; gap: 14px;
    font-family: var(--serif-ja);
    font-size: 14px;
    color: var(--ink);
    text-align: left;
    line-height: 1.6;
  }
  .faq-q .mark{
    font-family: var(--serif-en);
    font-style: italic;
    color: var(--sand);
    font-size: 18px;
    flex-shrink: 0;
    width: 20px;
  }
  .faq-q .ico{
    margin-left: auto;
    color: var(--sand);
    font-size: 18px;
    transition: transform 0.3s;
    flex-shrink: 0;
  }
  .faq-item.open .faq-q .ico{ transform: rotate(45deg); }
  .faq-a{
    max-height: 0; overflow: hidden;
    transition: max-height 0.4s ease, padding 0.3s;
    padding: 0 0 0 34px;
    font-size: 13px;
    color: var(--ink-soft);
    line-height: 1.9;
  }
  .faq-item.open .faq-a{
    max-height: 320px;
    padding: 0 0 22px 34px;
  }

  /* === Price === */
  .price{
    background: var(--bg-warm);
    text-align: center;
  }
  .price .section-title{ text-align: center; }
  .price-card{
    background: var(--bg);
    border: 2px solid var(--sand);
    border-radius: 8px;
    padding: 32px 24px;
    margin-top: 8px;
    position: relative;
    text-align: center;
  }
  .price-ribbon{
    position: absolute;
    top: -14px; left: 50%; transform: translateX(-50%);
    background: var(--ink);
    color: var(--bg);
    padding: 6px 18px;
    font-family: var(--serif-ja);
    font-size: 11px;
    letter-spacing: 0.15em;
    border-radius: 999px;
    white-space: nowrap;
  }
  .price-plan{
    font-family: var(--serif-ja);
    font-size: 16px;
    color: var(--ink);
    margin-bottom: 8px;
  }
  .price-old{
    font-family: var(--serif-en);
    font-size: 16px;
    color: var(--ink-soft);
    text-decoration: line-through;
    margin-bottom: 4px;
  }
  .price-main{
    font-family: var(--serif-en);
    font-size: 18px;
    color: var(--sand);
    font-style: italic;
    margin-bottom: 8px;
    letter-spacing: 0.05em;
  }
  .price-main .big{
    font-size: 56px;
    font-style: normal;
    font-weight: 400;
    color: var(--ink);
    margin: 0 4px;
    letter-spacing: -0.02em;
  }
  .price-discount{
    display: inline-block;
    background: var(--sand);
    color: var(--bg);
    font-family: var(--serif-ja);
    font-size: 11px;
    padding: 4px 12px;
    border-radius: 999px;
    margin-bottom: 18px;
    letter-spacing: 0.1em;
  }
  .price-detail{
    font-size: 11px;
    color: var(--ink-soft);
    line-height: 1.9;
    margin-bottom: 24px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
  }

  /* === Guarantee === */
  .guarantee{
    background: var(--bg);
    text-align: center;
  }
  .guarantee-seal{
    width: 140px; height: 140px;
    border-radius: 50%;
    border: 1px solid var(--sand);
    margin: 0 auto 24px;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    position: relative;
  }
  .guarantee-seal::before{
    content:""; position: absolute; inset:6px;
    border-radius: 50%;
    border: 1px dashed var(--sand);
  }
  .guarantee-seal .en{
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 11px;
    color: var(--sand);
    letter-spacing: 0.2em;
  }
  .guarantee-seal .big{
    font-family: var(--serif-en);
    font-size: 38px;
    color: var(--ink);
    line-height: 1;
    margin: 4px 0;
  }
  .guarantee-seal .ja{
    font-family: var(--serif-ja);
    font-size: 11px;
    color: var(--ink);
  }
  .guarantee h3{
    font-family: var(--serif-ja);
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 12px;
    color: var(--ink);
  }
  .guarantee p{
    font-size: 13px;
    color: var(--ink-soft);
    line-height: 1.9;
    padding: 0 12px;
  }
  .safety-list{
    margin-top: 28px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    text-align: center;
  }
  .safety-item{
    padding: 16px 8px;
    background: var(--bg-warm);
    border-radius: 4px;
  }
  .safety-item .check{
    color: var(--sand);
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 18px;
    margin-bottom: 6px;
  }
  .safety-item .label{
    font-family: var(--serif-ja);
    font-size: 10px;
    color: var(--ink);
    line-height: 1.5;
  }

  /* === Final CTA === */
  .final-cta{
    background: linear-gradient(180deg, #F4ECDF 0%, #E8DDC8 100%);
    text-align: center;
    padding: 72px 28px 80px;
  }
  .final-cta .eyebrow{
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 13px;
    color: var(--sand);
    letter-spacing: 0.2em;
    margin-bottom: 16px;
  }
  .final-cta h2{
    font-family: var(--serif-ja);
    font-size: 24px;
    font-weight: 500;
    color: var(--ink);
    line-height: 1.6;
    margin-bottom: 12px;
    letter-spacing: 0.05em;
  }
  .final-cta p{
    font-size: 13px;
    color: var(--ink-soft);
    margin-bottom: 32px;
    line-height: 2;
  }
  .final-trust{
    display: flex; justify-content: center; gap: 24px;
    margin-top: 24px;
    font-size: 11px;
    color: var(--ink-soft);
  }
  .final-trust span::before{
    content: "✓ "; color: var(--sand);
    font-family: var(--serif-en);
    font-style: italic;
  }

  /* === Footer === */
  footer{
    background: var(--ink);
    color: rgba(251,248,243,0.6);
    padding: 40px 28px 32px;
    text-align: center;
    font-size: 11px;
    line-height: 2;
  }
  footer .flogo{
    font-family: var(--serif-en);
    font-size: 18px;
    letter-spacing: 0.25em;
    color: var(--bg);
    margin-bottom: 14px;
  }
  footer .flinks{
    display: flex; justify-content: center; gap: 16px;
    margin: 14px 0;
    font-size: 10px;
  }
  footer .flinks a{ color: rgba(251,248,243,0.7); text-decoration: none; }
  footer .copy{
    font-family: var(--serif-en);
    font-style: italic;
    font-size: 10px;
    color: rgba(251,248,243,0.4);
    margin-top: 12px;
  }

  /* === Floating CTA === */
  .floating-cta{
    position: fixed;
    bottom: 0; left: 50%; transform: translateX(-50%);
    width: 100%; max-width: 520px;
    padding: 12px 16px;
    background: rgba(251,248,243,0.96);
    backdrop-filter: blur(8px);
    border-top: 1px solid var(--line);
    z-index: 100;
    transition: transform 0.3s;
    transform: translate(-50%, 100%);
  }
  .floating-cta.show{ transform: translate(-50%, 0); }
  .floating-cta a{
    display: block;
    padding: 14px;
    background: linear-gradient(180deg, var(--sand), var(--sand-deep));
    color: #fff;
    text-decoration: none;
    border-radius: 999px;
    text-align: center;
    font-family: var(--serif-ja);
    font-size: 14px;
    letter-spacing: 0.1em;
    box-shadow: 0 6px 16px rgba(168,134,90,0.3);
  }

  /* Fade in on scroll */
  .reveal{ opacity: 0; transform: translateY(20px); transition: opacity 0.8s, transform 0.8s; }
  .reveal.in{ opacity: 1; transform: none; }




/* ===== Botanical Background ===== */
.botanical-bg {
  display: none;
  pointer-events: none;
}
@media (min-width: 900px) {
  .botanical-bg {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 0;
  }
  .botanical-bg svg { width: 100%; height: 100%; }
  /* pageをbotanical-bgより前面に */
  .page { position: relative; z-index: 1; }
}