@charset "UTF-8";
  :root{
    --bg: #FBFAF6;
    --bg-alt: #F3F1EA;
    --ink: #1E201C;
    --ink-2: #3A3D37;
    --sub: #6B6E68;
    --line: #D9D6CD;
    --line-2: #E9E6DE;
    --forest: oklch(0.38 0.05 145);
    --forest-2: oklch(0.55 0.06 145);
    --moss: oklch(0.72 0.04 120);
    --paper: #ffffff;
    --serif: "Noto Sans JP", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    --sans: "Noto Sans JP", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    --en: "Roboto", "Noto Sans JP", sans-serif;
    --display: "Noto Sans JP", "Hiragino Kaku Gothic Pro", sans-serif;
    --mono: "Roboto", ui-monospace, monospace;
  }
  *{box-sizing:border-box;-webkit-font-smoothing:antialiased;}
  html{scroll-behavior:smooth;scroll-padding-top:80px;}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
  html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:400;line-height:1.9;font-feature-settings:"palt";}
  /* ============ Japanese Line-Breaking ============ */
  /* Prevents orphaned particles (の/を/で) at line-ends and awkward wraps
     mid-word. `auto-phrase` breaks at Japanese phrase boundaries when
     supported (Chrome/Safari), falling back gracefully. `pretty` balances
     line lengths on paragraphs. */
  p, h1, h2, h3, h4, h5, li, dd, dt, .host-caption, .plan-title, .plan-sub, .section-title, .concept-highlight p, .hero-concept, .hero-title, .hero-lead {
    line-break: strict;
    /*word-break: auto-phrase;*/
    overflow-wrap: normal;
    /* text-wrap: wrap (default) fills each line evenly — right edges
       align consistently across sections. 'pretty' was tried but its
       line-length balancing made right edges look ragged in Japanese. */
    text-wrap: wrap;
  }

  img{display:block;max-width:100%;height:auto;}
  a{color:inherit;}
  p{text-wrap:wrap;}

  /* ============ Global scaffolding ============ */
  .wrap{max-width:1200px;margin:0 auto;padding:0 40px;}
  .measure{max-width:720px;}
  .measure-wide{max-width:880px;}
  .center{margin-left:auto;margin-right:auto;}

  /* ============ Top nav ============ */
  .topbar{position:sticky;top:0;z-index:50;background:rgba(251,250,246,0.88);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line-2);}
  .topbar-inner{display:flex;align-items:center;justify-content:space-between;height:94px;}
  .brand{display:flex;align-items:baseline;gap:12px;}
  .brand-mark{font-family:var(--en);font-weight:700;letter-spacing:.04em;font-size:18px;color:var(--forest);}
  .brand-sub{font-family:var(--serif);font-size:12px;letter-spacing:.14em;color:var(--sub);}
  .topnav{display:flex;gap:26px;font-size:12px;letter-spacing:.14em;color:var(--ink-2);font-family:var(--en);text-transform:uppercase;}
  .topnav a{text-decoration:none;padding:6px 2px;border-bottom:1px solid transparent;transition:.2s;}
  .topnav a:hover{color:var(--forest);border-color:var(--forest);}
  .topcta{font-size:12px;letter-spacing:.12em;padding:10px 18px;border:1px solid var(--ink);color:var(--ink);text-decoration:none;font-family:var(--en);text-transform:uppercase;transition:.25s;}
  .topcta:hover{background:var(--ink);color:var(--bg);}
  @media (max-width:900px){.topnav{display:none;}}

  /* ============ HERO ============ */
  .hero{padding:56px 0 0;position:relative;}
  .hero-grid{display:grid;grid-template-columns: 1fr;gap:36px;}
  .hero-eyebrow{font-family:var(--en);font-size:12px;letter-spacing:.32em;color:var(--forest);text-transform:uppercase;margin-bottom:22px;display:flex;align-items:center;gap:14px;}
  .hero-eyebrow::before{content:"";width:36px;height:1px;background:var(--forest);display:inline-block;}
  .hero-title{font-family:var(--serif);font-weight:500;font-size:clamp(18px,2.4vw,32px);letter-spacing:.04em;line-height:1.35;margin:0 0 8px;color:var(--ink);white-space:nowrap;}
  .hero-title-en{font-family:var(--en);font-weight:500;font-size:clamp(11px,1.1vw,14px);letter-spacing:.18em;color:var(--forest);line-height:1.4;margin:0 0 26px;text-transform:none;}
  @media (max-width:640px){
    .hero-title{white-space:normal;font-size:18px;letter-spacing:.02em;}
    .hero-title-en{font-size:11px;letter-spacing:.12em;}
  }
  .hero-title .sm{display:block;font-size:.55em;font-weight:400;color:var(--sub);letter-spacing:.14em;margin-top:14px;font-family:var(--sans);}


  .hero-concept{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3.2vw,40px);line-height:1.55;margin:0;color:var(--ink);}
  .hero-concept em{font-style:normal;color:var(--forest);}
  .hero-lead{max-width:640px;color:var(--ink-2);font-size:15.5px;line-height:2;margin:26px 0 40px;}
  .hero-media{margin-top:14px;position:relative;overflow:hidden;border:1px solid var(--line-2);}
  .hero-media img{width:100%;object-fit:cover;aspect-ratio: 16 / 9;}
  .hero-meta{display:flex;flex-wrap:wrap;gap:36px;margin-top:22px;font-size:12px;letter-spacing:.14em;color:var(--sub);font-family:var(--en);text-transform:uppercase;}
  .hero-meta span{display:inline-flex;align-items:center;gap:10px;}
  .hero-meta span::before{content:"";width:6px;height:6px;background:var(--forest);border-radius:50%;display:inline-block;}

  /* ============ Section chrome ============ */
  section{padding:110px 0;position:relative;}
  section + section{border-top:1px solid var(--line-2);}
  .section-head{display:grid;grid-template-columns: 180px 1fr;gap:40px;margin-bottom:56px;align-items:start;}
  .section-num{font-family:var(--en);font-size:12px;letter-spacing:.28em;color:var(--forest);text-transform:uppercase;padding-top:8px;border-top:1px solid var(--forest);display:inline-block;padding-right:40px;}
  .section-num .n{display:block;font-size:32px;font-weight:700;color:var(--forest);letter-spacing:.02em;line-height:1;margin-top:6px;font-family:var(--en);}
  .section-eyebrow{font-family:var(--en);font-size:13px;letter-spacing:.28em;color:var(--forest);text-transform:uppercase;margin-bottom:14px;}
  .section-title{font-family:var(--serif);font-weight:500;font-size:clamp(24px,2.6vw,36px);line-height:1.55;margin:0 0 6px;color:var(--ink);}
  .section-sub{font-family:var(--serif);color:var(--sub);font-size:15px;letter-spacing:.02em;}
  @media (max-width:900px){.section-head{grid-template-columns:1fr;gap:14px;}}

  /* ============ Prose ============ */
  .prose p{margin:0 0 1.6em;font-size:15.5px;line-height:2.05;color:var(--ink-2);}
  .prose p:last-child{margin-bottom:0;}
  .prose .lead{font-family:var(--serif);font-size:19px;line-height:1.95;color:var(--ink);margin-bottom:2em;}
  .prose strong{color:var(--ink);font-weight:500;}

  /* ============ Concept-specific ============ */
  .concept-body{display:grid;grid-template-columns: 1fr;gap:0;}
  .concept-highlight{background:var(--bg-alt);padding:56px 64px;margin:56px 0 0;border-left:2px solid var(--forest);display:grid;grid-template-columns:1fr 300px;gap:56px;align-items:center;}
  .concept-highlight p{font-family:var(--serif);font-size:19px;line-height:2;color:var(--ink);margin:0;max-width:52ch;}
  .concept-highlight-photo{position:relative;justify-self:end;width:300px;margin:0;}
  .concept-highlight-photo img{width:300px;height:340px;object-fit:cover;object-position:35% 40%;display:block;filter:saturate(1.02);}
  .concept-highlight-photo figcaption{margin-top:12px;font-family:var(--en);font-size:10px;letter-spacing:.24em;color:var(--forest);text-transform:uppercase;font-weight:500;text-align:left;}
  @media (max-width:720px){
    .concept-highlight{grid-template-columns:1fr;gap:28px;}
    .concept-highlight-photo{justify-self:start;width:100%;max-width:360px;}
    .concept-highlight-photo img{width:100%;height:260px;}
  }

  /* ============ Host ============ */
  /* --- Host: paired composition (Two Perspectives) --- */
  .host-pair{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:96px;padding-top:8px;}
  .host-pair::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:linear-gradient(to bottom, transparent 0%, var(--line) 12%, var(--line) 88%, transparent 100%);}
  .host-col{display:flex;flex-direction:column;}
  .host-role{font-family:var(--en);font-size:11px;letter-spacing:.32em;color:var(--forest);text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:14px;font-weight:500;}
  .host-role::before{content:"";width:24px;height:1px;background:var(--forest);display:inline-block;}
  .host-archetype{font-family:var(--en);font-size:clamp(22px,2.2vw,30px);letter-spacing:.06em;color:var(--forest);text-transform:uppercase;font-weight:700;line-height:1.15;margin:0 0 8px;}
  .host-archetype-jp{font-family:var(--serif);font-size:15px;letter-spacing:.14em;color:var(--ink-2);margin:0 0 32px;font-weight:500;}
  .host-photo{position:relative;width:100%;max-width:360px;margin-bottom:32px;}
  .host-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--bg-alt);display:block;}
  .host-photo::after{content:"";position:absolute;left:10px;bottom:-10px;right:-10px;top:10px;border:1px solid var(--forest);z-index:-1;}
  .host-name{font-family:var(--serif);font-size:clamp(26px,2.6vw,36px);font-weight:500;margin:0 0 6px;color:var(--ink);letter-spacing:.04em;line-height:1.3;}
  .host-title{font-size:13px;color:var(--sub);letter-spacing:.08em;margin:0 0 22px;}
  .host-caption{font-family:var(--serif);font-size:16px;line-height:1.7;color:var(--forest);margin:0 0 24px;padding:0 0 0 14px;border-left:2px solid var(--forest);letter-spacing:.02em;}
  .host-bio{font-size:15.5px;line-height:2.05;color:var(--ink-2);margin:0 0 24px;}
  .host-profile-block{margin-top:8px;background:var(--bg-alt);padding:28px 30px 30px;border-left:2px solid var(--forest);}
  .host-profile-label{font-family:var(--en);font-size:11px;letter-spacing:.28em;color:var(--forest);text-transform:uppercase;font-weight:500;margin-bottom:14px;display:flex;align-items:center;gap:12px;}
  .host-profile-label::after{content:"";flex:1;height:1px;background:var(--line);}
  .host-profile{font-size:14.5px;line-height:2;color:var(--ink-2);margin:0;}
  .host-profile p{margin:0 0 1em;}
  .host-profile p:last-child{margin-bottom:0;}
  @media (max-width:900px){
    .host-pair{grid-template-columns:1fr;gap:72px;}
    .host-pair::before{top:auto;bottom:auto;left:0;right:0;width:auto;height:1px;top:50%;background:linear-gradient(to right, transparent 0%, var(--line) 12%, var(--line) 88%, transparent 100%);}
    .host-photo{max-width:280px;}
  }

  /* ============ Place ============ */
  .place-flow{display:grid;grid-template-columns:1fr;gap:0;}
  .place-block{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:0;margin-bottom:80px;}
  .place-block.reverse{direction:rtl;}
  .place-block.reverse > *{direction:ltr;}
  .place-block img{width:100%;aspect-ratio:4/3;object-fit:cover;}
  .place-block p{font-size:15.5px;line-height:2.05;color:var(--ink-2);margin:0;}
  @media (max-width:900px){.place-block{grid-template-columns:1fr;gap:24px;margin-bottom:48px;}}

  /* ============ Nature Positive Program ============ */
  .np-body{max-width:820px;}
  .np-media{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:64px 0;}
  .np-media img{width:100%;aspect-ratio:4/3;object-fit:cover;}
  @media (max-width:900px){.np-media{grid-template-columns:1fr;}}

  /* ============ Plans ============ */

  /* Plan Map — 3-entrance diagram */
  .plan-map{margin:8px 0 88px;position:relative;}
  .plan-map-band{position:relative;padding:28px 40px;background:var(--bg-alt);border-top:1px solid var(--forest);}
  .plan-map-band-inner{display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;}
  .plan-map-band-en{font-family:var(--en);font-size:13px;letter-spacing:.32em;color:var(--forest);text-transform:uppercase;font-weight:700;white-space:nowrap;}
  .plan-map-band-jp{font-family:var(--serif);font-size:16px;line-height:1.75;color:var(--ink);letter-spacing:.02em;}

  .plan-map-connectors{display:grid;grid-template-columns:repeat(3,1fr);height:44px;padding:0 6%;}
  .plan-map-connectors span{justify-self:center;width:1px;height:100%;background:linear-gradient(to bottom, var(--forest) 0%, var(--line) 100%);}

  .plan-map-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .plan-map-card{position:relative;display:flex;flex-direction:column;padding:32px 28px 28px;background:var(--paper);border:1px solid var(--line);text-decoration:none;color:inherit;transition:.25s;min-height:340px;}
  .plan-map-card:hover{border-color:var(--forest);background:var(--bg-alt);transform:translateY(-2px);}
  .plan-map-card.featured{background:var(--bg-alt);border-color:var(--forest);}
  .plan-map-card.featured::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:3px;background:var(--forest);}
  .pmc-num{font-family:var(--en);font-size:11px;letter-spacing:.28em;color:var(--forest);text-transform:uppercase;font-weight:500;margin-bottom:4px;}
  .pmc-num b{font-size:20px;letter-spacing:.06em;font-weight:700;margin-left:4px;}
  .pmc-tag{font-family:var(--sans);font-size:10.5px;letter-spacing:.22em;color:var(--forest);border:1px solid var(--forest);display:inline-block;padding:4px 10px;font-weight:500;align-self:flex-start;margin-bottom:20px;}
  .pmc-copy{font-family:var(--serif);font-size:20px;line-height:1.7;font-weight:500;color:var(--ink);margin:0 0 22px;letter-spacing:.03em;}
  .pmc-name{font-family:var(--en);font-size:13px;letter-spacing:.22em;color:var(--forest);text-transform:uppercase;font-weight:700;line-height:1.5;margin:0 0 auto;padding-left:14px;border-left:2px solid var(--forest);}
  .pmc-name span{display:block;font-size:11px;letter-spacing:.32em;font-weight:500;color:var(--forest-2);margin-top:2px;}
  .pmc-more{font-family:var(--en);font-size:10.5px;letter-spacing:.24em;color:var(--forest);text-transform:uppercase;font-weight:500;display:flex;justify-content:space-between;align-items:center;padding-top:20px;margin-top:28px;border-top:1px solid var(--line-2);}
  .pmc-more span{transition:.2s;}
  .plan-map-card:hover .pmc-more span{transform:translateY(3px);}

  .plan-map-axis{position:relative;margin-top:24px;padding:14px 6% 0;display:flex;justify-content:space-between;align-items:center;}
  .plan-map-axis .pma-line{position:absolute;left:6%;right:6%;top:6px;height:1px;background:linear-gradient(to right, var(--forest) 0%, var(--line) 50%, var(--forest) 100%);}
  .plan-map-axis .pma-l,
  .plan-map-axis .pma-r{font-family:var(--en);font-size:10.5px;letter-spacing:.24em;color:var(--sub);text-transform:uppercase;font-weight:500;background:var(--bg);padding:0 12px;position:relative;z-index:1;}
  .plan-map-axis .pma-l::before,
  .plan-map-axis .pma-r::before{content:"";position:absolute;top:50%;width:8px;height:8px;border:1px solid var(--forest);background:var(--bg);transform:translateY(-50%) rotate(45deg);}
  .plan-map-axis .pma-l::before{left:-14px;}
  .plan-map-axis .pma-r::before{right:-14px;}

  @media (max-width:900px){
    .plan-map-band-inner{grid-template-columns:1fr;gap:12px;}
    .plan-map-cards{grid-template-columns:1fr;gap:16px;}
    .plan-map-connectors{display:none;}
    .plan-map-card{min-height:auto;padding:24px 22px;}
    .plan-map-axis{display:none;}
    .plan-map{margin-bottom:56px;}
  }

  .plan{padding:72px 0;border-top:1px solid var(--line);scroll-margin-top:80px;}
  .plan:first-of-type{border-top:0;padding-top:0;}
  .plan-header{display:grid;grid-template-columns: 1fr;gap:20px;margin-bottom:48px;}
  .plan-tag{font-family:var(--sans);font-size:11px;letter-spacing:.24em;color:var(--forest);border:1px solid var(--forest);display:inline-block;padding:5px 14px;font-weight:500;justify-self:start;}
  .plan-code{font-family:var(--en);font-size:13px;letter-spacing:.28em;color:var(--sub);text-transform:uppercase;}
  .plan-title{font-family:var(--serif);font-size:clamp(28px,3vw,40px);font-weight:500;line-height:1.55;margin:0;color:var(--ink);letter-spacing:.03em;}
  .plan-name{font-family:var(--en);font-size:15px;letter-spacing:.24em;color:var(--forest);text-transform:uppercase;font-weight:700;line-height:1.5;margin-top:20px;padding-left:16px;border-left:2px solid var(--forest);}
  .plan-name span{display:inline-block;font-size:12px;letter-spacing:.32em;font-weight:500;color:var(--forest-2);margin-left:4px;}
  .plan-sub{font-family:var(--serif);font-size:15px;color:var(--sub);letter-spacing:.14em;margin-top:14px;}
  .plan-hero{margin:0 0 48px;}
  .plan-hero img{width:100%;aspect-ratio:21/9;object-fit:cover;}
  .plan-grid{display:grid;grid-template-columns: 310px 1fr;gap:50px;align-items:start;}
  .plan-spec{background:var(--paper);border:1px solid var(--line);padding:26px;}
  .plan-spec dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:14px 20px;font-size:13.5px;}
  .plan-spec dt{color:var(--sub);letter-spacing:.06em;white-space:nowrap; font-size: 13px}
  .plan-spec dd{margin:0;color:var(--ink);font-weight:500; line-height: 1.5}
  .plan-spec dd.price{font-family:var(--serif);font-size:17px; line-height: 1.5; color:var(--forest);font-weight:500;}
  .plan-spec dd.price span{font-size:12px;}
  .plan-spec .divider{grid-column:1/-1;height:1px;background:var(--line-2);margin:4px 0;}
  .plan-body h4{font-family:var(--serif);font-size:20px;font-weight:500;margin:32px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line-2);letter-spacing:.04em;color:var(--ink);}
  .plan-body h4:first-child{margin-top:0;}
  .plan-body h4 .en{font-family:var(--en);font-size:11px;letter-spacing:.24em;color:var(--forest);margin-left:12px;text-transform:uppercase;font-weight:400;}
  .plan-body p{font-size:15.5px;line-height:2;color:var(--ink-2);margin:0 0 1.4em;}
  .plan-body p:last-child{margin-bottom:0;}
  .plan-inline{margin:36px 0;}
  .plan-inline img{width:100%;aspect-ratio:16/9;object-fit:cover;}
  .plan-gallery{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  .plan-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;}
  @media (max-width:640px){.plan-gallery{gap:8px;}}
  .plan-day{margin:14px 0 24px;padding-left:0;}
  .plan-day p{margin:0 0 1em;}
  .plan-day-tag{display:inline-block;font-family:var(--en);font-size:11px;letter-spacing:.22em;color:var(--forest);margin-right:8px;font-weight:500;text-transform:uppercase;}
  .plan-book-action{margin-top:24px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
  .plan-book-btn{display:inline-flex;align-items:center;gap:16px;padding:18px 32px;background:var(--ink);color:var(--bg);text-decoration:none;font-size:13px;letter-spacing:.2em;font-family:var(--sans);font-weight:500;text-transform:uppercase;transition:.25s;border:1px solid var(--ink);}
  .plan-book-btn:hover{background:var(--forest);border-color:var(--forest);}
  .plan-book-btn .arrow{display:inline-block;transition:.25s;font-family:var(--en);}
  .plan-book-btn:hover .arrow{transform:translateX(4px);}
  .plan-book-note{font-family:var(--en);font-size:11px;letter-spacing:.24em;color:var(--forest-2);text-transform:uppercase;}
  @media (max-width:900px){.plan-grid{grid-template-columns:1fr;gap:40px;}}

  /* ============ Facility ============ */
  .fac-block{margin-bottom:80px;}
  .fac-title{font-family:var(--serif);font-size:24px;font-weight:500;margin:0 0 8px;letter-spacing:.06em;color:var(--ink);}
  .fac-title .en{font-family:var(--en);font-size:12px;letter-spacing:.28em;color:var(--forest);text-transform:uppercase;display:block;margin-bottom:6px;font-weight:500;}
  .fac-lead{font-size:15.5px;line-height:2;color:var(--ink-2);max-width:820px;margin:0 0 40px;}
  /* Split layout: hero on the left, 3×2 grid on the right */
  .fac-media{display:grid;grid-template-columns:1.15fr 1fr;gap:14px;align-items:stretch;}
  .fac-hero{margin:0;height:100%;}
  .fac-hero img{width:100%;height:100%;object-fit:cover;display:block;}
  .fac-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:14px;}
  .fac-grid img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block;}
  @media (max-width:900px){
    .fac-media{grid-template-columns:1fr;}
    .fac-hero{height:auto;}
    .fac-hero img{aspect-ratio:16/9;height:auto;}
    .fac-grid{grid-auto-rows:auto;}
    .fac-grid img{height:auto;}
  }
  @media (max-width:640px){
    .fac-media{gap:8px;}
    .fac-grid{grid-template-columns:repeat(2,1fr);gap:6px;}
    .fac-grid img{aspect-ratio:1/1;}
  }


  /* ============ Research ============ */
  .research-lead{max-width:820px;margin:0 0 56px;font-size:15.5px;line-height:2.05;color:var(--ink-2);}
  .research-item{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;margin-bottom:64px;padding:0;}
  .research-item.reverse{grid-template-columns:1fr 1fr;}
  .research-item .txt h4{font-family:var(--serif);font-size:20px;font-weight:500;margin:0 0 18px;color:var(--ink);line-height:1.6;}
  .research-item .txt .en{font-family:var(--en);font-size:11px;letter-spacing:.28em;color:var(--forest);text-transform:uppercase;display:block;margin-bottom:10px;}
  .research-item .txt p{font-size:15.5px;line-height:2;color:var(--ink-2);margin:0;}
  .research-item img{width:100%;background:var(--paper);border:1px solid var(--line-2);}
  .research-item.reverse .txt{order:2;}
  .research-close{border-top:1px solid var(--line);padding-top:40px;font-size:15.5px;line-height:2;color:var(--ink-2); text-align: center;}
  @media (max-width:900px){
    .research-item, .research-item.reverse{grid-template-columns:1fr;} .research-item.reverse .txt{order:0;}
    .research-close{
      text-align: left;
    }
    .research-close br{
      display: none;
    }
  }

  /* ============ CTA ============ */
  .cta{background:var(--bg-alt);padding:96px 0;text-align:center;border-top:1px solid var(--line-2);}
  .cta-eyebrow{font-family:var(--en);font-size:12px;letter-spacing:.32em;color:var(--forest);text-transform:uppercase;margin-bottom:18px;}
  .cta h3{font-family:var(--serif);font-size:clamp(24px,2.4vw,32px);font-weight:500;margin:0 0 20px;line-height:1.7;color:var(--ink);}
  .cta p{max-width:640px;margin:0 auto 40px;font-size:15.5px;line-height:2;color:var(--ink-2);}
  .cta-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
  .btn{display:inline-flex;align-items:center;gap:14px;padding:16px 32px;text-decoration:none;font-size:13px;letter-spacing:.18em;font-family:var(--sans);font-weight:500;transition:.25s;}
  .btn-primary{background:var(--ink);color:var(--bg);}
  .btn-primary:hover{background:var(--forest);}
  .btn-secondary{border:1px solid var(--ink);color:var(--ink);}
  .btn-secondary:hover{background:var(--ink);color:var(--bg);}
  .btn .arrow{display:inline-block;transition:.25s;}
  .btn:hover .arrow{transform:translateX(4px);}

  /* ============ Footer ============ */
  footer{padding:20px 0;background:var(--ink);color:#B8B39F;}
  .footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;font-size:12px;letter-spacing:.12em;font-family:var(--en);}
  .footer-brand{font-family:var(--en);font-size:16px;letter-spacing:.14em;color:#EDECE6;}
  .footer-brand .jp{font-family:var(--serif);font-size:13px;letter-spacing:.14em;margin-left:12px;color:#B8B39F;}

  /* ============ Utility ============ */

  .en-cap{font-family:var(--en);font-size:11px;letter-spacing:.28em;color:var(--forest);text-transform:uppercase;}

  /* ============ IMAGE PLACEHOLDER — used only when there is no adequate image ============ */

  /* ============ Mobile Readability ============ */
  @media (max-width:720px){
    html,body{line-height:1.85;letter-spacing:.03em;}
    .wrap{padding:0 24px;}
    /* Header: compact on mobile so it visually aligns with body */
    .topbar-inner{height:82px;}
    .brand{gap:8px;flex-direction:column;align-items:flex-start;}
    .brand-mark{font-size:14px;letter-spacing:.06em;line-height:1.2;}
    .brand-sub{font-size:11px;letter-spacing:.06em;white-space:nowrap;}
    .topcta{padding:8px 14px;font-size:11px;letter-spacing:.08em;}
    /* Body text: 14.5px \u2192 15.5px, prose 15.5 \u2192 16px */
    .hero-lead{font-size:16px;line-height:1.95;}
    .prose p{font-size:16px;line-height:1.95;}
    .prose .lead{font-size:17px;line-height:1.85;}
    .host-bio{font-size:16px;line-height:1.9;}
    .host-profile{font-size:15px;line-height:1.9;}
    .host-caption{font-size:16px;line-height:1.75;}
    .host-archetype-jp{font-size:14px;letter-spacing:.1em;}
    .host-title{font-size:14px;}
    .place-block p{font-size:16px;line-height:1.95;}
    .np-body p{font-size:16px;line-height:1.95;}
    .plan-body p{font-size:16px;line-height:1.9;}
    .plan-spec dl{font-size:14.5px;gap:10px 16px;}
    .plan-spec{padding:24px;}
    .plan-day p{font-size:16px;line-height:1.9;}
    .plan-sub{font-size:15px;line-height:1.6;}
    .research-lead{font-size:16px;line-height:1.95;}
    .research-item .txt p{font-size:16px;line-height:1.9;}
    .research-item .txt h4{font-size:18px;line-height:1.6;}
    .research-close{font-size:16px;line-height:1.9;}
    .fac-lead{font-size:16px;line-height:1.9;}
    .cta p{font-size:16px;line-height:1.9;}
    /* Small English labels: slightly larger + wider tracking */
    .section-eyebrow{font-size:12px;letter-spacing:.24em;}
    .en-cap{font-size:11px;}
    /* Section heads and titles: slightly smaller so they don't dominate */
    .section-title{font-size:22px;line-height:1.5;}
    .plan-title{font-size:22px;line-height:1.4;}
    /* Concept highlight box: reduce padding */
    .concept-highlight{padding:32px 24px;margin-top:40px;grid-template-columns:1fr;gap:24px;}
    .concept-highlight-photo{justify-self:start;width:100%;max-width:100%;}
    .concept-highlight-photo img{width:100%;height:240px;}
    .concept-highlight p{font-size:17px;line-height:1.85;max-width:none;}
    /* Sections: tighter vertical padding */
    section{padding-top:64px;padding-bottom:64px;}
    .plan{padding:56px 0;}
  }

  .brand img{
    width: 50px;
    height: auto;
  }
  .footer-brand a img{
    width: 60px;
    height: auto;
  }
  .copyright{
    text-align: right;
  }
  .copyright p{
    margin-bottom: 0;
    margin-top: 5px;
  }
  .visible-sp{
    display: none;
  }
  @media (max-width:900px){
    .brand{
      position: absolute;
      top: 10px;
      left: 50%;
      margin-left: -25px;
    }
    .topbar-inner{
      justify-content: flex-end;
    }
  }
  @media (max-width:720px){
    .brand{
      margin-left: -22px;
    }
    .brand img{
      width: 44px;
    }
    .footer-brand a img{
      width: 45px;
      height: auto;
    }
    .copyright p{
      margin-top: 0;
    }
    .visible-sp{
      display: block;
    }
    .host-role{
      justify-content: center;
    }
    .host-role::before{
      display: none;
    }
    .host-archetype,
    .host-archetype-jp,
    .host-name,
    .host-title{
      text-align: center;
    }
    
    .host-photo{
      margin-left: auto;
      margin-right: auto;
      margin-bottom: 20px;
    }
    .plan-book-btn{
      max-width: 400px;
      width: 100%;
      justify-content: space-between;
    }
    .cta h3{
      font-size: 20px;
    }
    .cta-buttons a{
      width: 100%;
      max-width: 400px;
      justify-content: center;
    }
  }