
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;font-feature-settings:"palt" 1;}
  body{background:var(--paper);color:var(--ink);font-family:var(--font-main);font-size:var(--fs-body);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;padding-top:var(--header-height);}
  img{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  .container{width:min(100%,var(--container));margin-inline:auto;padding-inline:clamp(20px,4vw,36px);}
  .section{padding:var(--section-pad) 0;}
  .section + .section{border-top:1px solid rgba(221,211,203,0.55);}
  .band{background:var(--peach-band);}
  .band-blush{background:var(--blush);}

  /* Header */
  .header{position:fixed;inset:0 0 auto;height:var(--header-height);z-index:100;background:rgba(251,250,247,0.9);border-bottom:1px solid rgba(221,211,203,0.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
  .header-inner{width:min(100%,1220px);height:100%;margin:0 auto;padding-inline:clamp(18px,4vw,36px);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);}
  .logo{display:inline-flex;align-items:center;gap:11px;color:var(--brand-deep);}
  .logo img{width:36px;height:36px;}
  .logo-text{font-family:var(--font-serif);font-size:1.08rem;white-space:nowrap;}
  .nav-list{list-style:none;display:flex;align-items:center;gap:2px;font-size:0.86rem;}
  .nav-list a{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;color:var(--ink);transition:color var(--dur-base) var(--ease);}
  .nav-list a:hover{color:var(--brand-deep);}
  .nav-list a.is-current{color:var(--brand);position:relative;}
  .nav-list a.is-current::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:1px;background:var(--apricot);}
  .nav-list a.nav-reserve.is-current::after{display:none;}
  .nav-reserve{margin-left:6px;color:#fff!important;background:var(--brand);border-radius:var(--radius-pill);}
  .menu-toggle{display:none;align-items:center;gap:8px;min-height:44px;border:0;background:transparent;color:var(--brand-deep);font:inherit;cursor:pointer;}
  .menu-toggle-icon{width:28px;display:grid;gap:5px;}
  .menu-toggle-bar{display:block;width:28px;height:1px;background:currentColor;transition:transform var(--dur-base),opacity var(--dur-base);}
  .menu-toggle-label{font-size:var(--fs-label);}
  .menu-toggle.is-open .menu-toggle-bar:nth-child(1){transform:translateY(6px) rotate(32deg);}
  .menu-toggle.is-open .menu-toggle-bar:nth-child(2){opacity:0;}
  .menu-toggle.is-open .menu-toggle-bar:nth-child(3){transform:translateY(-6px) rotate(-32deg);}

  /* Hero */
  .hero{position:relative;min-height:clamp(520px,76vh,720px);display:grid;align-items:center;overflow:hidden;isolation:isolate;}
  .hero::before{content:"";position:absolute;inset:28px auto 28px 50%;width:min(47vw,620px);border:1px solid rgba(221,211,203,0.9);background:var(--paper-soft);z-index:-2;}
  .hero-frame{position:absolute;inset:28px auto 28px 50%;width:min(47vw,620px);height:calc(100% - 56px);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;z-index:-1;}
  .hero-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(0.9) contrast(0.98);opacity:0;animation:heroSlide 12s infinite;}
  .hero-frame img:nth-child(2){animation-delay:6s;}
  @keyframes heroSlide{0%{opacity:1}44%{opacity:1}50%{opacity:0}94%{opacity:0}100%{opacity:1}}
  .hero-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(251,250,247,0.6) 0%,rgba(251,250,247,0.46) 42%,rgba(251,250,247,0.08) 78%,rgba(251,250,247,0) 100%);}
  .hero-inner{max-width:650px;padding-block:clamp(54px,8vw,92px);}
  .hero-tag{display:inline-flex;align-items:center;gap:14px;margin-bottom:28px;color:var(--sage);font-family:var(--font-round);font-size:0.75rem;letter-spacing:0.14em;}
  .hero-tag::before{content:"";width:36px;height:1px;background:currentColor;}
  .hero-title{max-width:var(--measure);color:var(--ink-strong);font-family:var(--font-serif);font-weight:500;font-size:var(--fs-hero);line-height:1.32;letter-spacing:0.01em;}
  .hero-title .accent{color:var(--brand);}

  /* About intro */
  .intro-photo{aspect-ratio:16/9;margin-bottom:clamp(28px,4vw,40px);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft);}
  .intro-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(0.96);}
  .intro-catch{max-width:var(--measure);margin-bottom:16px;font-family:var(--font-round);font-size:var(--fs-h2);line-height:var(--lh-snug);color:var(--brand-deep);}
  .intro-lead{max-width:var(--measure);color:var(--ink);}
  .intro-lead + .intro-lead{margin-top:1em;}

  /* generic grids */
  .features{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(28px,3.5vw,44px) clamp(24px,3vw,36px);}
  .features .hp-feature{justify-items:center;text-align:center;}
  .works{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,48px);}
  .courses{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  .gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
  .gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow-soft);}
  .voices{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:920px;margin-inline:auto;}
  .subhead{margin-bottom:clamp(24px,3vw,34px);text-align:center;}
  .subhead h3{color:var(--ink-strong);font-family:var(--font-round);font-weight:500;font-size:var(--fs-h2);margin-bottom:10px;}
  .subhead p{max-width:var(--measure);margin-inline:auto;color:var(--ink);}
  .block-gap{margin-top:var(--block-gap);}
  .cta-row{margin-top:var(--sp-8);}

  /* fertility feature */
  .fert{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,0.82fr);gap:clamp(28px,5vw,60px);align-items:center;}
  .fert-title{color:var(--brand-deep);font-family:var(--font-round);font-weight:500;font-size:var(--fs-h2);line-height:var(--lh-snug);margin-bottom:16px;}
  .fert-desc{max-width:var(--measure);color:var(--ink);margin-bottom:24px;}
  .fert-visual{aspect-ratio:4/3;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft);}
  .fert-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(0.96);}

  /* access */
  .access{display:grid;grid-template-columns:minmax(0,0.85fr) minmax(300px,1fr);gap:clamp(28px,5vw,56px);}
  .info dl{display:grid;grid-template-columns:96px 1fr;row-gap:14px;column-gap:20px;}
  .info dt{font-family:var(--font-round);font-size:0.82rem;letter-spacing:0.14em;color:var(--ink-mute);padding-top:2px;}
  .info dd{color:var(--ink);font-size:0.96rem;line-height:1.8;}
  .info dd small{display:block;margin-top:4px;font-size:0.8rem;color:var(--ink-mute);}
  .access-notes{list-style:none;display:grid;gap:4px;margin-top:var(--sp-5);color:var(--ink);font-size:0.96rem;}
  .access-notes li{position:relative;padding-left:1em;}
  .access-notes li::before{content:"・";position:absolute;left:0;color:var(--brand);}
  .map{aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);background:var(--paper-soft);}
  .map img{width:100%;height:100%;object-fit:cover;}

  /* reservation */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:var(--sp-7);}
  .step-num{font-family:var(--font-round);font-size:0.82rem;letter-spacing:0.14em;color:var(--ink-mute);margin-bottom:6px;}
  .step-title{font-family:var(--font-round);font-weight:500;color:var(--brand-deep);font-size:var(--fs-h3);margin-bottom:8px;}
  .step-desc{color:var(--ink);font-size:0.96rem;}
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:560px;margin-inline:auto;}
  .visit-guide{display:grid;grid-template-columns:120px 1fr;gap:8px 20px;}
  .visit-guide dt{color:var(--ink-mute);font-family:var(--font-round);font-size:0.82rem;letter-spacing:0.08em;}
  .visit-guide dd{color:var(--ink);font-size:0.96rem;line-height:1.8;}
  .step-rule{display:flex;align-items:center;gap:14px;}
  .step-rule::after{content:"→";color:var(--ink-faint);}

  /* footer */
  .footer{padding:var(--sp-9) 0 24px;color:rgba(243,238,232,0.78);background:#282422;}
  .footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:36px;padding-bottom:var(--sp-7);}
  .footer-logo{margin-bottom:12px;color:var(--paper-soft);font-family:var(--font-serif);font-size:1.18rem;}
  .footer-col-title{margin-bottom:12px;color:#fff;font-family:var(--font-round);font-size:var(--fs-small);}
  .footer-nav{list-style:none;display:grid;gap:8px;font-size:var(--fs-small);}
  .footer-copy{padding-top:20px;border-top:1px solid rgba(243,238,232,0.16);color:rgba(243,238,232,0.46);text-align:center;font-size:0.78rem;}

  @media(max-width:980px){
    .menu-toggle{display:inline-flex;}
    .nav-list{position:fixed;top:0;right:0;z-index:105;width:100%;height:100dvh;flex-direction:column;align-items:stretch;gap:0;padding:var(--header-height) 0 var(--sp-8);background:var(--paper);transform:translateX(100%);transition:transform var(--dur-slow) var(--ease);overflow-y:auto;}
    .nav-list.is-open{transform:translateX(0);}
    .nav-list li{border-top:1px solid var(--line-soft);}
    .nav-list a{padding:22px 28px;min-height:auto;font-size:1.05rem;}
    .nav-list a.is-current::after{display:none;}
    .nav-reserve{margin:0;border-radius:0;}
    .features{grid-template-columns:repeat(2,1fr);}
    .works,.courses,.fert,.access,.voices{grid-template-columns:1fr;}
    .fert>div:first-child{text-align:center;}
    .fert-desc{margin-inline:auto;text-align:left;}
    .hero::before,.hero-frame{inset:auto;position:absolute;}
    .hero-overlay{background:linear-gradient(180deg,rgba(251,250,247,0.2),rgba(251,250,247,0.75));}
    .hero-frame{inset:0;width:100%;height:100%;border-radius:0;box-shadow:none;}
    .hero{min-height:clamp(360px,60vh,460px);}
  }
  @media(max-width:560px){
    .features,.gallery,.contact-grid,.steps,.voices{grid-template-columns:1fr;}
    .gallery{grid-template-columns:repeat(2,1fr);}
    .visit-guide{grid-template-columns:1fr;gap:2px;}
    .visit-guide dd + dt{margin-top:10px;}
  }
