  :root{
    --cream:#F8F3E7;
    --cream-deep:#EFE6D1;
    --bark:#4A3B2C;
    --bark-soft:#63513C;
    --moss:#5F7C43;
    --pine:#3E5533;
    --sun:#DE8F2C;
    --sun-deep:#B96F19;
    --sky:#7E9DB4;
    --berry:#C25B3B;
    --mustard:#B98A2A;
    --line:rgba(74,59,44,0.18);
    --lvl1:#6FA23C;
    --lvl2:#0F8A63;
    --lvl3:#E0A519;
    --lvl4:#DB5A2B;
    --lvl5:#2E74B5;
    --lvl6:#5A3C99;
    --shadow-soft:0 10px 22px rgba(74,59,44,.12);
    --shadow-lift:0 16px 30px rgba(74,59,44,.18);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  a:focus-visible, button:focus-visible, [tabindex]:focus-visible{
    outline:2.5px solid var(--sun-deep);outline-offset:3px;border-radius:4px;
  }
  body{
    margin:0;
    /*background:var(--cream);*/
    color:var(--bark);
    font-family:'Zen Maru Gothic', sans-serif;
    line-height:1.9;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,.disp{
    font-family:'Kiwi Maru', serif;
    font-weight:500;
    letter-spacing:.03em;
    color:var(--pine);
    margin:0;
  }
  a{color:inherit;}
  img{max-width:100%;}
  br.pc{display:none;}
  br.sp{display:inline;}
  @media(min-width:901px){
    br.pc{display:inline;}
    br.sp{display:none;}
  }
  .guide-photo img, .level-photo img,
  .special-collage .sc-tile img, .goal-photo img, .value-thumb img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  }
  .wrap{max-width:1080px;margin:0 auto;padding:0 28px;position:relative;}

  .eyebrow{
    font-size:13px;
    letter-spacing:.16em;
    color:var(--moss);
    font-weight:700;
    display:inline-flex;
    align-items:center;
    gap:9px;
  }
  .eyebrow svg{width:17px;height:17px;flex:none;}

  /* ---------- scroll reveal ---------- */
  .rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
  .rv.in{opacity:1;transform:none;}
  .rv.d1{transition-delay:.08s;} .rv.d2{transition-delay:.16s;} .rv.d3{transition-delay:.24s;} .rv.d4{transition-delay:.32s;}

  /* ---------- header ---------- */
  header{
    position:fixed;top:0;left:0;right:0;z-index:50;
    background:rgba(248,243,231,0.95);
    backdrop-filter:blur(7px);
    border-bottom:1px solid var(--line);
    box-shadow:0 2px 10px rgba(74,59,44,.05);
    transform:translateY(-100%);
    opacity:0;
    pointer-events:none;
    transition:transform .4s ease, opacity .4s ease;
  }
  header.is-visible{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }

  /* ---------- persistent LINE CTA: always visible, independent of header ---------- */
  /* mirrors .nav's box (max-width/margin/padding) so the button lines up exactly
     with where it sits once the header itself becomes visible on scroll */
  .persistent-cta-wrap{
    position:fixed;top:0;left:0;right:0;z-index:60;
    max-width:1120px;margin:0 auto;
    padding:12px 12px;
    display:flex;align-items:center;justify-content:flex-end;
    pointer-events:none;
  }
  .persistent-cta{pointer-events:auto;}
  @media(min-width:981px){
    .persistent-cta-wrap{padding:12px 28px;}
  }

  .nav{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 28px;max-width:1120px;margin:0 auto;}
  @media(min-width:981px){
    /* reserve room on the right so nav links never sit under the persistent LINE CTA */
    .nav{padding-right:200px;}
  }
  .brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
  .brand img{width:46px;height:46px;border-radius:50%;box-shadow:0 2px 8px rgba(91,74,56,.15);}
  .brand .t{display:flex;flex-direction:column;line-height:1.3;}
  .brand .kanji{font-family:'Kiwi Maru',serif;font-size:19px;color:var(--pine);font-weight:500;}
  .brand .tag{font-size:10.5px;letter-spacing:.1em;color:var(--bark-soft);}
  nav.links{display:flex;gap:22px;font-size:13.5px;font-weight:600;}
  nav.links a{text-decoration:none;color:var(--bark);opacity:.82;transition:opacity .2s, color .2s;white-space:nowrap;position:relative;padding-bottom:3px;}
  nav.links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--sun);border-radius:2px;transition:right .25s ease;}
  nav.links a:hover{opacity:1;color:var(--pine);}
  nav.links a:hover::after{right:0;}
  .cta-btn{
    background:var(--sun);color:#FFF9EC;
    padding:11px 22px;border-radius:999px;
    font-size:13.5px;font-weight:700;letter-spacing:.05em;
    text-decoration:none;white-space:nowrap;
    box-shadow:0 3px 0 var(--sun-deep);
    transition:transform .15s, box-shadow .15s;
    display:inline-block;
  }
  .cta-btn:hover{transform:translateY(2px);box-shadow:0 1px 0 var(--sun-deep);}
  @media(max-width:980px){ .nav{padding:12px 12px;} nav.links{display:none;}}

  .hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
  .hero-badges span{
    font-size:12px;font-weight:700;letter-spacing:.04em;
    border:1.5px solid var(--moss);color:var(--pine);
    padding:4px 14px;border-radius:999px;background:rgba(255,255,255,.45);
  }
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
  .ghost-btn{
    padding:11px 24px;border:1.5px solid var(--pine);border-radius:999px;
    text-decoration:none;color:var(--pine);font-weight:700;font-size:13.5px;letter-spacing:.04em;
    transition:background .2s;
  }
  .ghost-btn:hover{background:rgba(72,97,58,.07);}

  .deco-img{position:absolute;pointer-events:none;z-index:2;}
  .deco-img.deco-guide{top:140px;right:8%;width:184px;height:auto;}
  @media(max-width:980px){.deco-img.deco-guide{top:-2px;right:2%;width:154px;}}
  .deco-img.deco-values-top{top:-8px;left:0;width:112px;height:auto;}
  @media(max-width:980px){.deco-img.deco-values-top{top:-61px;width:100px;}}
  .deco-img.deco-values-bottom{bottom:-18px;right:2%;width:92px;height:auto;opacity:.95;}
  @media(max-width:980px){.deco-img.deco-values-bottom{bottom:-120px; width: 80px;}}
  .deco-img.deco-calendar{top:-10px;right:2%;width:104px;height:auto;}
  @media(max-width:980px){.deco-img.deco-calendar{top:-81px;width:100px;}}
  .deco-img.deco-worries{width:50px;height:auto;margin:16px auto 0;display:block;position:relative;}
  @media(max-width:980px){.deco-img.deco-worries{width:40px;}}
  .hero-audience{
    display:inline-flex;align-items:center;gap:10px;margin-top:24px;
    font-size:12.8px;color:var(--bark-soft);font-weight:700;
  }
  .hero-audience svg{width:28px;height:28px;flex:none;}
  .slider-arrow{
    position:absolute;top:50%;transform:translateY(-50%);z-index:3;
    width:42px;height:42px;border-radius:50%;border:none;cursor:pointer;
    background:rgba(248,243,231,.9);color:var(--pine);font-size:17px;font-weight:700;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 4px 12px rgba(74,59,44,.18);
    transition:background .2s, transform .2s, box-shadow .2s;
  }
  .slider-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.06);box-shadow:0 6px 16px rgba(74,59,44,.22);}
  .slider-arrow.prev{left:12px;}
  .slider-arrow.next{right:12px;}

  /* ---------- utility ---------- */
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

  /* ---------- hero2 (redesign) ---------- */
  .hero2{position:relative;padding:20px 0 0;}
  .hero2-top{position:relative;min-height:340px;}
  .hero2-photo-left{
    position:absolute;top:-20px;left:-84px;z-index:3;
    width:340px;height:340px;border-radius:50%;overflow:hidden;
    box-shadow:var(--shadow-lift);
  }
  .hero2-photo-left img{width:100%;height:100%;object-fit:cover;display:block;}
  .hero2-brand{
    position:relative;z-index:2;text-align:center;
    padding:30px 250px 0 320px;
  }
  .hero2-logo{width:100%;max-width:340px;height:auto;margin:0 auto;display:block;}
  .hero2-badges{flex-direction:column;align-items:center;justify-content:center;margin:16px 0 0;}
  @media(min-width:981px){
    .hero2-badges{margin-top:34px;}
  }
  .hero2-ctas{justify-content:center;margin:22px 0 0;}
  .hero2-audience{justify-content:center;margin-top:16px;}
  .hero2-quicknav{
    position:absolute;top:102px;right:16px;z-index:3;
    display:flex;flex-direction:row;align-items:flex-end;gap:6px;
  }
  .hero2-quicknav a{
    display:flex;flex-direction:column;align-items:center;gap:6px;
    text-decoration:none;transition:color .2s;
  }
  .hero2-quicknav a .qn-label{
    writing-mode:vertical-rl;
    font-size:12px;font-weight:700;color:var(--bark-soft);letter-spacing:.06em;
  }
  .hero2-quicknav a:hover .qn-label{color:var(--pine);}
  .hero2-quicknav .qn-ico{width:19px;height:19px;flex:none;}
  .hero2-quicknav .qn-ico svg, .hero2-quicknav .qn-ico img{width:100%;height:100%;display:block;object-fit:contain;}
  .hero2-quicknav a:nth-child(1){margin-bottom:0;}
  .hero2-quicknav a:nth-child(2){margin-bottom:14px;}
  .hero2-quicknav a:nth-child(3){margin-bottom:28px;}
  .hero2-quicknav a:nth-child(4){margin-bottom:43px;}
  .hero2-quicknav a:nth-child(5){margin-bottom:58px;}
  .hero2-quicknav a:nth-child(6){margin-bottom:73px;}
  .hero2-quicknav a:nth-child(7){margin-bottom:88px;}
  .hero2-mountain{position:relative;margin-top:10px;}
  @media(min-width:981px){
    .hero2-mountain{margin-top:-50px;}
  }
  .hero2-mountain-bg{width:100%;height:auto;display:block;opacity:.8;}
  .hero2-photo-right{
    /* positioning shell only (placed relative to the mountain); the circular
       clip lives on .hero2-photo-circle so .hero2-photo-txt can sit alongside
       it, positioned relative to this same box, without being clipped */
    position:absolute;top:-8%;right:6%;z-index:2;
    width:min(28vw,320px);aspect-ratio:1;
  }
  .hero2-photo-circle{
    width:100%;height:100%;border-radius:50%;overflow:hidden;
    box-shadow:var(--shadow-lift);
  }
  .hero2-photo-circle img{width:100%;height:100%;object-fit:cover;display:block;}
  .hero2-photo-txt{
    position:absolute;top:-17%;left:5%;z-index:3;
    width:42%;height:auto;display:block;pointer-events:none;
  }
  .hero2-open{
    /* left mirrors .hero2-photo-left's own math (wrap centering + its -84px offset)
       so both stay aligned to the same edge at every viewport width */
    position:absolute;left:max(-84px, calc(50% - 534px));top:9%;z-index:3;
    width:min(16vw,210px);display:block;
    filter:drop-shadow(0 10px 18px rgba(74,59,44,.22));
    transition:transform .2s ease;
  }
  .hero2-open:hover{transform:translateY(-3px) rotate(-1deg);}
  .hero2-open img{width:100%;height:auto;display:block;}
  @media(max-width:980px){
    .hero2{padding-top:20px;overflow:hidden;}
    .hero2-top{min-height:0;}
    .hero2-photo-left{width:200px;height:200px;top:-35px;left:-24px;}
    .hero2-quicknav{display:none;}
    .hero2-top{padding-top:228px;}
    .hero2-brand{padding:0;}
    .hero2-logo{max-width:280px;}
    .hero2-mountain{margin-top:16px;padding-bottom:max(0px, calc(118px - 19.55vw));}
    /* pixel offset (not %) so it's measured from the mountain's top edge
       regardless of the mountain band's own (small) height */
    .hero2-photo-right{width:140px;top:-666px;right:-3%;}
    /* .hero2-photo-txt's top/left stay the shared percentages above (relative
       to .hero2-photo-right); only its size needs a mobile-friendly bump */
    .hero2-photo-txt{width:86%;top: -38%;left: -20%;}
    .hero2-open{width:142px;left:0%;top:7%;right:0;margin:auto;}
  }

  /* ---------- about2 (redesign) ---------- */
  #about{padding-top:24px;}
  .about2-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
  .about2-visual{position:relative;z-index:2;width:min(46vw,480px);margin-top:-40px;}
  .about2-combo{width:100%;height:auto;display:block;}
  @media(max-width:980px){
    #about{padding-top:10px;}
    .about2-grid{grid-template-columns:1fr;text-align:center;}
    .about2-visual{margin:0 auto 18px;width:min(86vw,340px);}
    .about-text p{margin-left:auto;margin-right:auto;}
  }

  /* ---------- section shell ---------- */
  section{padding:66px 0;position:relative;scroll-margin-top:84px;}
  section.alt{background:var(--cream-deep);}
  .section-head{max-width:640px;margin-bottom:36px;}
  .section-head h2{font-size:clamp(24px,3.2vw,32px);margin-top:14px;line-height:1.6;}
  .section-head p{color:var(--bark-soft);font-size:14.5px;margin-top:14px;line-height:1.85;}
  .section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
  .section-head.center .eyebrow{justify-content:center;}
  @media(min-width:981px){
    .section-head{font-size:18px;}
    .section-head .eyebrow{font-size:18px;}
    .section-head svg{width:24px;height:24px;}
  }

  /* ---------- worries ---------- */
  .worry-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
  .worry-card{
    background:#FFFDF6;border:1px solid var(--line);border-radius:18px;
    padding:26px 22px 22px;text-align:center;
    box-shadow:var(--shadow-soft);
    transition:transform .25s, box-shadow .25s;
  }
  .worry-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);}
  .worry-card .icon{
    width:68px;height:68px;border-radius:50%;overflow:hidden;position:relative;
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 14px;box-shadow:var(--shadow-soft);
  }
  .worry-card .icon img{width:100%;height:100%;object-fit:cover;}
  .worry-card h3{font-size:15.5px;margin-bottom:9px;line-height:1.6;color:var(--pine);font-family:'Zen Maru Gothic',sans-serif;font-weight:700;}
  .worry-card p{font-size:13px;color:var(--bark-soft);margin:0;line-height:1.8;}

  /* ---------- about ---------- */
  .about-text p{font-size:17px;font-weight:700;color:var(--bark-soft);margin:36px 0 0;line-height:2.3;max-width:480px;}
@media(max-width:980px){
  .about-text p{margin-top: 0;}
  .about2-grid{gap:0;}
}
  /* ---------- new-photos marquee ---------- */
  .newphotos{
    overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;-ms-overflow-style:none;cursor:grab;
    padding:26px 0 32px;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  }
  .newphotos::-webkit-scrollbar{display:none;height:0;}
  .newphotos.dragging{cursor:grabbing;}
  .newphotos.dragging,.newphotos.dragging *{user-select:none;}
  .newphotos-track{display:flex;align-items:center;gap:20px;width:max-content;animation:newphotosScroll 150s linear infinite;}
  .newphotos.paused .newphotos-track{animation-play-state:paused;}
  @keyframes newphotosScroll{from{transform:translateX(0);}to{transform:translateX(-33.3334%);}}
  .newphotos-card{
    flex:0 0 auto;width:280px;border-radius:13px;overflow:hidden;
    box-shadow:var(--shadow-soft);
    transform:rotate(var(--r,0deg));transition:transform .25s ease,box-shadow .25s ease;
  }
  .newphotos-card:hover{transform:rotate(0deg) scale(1.06);box-shadow:var(--shadow-lift);position:relative;z-index:2;}
  .newphotos-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;pointer-events:none;}
  .newphotos-card:nth-child(6n+1){--r:-3deg;}
  .newphotos-card:nth-child(6n+2){--r:2.5deg;}
  .newphotos-card:nth-child(6n+3){--r:-1.5deg;}
  .newphotos-card:nth-child(6n+4){--r:3.5deg;}
  .newphotos-card:nth-child(6n+5){--r:-2.5deg;}
  .newphotos-card:nth-child(6n+6){--r:1.5deg;}
  @media(max-width:640px){
    .newphotos{padding:20px 0 26px;}
    .newphotos-track{gap:12px;animation-duration:95s;}
    .newphotos-card{width:190px;border-radius:11px;}
  }
  /* ---------- guide ---------- */
  .guide-grid{display:grid;grid-template-columns:250px 1fr;gap:46px;align-items:start;}
  .guide-photo{
    width:250px;aspect-ratio:5/6;border-radius:18px;
    background:linear-gradient(160deg,#C9D6B4,#8AA36C);
    position:relative;overflow:hidden;
    box-shadow:var(--shadow-lift);
  }
  .guide-name{font-family:'Kiwi Maru',serif;font-size:24px;color:var(--pine);margin-bottom:4px;}
  .guide-name span{display:inline-block;font-family:'Zen Maru Gothic',sans-serif;font-size:11px;letter-spacing:.14em;color:var(--bark-soft);font-weight:500;margin-left:12px;}
  .guide-tags{list-style:none;margin:14px 0 20px;padding:0;display:flex;flex-wrap:wrap;gap:9px;}
  .guide-tags li{
    font-size:12px;border:1.5px solid var(--moss);color:var(--pine);
    padding:5px 14px;border-radius:999px;font-weight:700;letter-spacing:.02em;
    background:rgba(255,255,255,.5);
  }
  .guide-text p{font-size:14.5px;color:var(--bark-soft);margin:0 0 14px;line-height:1.9;}
  .guide-safety{
    margin-top:18px;background:#FFFDF6;border:1px dashed var(--moss);
    border-radius:14px;padding:16px 20px;font-size:13.3px;color:var(--bark-soft);line-height:1.8;
    box-shadow:var(--shadow-soft);
  }
  .guide-safety b{color:var(--pine);}
  .guide-safety a{color:var(--sun-deep);font-weight:700;text-decoration:underline;text-underline-offset:2px;}
  .guide-safety a:hover{color:var(--berry);}

  /* ---------- flow + trail ---------- */
  .flow-wrap{position:relative;}
  .trail-svg{position:absolute;left:0;right:0;top:38px;width:100%;height:60px;pointer-events:none;}
  .trail-svg path{
    fill:none;stroke:var(--moss);stroke-width:2.4;stroke-linecap:round;
    stroke-dasharray:7 9;
  }
  .trail-svg .runner{
    stroke:var(--sun);stroke-width:2.6;stroke-dasharray:0 2000;
    transition:stroke-dasharray 2.4s ease;
  }
  .flow-wrap.in .trail-svg .runner{stroke-dasharray:2000 0;}
  .flow{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;position:relative;z-index:2;}
  .flow-step{padding-top:8px;}
  .flow-num{
    width:60px;height:60px;border-radius:50%;
    background:#FFFDF6;border:2px solid var(--moss);
    display:flex;align-items:center;justify-content:center;
    font-family:'Kiwi Maru',serif;font-size:19px;color:var(--pine);
    margin-bottom:16px;
  }
  .flow-step:last-child .flow-num{background:var(--sun);border-color:var(--sun-deep);color:#FFF9EC;}
  .flow-step h3{font-size:17px;margin-bottom:8px;color:var(--pine);}
  .flow-step p{font-size:13.6px;color:var(--bark-soft);margin:0;line-height:1.85;}
  .flow-step small{color:var(--moss);display:block;margin-top:6px;font-size:11.8px;font-weight:600;}

  /* ---------- values ---------- */
  .value-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;}
  .value-card{
    flex:0 1 calc((100% - 40px)/3);
    background:#FFFDF6;border:1px solid var(--line);border-radius:16px;
    padding:20px 20px 26px;text-align:center;
    box-shadow:var(--shadow-soft);
    transition:transform .25s, box-shadow .25s;
  }
  .value-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);}
  .value-thumb{
    width:100%;aspect-ratio:4/3;border-radius:12px;overflow:hidden;position:relative;
    display:flex;align-items:center;justify-content:center;
    margin:0 0 18px;box-shadow:var(--shadow-soft);
  }
  .value-thumb.vt1{background:linear-gradient(150deg,#B9CB9C,#748F55);}
  .value-thumb.vt2{background:linear-gradient(150deg,#C7D8E3,#7E9DB4);}
  .value-thumb.vt3{background:linear-gradient(150deg,#EDD3A0,#D3A63F);}
  .value-thumb.vt4{background:linear-gradient(150deg,#E0B49B,#C25B3B);}
  .value-card h3{font-size:15px;margin-bottom:9px;color:var(--pine);font-weight:700;font-family:'Zen Maru Gothic',sans-serif;}
  .value-card p{font-size:12.6px;color:var(--bark-soft);margin:0;line-height:1.75;}
  .value-mini-list{
    list-style:none;margin:14px 0 0;padding:12px 0 0;text-align:left;
    border-top:1px dashed var(--line);
  }
  .value-mini-list li{
    font-size:11.5px;color:var(--bark-soft);line-height:1.7;
    padding-left:18px;position:relative;
  }
  .value-mini-list li::before{
    content:"✓";position:absolute;left:0;top:0;
    color:var(--moss);font-weight:700;font-size:11px;
  }

  /* ---------- levels ---------- */
  .profile{padding:30px 0 8px;}
  .profile svg{width:100%;height:auto;display:block;}
  .level-grid{display:grid;gap:16px;margin-top:6px;}
  .level-grid.cols-3{grid-template-columns:repeat(3,1fr);}
  .level-grid.cols-2{grid-template-columns:repeat(2,calc((100% - 32px)/3));justify-content:center;}
  .level-flow-note{text-align:center;font-size:13px;color:var(--bark-soft);max-width:560px;margin:18px auto 26px;line-height:1.85;}
  .level-card{
    background:#FFFDF6;border:1px solid var(--line);border-radius:16px;
    overflow:hidden;font-size:13.3px;
    box-shadow:var(--shadow-soft);
    transition:transform .25s, box-shadow .25s;
  }
  .level-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);}
  .level-photo{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
  .level-photo svg{width:28px;height:28px;opacity:.55;}
  .level-card:nth-child(1) .level-photo{background:linear-gradient(150deg,#DCE8CE,var(--lvl1));}
  .level-card:nth-child(2) .level-photo{background:linear-gradient(150deg,#CFE8DC,var(--lvl2));}
  .level-card:nth-child(3) .level-photo{background:linear-gradient(150deg,#F1E2B8,var(--lvl3));}
  .level-card:nth-child(4) .level-photo{background:linear-gradient(150deg,#EAC9BC,var(--lvl4));}
  .level-card:nth-child(5) .level-photo{background:linear-gradient(150deg,#CBDBEA,var(--lvl5));}
  .level-body{padding:16px 16px 18px;}
  .level-tag{
    display:inline-block;font-family:'Kiwi Maru',serif;
    font-size:16px;color:var(--pine);margin-bottom:4px;font-weight:500;
  }
  .level-card:nth-child(1) .level-tag{color:var(--lvl1);}
  .level-card:nth-child(2) .level-tag{color:var(--lvl2);}
  .level-card:nth-child(3) .level-tag{color:var(--lvl3);}
  .level-card:nth-child(4) .level-tag{color:var(--lvl4);}
  .level-card:nth-child(5) .level-tag{color:var(--lvl5);}
  .level-card:nth-child(1) .level-elev{color:var(--lvl1);}
  .level-card:nth-child(2) .level-elev{color:var(--lvl2);}
  .level-card:nth-child(3) .level-elev{color:var(--lvl3);}
  .level-card:nth-child(4) .level-elev{color:var(--lvl4);}
  .level-card:nth-child(5) .level-elev{color:var(--lvl5);}
  .level-elev{font-size:12px;font-weight:700;letter-spacing:.03em;margin-bottom:10px;}
  .level-card ul{margin:0 0 10px;padding-left:16px;color:var(--bark-soft);line-height:1.7;}
  .level-card ul li{margin-bottom:3px;}
  .level-note{font-size:11.5px;color:var(--moss);border-top:1px dashed var(--line);padding-top:8px;font-weight:600;}

  /* ---------- goal strip ---------- */
  .special-collage{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px;}
  .special-collage .sc-tile{
    aspect-ratio:4/3;border-radius:12px;box-shadow:var(--shadow-soft);
    overflow:hidden;position:relative;
    display:flex;align-items:center;justify-content:center;
  }
  .special-collage .sc-tile svg{width:26px;height:26px;opacity:.6;}
  .special-collage .sc1{background:linear-gradient(150deg,#E3D6EF,var(--lvl6));}
  .special-collage .sc2{background:linear-gradient(150deg,#F1E2B8,var(--lvl3));}
  .special-collage .sc3{background:linear-gradient(150deg,#C7D2BC,var(--lvl6));}
  .special-course{
    margin-top:26px;border-radius:20px;border:2px dashed var(--lvl6);
    background:#FFFDF6;padding:46px 32px 34px;position:relative;
    box-shadow:var(--shadow-soft);
  }
  .special-course .level-tag{background:var(--lvl6);color:#FFF9EC;padding:4px 14px;border-radius:999px;font-size:13px;display:table;margin-left:auto;margin-right:auto;}
  .special-course h3{font-size:19px;margin:28px 0 24px;line-height:1.55;text-align:center;}
  .special-course p{font-size:14px;color:var(--bark-soft);margin:0 0 22px;line-height:1.85;}
  @media(min-width:901px){
    .special-course h3{font-size:23px;}
  }
  .special-course .level-note{border-top:1px dashed var(--line);padding-top:12px;margin-top:22px;}

  .level-note.goal-soudan {font-size:.95em;}
  /* ---------- goal mountain toggle ---------- */
  .goal-toggle-wrap{position:relative;text-align:center;padding-bottom:20px;}
  .goal-toggle{
    display:inline-flex;align-items:center;gap:8px;
    background:#fff;border:1.5px solid var(--moss);color:var(--pine);
    padding:12px 28px;border-radius:999px;
    font-family:'Zen Maru Gothic',sans-serif;font-weight:700;font-size:14px;letter-spacing:.03em;
    cursor:pointer;box-shadow:var(--shadow-soft);
    transition:background .2s, box-shadow .25s, transform .15s;
  }
  .goal-toggle:hover{background:rgba(72,97,58,.08);box-shadow:var(--shadow-lift);transform:translateY(-2px);}
  .goal-toggle-icon{width:15px;height:15px;flex:none;transition:transform .4s cubic-bezier(.4,0,.2,1);}
  .goal-toggle[aria-expanded="true"] .goal-toggle-icon{transform:rotate(180deg);}
  .goal-toggle-label-close{display:none;}
  .goal-toggle[aria-expanded="true"] .goal-toggle-label-open{display:none;}
  .goal-toggle[aria-expanded="true"] .goal-toggle-label-close{display:inline;}
  .goal-toggle-fade{
    position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);
    width:260px;height:32px;pointer-events:none;
    background:radial-gradient(ellipse at center, rgba(211,166,63,.35), rgba(211,166,63,0) 72%);
    filter:blur(8px);
    opacity:1;transition:opacity .4s ease;
  }
  .goal-toggle[aria-expanded="true"] ~ .goal-toggle-fade{opacity:0;}
  .goal-reveal{
    max-height:0;opacity:0;overflow:hidden;
    transition:max-height .55s cubic-bezier(.4,0,.2,1), opacity .5s ease;
  }
  .goal-reveal.open{opacity:1;}
  /* ---------- goal mountain slider ---------- */
  .goal-slider{position:relative;margin-top:26px;}
  .goal-track{
    display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;
    padding:4px 4px 8px;margin:0 -4px;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .goal-track::-webkit-scrollbar{display:none;}
  .goal-card{
    scroll-snap-align:start;flex:0 0 232px;
    background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;
    box-shadow:var(--shadow-soft);transition:transform .25s, box-shadow .25s;
  }
  .goal-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);}
  .goal-photo{
    aspect-ratio:4/3;position:relative;display:flex;
    align-items:center;justify-content:center;flex-direction:column;gap:7px;
  }
  .goal-photo.gp1{background:linear-gradient(150deg,#B9CB9C,#748F55);}
  .goal-photo.gp2{background:linear-gradient(150deg,#C7D8E3,#7E9DB4);}
  .goal-photo.gp3{background:linear-gradient(150deg,#EDD3A0,#D3A63F);}
  .goal-photo.gp4{background:linear-gradient(150deg,#E0B49B,#C25B3B);}
  .goal-photo.gp5{background:linear-gradient(150deg,#A8BFA0,#48613A);}
  .goal-body{padding:16px 18px 20px;}
  .goal-elev{font-size:11px;font-weight:700;color:var(--sun-deep);letter-spacing:.03em;}
  .goal-body h4{
    font-family:'Kiwi Maru',serif;font-weight:500;font-size:17.5px;
    color:var(--pine);margin:5px 0 8px;line-height:1.5;
  }
  .goal-body p{font-size:13px;color:var(--bark-soft);margin:0;line-height:1.8;}
  .goal-slider .slider-arrow{top:36%;}
  .goal-slider .slider-arrow.prev{left:-6px;}
  .goal-slider .slider-arrow.next{right:-6px;}
  @media(max-width:640px){
    .special-collage{grid-template-columns:1fr;}
    .goal-card{flex-basis:100%;}
  }

  .pc {
    display:block;
  }
  @media(max-width:980px){.pc {
    display:none;
  }}

  /* ---------- pricing ---------- */
  .price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  .price-card{
    background:#FFFDF6;border:1px solid var(--line);border-radius:18px;padding:24px 24px;
    position:relative;box-shadow:var(--shadow-soft);
    transition:transform .25s, box-shadow .25s;
  }
  .price-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);}
  .price-card .amt{font-family:'Kiwi Maru',serif;font-size:35px;color:var(--sun-deep);margin:0 0 6px;}
  .price-card .amt span{font-size:13px;color:var(--bark);font-family:'Zen Maru Gothic',sans-serif;font-weight:500;}
  .price-card h3{font-size:16px;color:var(--pine);font-family:'Zen Maru Gothic',sans-serif;font-weight:700;margin-top: 14px;}
  .price-card p{font-size:13.3px;color:var(--bark-soft);margin-top:10px;line-height:1.8;}
  .price-card.highlight{border:2px solid var(--sun);box-shadow:var(--shadow-lift);}
  .price-card.highlight::before{
    content:"はじめての方はこちら";
    position:absolute;top:-13px;left:20px;
    background:var(--sun);color:#FFF9EC;font-size:11.5px;font-weight:700;
    padding:3px 14px;border-radius:999px;letter-spacing:.05em;
  }
  .price-note{
    margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:22px;
  }
  .price-note .box{
    background:#FFFDF6;border:1px dashed var(--line);border-radius:14px;padding:20px 24px;font-size:13.3px;color:var(--bark-soft);line-height:1.8;
    box-shadow:var(--shadow-soft);
  }
  .price-note h4{margin:0 0 8px;font-size:14px;color:var(--pine);font-weight:700;}
  .price-note ul{list-style:none;margin:0;padding-left:0;}
  .price-note li{margin-bottom:7px;padding-left:24px;position:relative;}
  .price-note li::before{
    content:"✓";position:absolute;left:0;top:0;
    color:var(--moss);font-weight:700;font-size:13px;
  }
  .price-note-link{
    display:inline-block;margin-top:2px;color:var(--sun-deep);font-weight:700;
    text-decoration:underline;text-underline-offset:2px;font-size:12.5px;
  }
  .price-note-link:hover{color:var(--berry);}
  .inline-link{
    color:var(--sun-deep);font-weight:700;
    text-decoration:underline;text-underline-offset:2px;
  }
  .inline-link:hover{color:var(--berry);}

  /* ---------- calendar ---------- */
  :root{
    --course-beginner:#4C8C4A;
    --course-normal:#2E74B5;
    --course-expedition:#7B5CB0;
  }
  .cal-recent{
    list-style:none;margin:0 auto;padding:0;max-width:560px;
    display:flex;flex-direction:column;gap:10px;
  }
  .cal-recent li{
    display:flex;align-items:center;gap:14px;flex-wrap:wrap;
    background:#FFFDF6;border:1px solid var(--line);border-radius:12px;
    padding:13px 18px;box-shadow:var(--shadow-soft);font-size:13.5px;
  }
  .cal-recent-date{font-weight:700;color:var(--pine);font-family:'Kiwi Maru',serif;flex:0 0 auto;min-width:76px;}
  .cal-recent-course{font-weight:700;flex:1 1 auto;color:var(--moss);}
  .cal-recent-course.beginner{color:var(--course-beginner);}
  .cal-recent-course.normal{color:var(--course-normal);}
  .cal-recent-course.expedition{color:var(--course-expedition);}
  .cal-recent-badge{font-size:11.5px;color:var(--bark-soft);background:var(--cream-deep);padding:3px 10px;border-radius:999px;flex:0 0 auto;}
  @media(max-width:480px){
    .cal-recent li{padding:11px 14px;font-size:12.5px;}
    .cal-recent-badge{width:100%;order:3;text-align:center;}
  }
  .cal-box{
    background:#FFFDF6;border:1px solid var(--line);border-radius:18px;
    padding:30px 32px 24px;max-width:880px;box-shadow:var(--shadow-soft);
    margin:0 auto;
  }
  .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
  .cal-title{font-family:'Kiwi Maru',serif;font-size:19px;color:var(--pine);}
  .cal-nav{
    background:none;border:1.5px solid var(--line);width:34px;height:34px;
    border-radius:50%;cursor:pointer;color:var(--pine);font-size:14px;
    display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s;
  }
  .cal-nav:hover{border-color:var(--sun);color:var(--sun-deep);}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;}
  .cal-dow{font-size:13px;color:var(--moss);text-align:center;font-weight:700;padding-bottom:8px;}
  .cal-dow.sun{color:var(--berry);}
  .cal-dow.sat{color:var(--sky);}
  .cal-day{
    min-height:106px;min-width:0;display:flex;flex-direction:column;align-items:stretch;
    padding:7px 6px 8px;border-radius:12px;position:relative;color:#B0A794;
  }
  .cal-day.blank{visibility:hidden;min-height:0;}
  .cal-day-head{display:flex;align-items:baseline;gap:4px;margin-bottom:6px;}
  .cal-day .num{font-weight:700;font-size:17px;line-height:1;}
  .cal-day.sun .num{color:var(--berry);}
  .cal-day.sat .num{color:var(--sky);}
  .cal-day.holiday .num{color:var(--berry);}
  .cal-day .holiday-tag{font-size:9px;color:var(--berry);font-weight:700;}
  .cal-day.full.sun .num, .cal-day.full.sat .num, .cal-day.full.holiday .num{color:inherit;}
  .cal-day.bookable{cursor:pointer;color:var(--bark);border:1px solid var(--line);background:#fff;}
  .cal-day.full{cursor:default;background:#F7E6E2;color:#C08876;border-color:transparent;}

  .cal-courses{display:flex;flex-direction:column;gap:4px;flex:1;justify-content:center;}
  .cal-course{font-size:12px;line-height:1.4;font-weight:700;overflow:hidden;}
  .cal-course .mk{font-size:9px;margin-right:2px;}
  .cal-course .lb{white-space:nowrap;}
  .cal-course .st{font-weight:600;color:var(--bark-soft);white-space:nowrap;margin-left:2px;}
  .cal-day.full .cal-course .st{color:#B37E5E;}
  .cal-course.beginner{color:var(--course-beginner);}
  .cal-course.normal{color:var(--course-normal);}
  .cal-course.expedition{color:var(--course-expedition);}
  .cal-day:not(.decided) .cal-course{white-space:nowrap;text-overflow:ellipsis;}
  .cal-day.decided .cal-courses{gap:2px;}
  .cal-day.decided .cal-course{font-size:13px;}
  .cal-day.decided .cal-course .st{display:block;font-size:11.5px;margin-left:13px;margin-top:2px;}
  .cal-day.decided .cal-course .st .st-line{display:block;}

  .cal-legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:18px;font-size:12.5px;color:var(--bark-soft);}
  .cal-legend span{display:flex;align-items:center;gap:6px;}
  .cal-legend.status{margin-top:18px;font-size:11.5px;color:var(--bark-soft);}
  .cal-caption{font-size:12.5px;color:var(--moss);margin-top:14px;margin-bottom:0;}
  .cal-caption a{color:var(--sun-deep);font-weight:700;text-decoration:underline;text-underline-offset:2px;}
  .cal-caption a:hover{color:var(--berry);}
  .cal-caption.cal-cta{
    margin-top:18px;display:flex;flex-wrap:wrap;align-items:center;gap:14px;
    background:linear-gradient(135deg,#FFF3DD,#FCE3B9);
    border:1.5px solid var(--sun);border-radius:16px;padding:18px 22px;
    box-shadow:0 8px 20px rgba(222,143,44,.22);
    animation:calCtaPop .45s cubic-bezier(.2,.8,.3,1.2);
  }
  .cal-cta-icon{width:28px;height:28px;flex:0 0 auto;color:var(--sun-deep);}
  .cal-cta-text{margin:0;font-size:14.5px;font-weight:700;color:var(--bark);line-height:1.65;flex:1 1 220px;}
  .cal-cta-text strong{color:var(--sun-deep);}
  .cal-caption .cal-cta-btn{
    flex:0 0 auto;background:var(--sun);color:#fff;padding:12px 24px;border-radius:999px;
    font-size:14px;font-weight:700;letter-spacing:.03em;text-decoration:none;white-space:nowrap;
    box-shadow:0 3px 0 var(--sun-deep);transition:transform .15s, box-shadow .15s;
  }
  .cal-caption .cal-cta-btn:hover{color:#fff;transform:translateY(2px);box-shadow:0 1px 0 var(--sun-deep);}
  @keyframes calCtaPop{
    0%{opacity:0;transform:translateY(-8px) scale(.96);}
    100%{opacity:1;transform:translateY(0) scale(1);}
  }
  @media(max-width:560px){
    .cal-caption.cal-cta{padding:15px 16px;gap:10px;}
    .cal-cta-text{font-size:13.5px;flex-basis:100%;}
    .cal-cta-btn{flex-basis:100%;text-align:center;}
  }

  @media(max-width:680px){
    .cal-box{padding:22px 0 20px;}
    .cal-head{padding:0 16px;}
    .cal-grid{
      gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;
      scrollbar-width:none;-ms-overflow-style:none;
      padding:0 16px 6px;
    }
    .cal-grid::-webkit-scrollbar{display:none;height:0;}
    .cal-day{min-height:92px;padding:6px 5px 7px;border-radius:9px;}
    .cal-day-head{margin-bottom:4px;gap:3px;}
    .cal-day .num{font-size:15px;}
    .cal-day .holiday-tag{font-size:8px;}
    .cal-course{font-size:10.5px;}
    .cal-course .mk{font-size:8px;}
    .cal-course .lb.long{display:none;}
    .cal-course .lb.short{display:inline;}
    .cal-day.decided .cal-course{font-size:11.5px;}
    .cal-day.decided .cal-course .st{font-size:10.5px;margin-left:11px;}
    .cal-legend,.cal-caption{margin-left:16px;margin-right:16px;}
  }
  @media(min-width:681px){
    .cal-course .lb.short{display:none;}
  }

  /* ---------- faq ---------- */
  .faq-list{max-width:760px;margin:0 auto;}
  .faq-item{
    background:#FFFDF6;border:1px solid var(--line);border-radius:14px;
    margin-bottom:8px;overflow:hidden;box-shadow:var(--shadow-soft);
    transition:box-shadow .25s;
  }
  .faq-item:hover{box-shadow:var(--shadow-lift);}
  .faq-q{
    width:100%;text-align:left;background:none;border:none;cursor:pointer;
    font-family:'Zen Maru Gothic',sans-serif;font-size:15px;font-weight:700;color:var(--pine);
    padding:14px 52px 14px 22px;position:relative;line-height:1.65;
  }
  .faq-q::before{content:"Q";color:var(--sun-deep);font-family:'Kiwi Maru',serif;margin-right:10px;font-size:16px;}
  .faq-q::after{
    content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);
    font-size:20px;color:var(--moss);transition:transform .3s;
  }
  .faq-item.open .faq-q::after{transform:translateY(-50%) rotate(45deg);}
  .faq-a{
    max-height:0;overflow:hidden;transition:max-height .45s ease;
  }
  .faq-a p{
    margin:0;padding:0 22px 20px 48px;font-size:14px;color:var(--bark-soft);line-height:1.85;
  }

  /* ---------- report ---------- */
  .report-strip{
    background:#FFFDF6;border:1px dashed var(--moss);border-radius:18px;
    padding:34px 36px;display:flex;align-items:center;gap:26px;flex-wrap:wrap;
    box-shadow:var(--shadow-soft);
  }
  .report-strip .icon{font-size:36px;}
  .report-strip h3{font-size:17px;margin-bottom:6px;}
  .report-strip p{font-size:13.5px;color:var(--bark-soft);margin:0;max-width:640px;}

  /* ---------- line cta ---------- */
  .line-cta{
    background:var(--cream-deep);
    border:2px dashed #C9A15A;
    color:var(--bark);
    border-radius:22px;padding:42px 44px;
    display:grid;grid-template-columns:1.2fr 0.8fr;gap:40px;align-items:center;
    position:relative;overflow:hidden;box-shadow:var(--shadow-soft);
  }
  .line-cta-content{position:relative;z-index:2;padding-left:48px;}
  @media(max-width:900px){
    .line-cta-content{padding-left:0px;}
  }
  .line-cta h2{color:var(--pine);font-size:26px;line-height:1.7;}
  .line-cta p{color:var(--bark-soft);font-size:14.3px;margin-top:12px;max-width:502px;line-height:1.85;}
  .line-deco{position:absolute;pointer-events:none;z-index:1;}
  .line-deco-leaf{left:-24px;bottom:-30px;width:120px;height:auto;opacity:.9;}
  .line-deco-bird{top:40px;right:26%;width:64px;height:auto;opacity:.85;}
  @media(max-width:900px){
    .line-deco-leaf{width:90px;left:-18px;bottom:-20px;}
    .line-deco-bird{width:48px;right:38px;top:29px;}
  }
  .qr-box{
    position:relative;z-index:2;
    background:#FFFDF6;color:var(--pine);
    padding:22px;text-align:center;justify-self:end;
    width:190px;border-radius:16px;box-shadow:var(--shadow-soft);
  }
  .qr-img{
    width:120px;height:120px;margin:0 auto 10px;border-radius:8px;
    display:block;object-fit:contain;background:#fff;
  }
  .qr-box small{font-size:11px;letter-spacing:.05em;color:var(--bark-soft);}
  .line-add-btn{display:inline-block;margin-top:14px;line-height:0;}
  .line-add-btn img{height:36px;width:auto;}
  .line-time{font-size:12px;color:var(--bark-soft);opacity:.85;margin-top:14px;letter-spacing:.03em;position:relative;z-index:2;}

  /* ---------- compact mid CTA ---------- */
  #line{padding:40px 0;}
  .line-cta-compact{
    background:var(--cream-deep);border:1px solid var(--line);border-radius:16px;
    padding:22px 30px;box-shadow:var(--shadow-soft);
    display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  }
  .line-cta-compact p{
    margin:0;font-size:14.5px;font-weight:700;color:var(--pine);
    line-height:1.7;font-family:'Zen Maru Gothic',sans-serif;
  }
  .line-cta-compact .cta-btn{flex:0 0 auto;}
  @media(max-width:640px){
    .line-cta-compact{flex-direction:column;align-items:stretch;text-align:center;padding:22px 24px;}
    .line-cta-compact .cta-btn{text-align:center;}
  }

  /* ---------- mobile menu ---------- */
  .mobile-menu-btn{
    display:none;align-items:center;gap:9px;
    position:fixed;right:20px;bottom:20px;z-index:70;
    background:var(--pine);color:#FFFDF6;border:none;border-radius:999px;
    padding:14px 22px 14px 18px;
    box-shadow:0 10px 24px rgba(74,59,44,.35);
    font-size:12.5px;font-weight:700;letter-spacing:.08em;cursor:pointer;
  }
  .mmb-icon{display:flex;flex-direction:column;justify-content:center;gap:4px;width:18px;height:14px;flex:none;}
  .mmb-icon span{display:block;height:2px;background:#FFFDF6;border-radius:2px;transition:transform .25s ease, opacity .2s ease;}
  .mobile-menu-btn.open .mmb-icon span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  .mobile-menu-btn.open .mmb-icon span:nth-child(2){opacity:0;}
  .mobile-menu-btn.open .mmb-icon span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
  .mobile-menu-overlay{
    display:none;position:fixed;inset:0;z-index:65;
    background:rgba(74,59,44,.45);opacity:0;pointer-events:none;
    transition:opacity .3s ease;
  }
  .mobile-menu-overlay.open{opacity:1;pointer-events:auto;}
  .mobile-menu-panel{
    display:none;flex-direction:column;
    position:fixed;left:0;right:0;bottom:0;z-index:66;
    max-height:100vh;overflow-y:auto;
    background:var(--cream);border-radius:24px 24px 0 0;
    padding:16px 28px 80px;
    box-shadow:0 -12px 30px rgba(74,59,44,.28);
    transform:translateY(100%);
    transition:transform .4s cubic-bezier(.22,.8,.32,1);
  }
  .mobile-menu-panel.open{transform:translateY(0);}
  .mmp-handle{width:40px;height:4px;background:var(--line);border-radius:2px;margin:0 auto 18px;flex:none;}
  .mobile-menu-panel a{
    padding:15px 2px;border-bottom:1px solid var(--line);
    text-decoration:none;color:var(--bark);font-weight:700;font-size:15.5px;
  }
  .mobile-menu-panel a.mmp-cta{
    margin-top:16px;border-bottom:none;text-align:center;
    background:var(--sun);color:#FFF9EC;border-radius:999px;padding:15px;
    box-shadow:0 3px 0 var(--sun-deep);
  }
  @media(max-width:980px){
    .mobile-menu-btn{display:flex;}
    .mobile-menu-overlay{display:block;}
    .mobile-menu-panel{display:flex;}
  }

  footer{
    /* bottom padding scales with viewport width (image is 6401x1367, ratio ~21.4%)
       so it always matches the full, uncropped image height at any screen size */
    padding:52px 0 calc(21.4vw + 20px);
    border-top:1px solid var(--line);
    font-size:13px;color:var(--bark-soft);
    position:relative;overflow:hidden;
  }
  .footer-bg{
    /* width:100% + height:auto keeps the whole illustration intact (nothing
       cropped off the top) at every viewport width */
    position:absolute;left:0;right:0;bottom:0;z-index:0;
    width:100%;height:auto;
    display:block;pointer-events:none;opacity:.8;
  }
  footer .wrap{position:relative;z-index:1;}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;}
  footer h4{font-size:13px;color:var(--pine);font-weight:700;margin:0 0 10px;letter-spacing:.04em;}
  footer .brand-mark{display:flex;align-items:center;gap:12px;}
  footer .brand-mark img{width:56px;height:56px;border-radius:50%;}
  footer .brand-mark .n{font-family:'Kiwi Maru',serif;font-size:19px;color:var(--pine);}
  footer a{text-decoration:none;opacity:.85;}
  footer a:hover{opacity:1;text-decoration:underline;color:var(--pine);}
  footer p{margin:0 0 6px;}
  .copyright{margin-top:40px;font-size:11.5px;color:var(--bark-soft);opacity:.7; font-weight:400;}

  @media(max-width:900px){
    .worry-grid{grid-template-columns:1fr 1fr;}
    .guide-grid{grid-template-columns:1fr;}
    .value-card{flex-basis:calc((100% - 20px)/2);}
    .guide-photo{width:200px;}
    .flow{grid-template-columns:1fr 1fr;gap:30px;}
    .trail-svg{display:none;}
    .level-grid.cols-3{grid-template-columns:1fr 1fr;}
    .level-grid.cols-2{grid-template-columns:1fr 1fr;max-width:none;}
    .price-grid{grid-template-columns:1fr;}
    .price-note{grid-template-columns:1fr;}
    .line-cta{grid-template-columns:1fr;padding:44px 30px;}
    .qr-box{justify-self:center;}
    .foot-grid{grid-template-columns:1fr;gap:24px;}
  }
  @media(max-width:560px){
    .level-grid.cols-3,.level-grid.cols-2{grid-template-columns:1fr;max-width:none;}
    .flow{grid-template-columns:1fr;}
    .worry-grid{grid-template-columns:1fr;}
    .value-card{flex-basis:100%;}
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .rv{opacity:1;transform:none;transition:none;}
    .trail-svg .runner{transition:none;}
    .cal-caption.cal-cta{animation:none;}
    .newphotos-track{animation:none;}
  }

  /* ---------- simple header (legal / content pages) ---------- */
  .simple-header{
    /* the shared header{} rule (fixed/hidden, for the hero-scroll reveal) still
       applies via the element selector, so explicitly cancel every part of it */
    position:relative;background:var(--cream);
    border-bottom:1px solid var(--line);
    opacity:1;transform:none;pointer-events:auto;
  }
  .simple-header .nav{padding:14px 28px;}
  @media(max-width:980px){ .simple-header .nav{padding:12px 12px;} }

  /* ---------- legal page (tokutei shotorihiki / privacy policy etc.) ---------- */
  .legal-hero{padding:56px 0 8px;}
  .legal-hero h1{font-size:clamp(24px,4vw,34px);margin-top:10px;line-height:1.5;}
  .legal-hero p.legal-lead{font-size:14px;color:var(--bark-soft);margin-top:14px;max-width:640px;line-height:1.95;}
  .legal-table{margin:34px 0 0;border-top:1px solid var(--line);padding-bottom:60px;}
  .legal-row{display:grid;grid-template-columns:220px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--line);}
  .legal-row dt{font-weight:700;color:var(--pine);font-size:14.5px;letter-spacing:.02em;}
  .legal-row dd{margin:0;font-size:14px;color:var(--bark-soft);line-height:1.95;}
  .legal-row dd p{margin:0 0 12px;}
  .legal-row dd p:last-child{margin-bottom:0;}
  .legal-row dd ul{margin:10px 0 0;padding-left:1.2em;}
  .legal-row dd li{margin-bottom:5px;}
  .legal-note{font-size:12px;opacity:.75;margin-top:8px;line-height:1.8;}
  @media(max-width:640px){
    .legal-row{grid-template-columns:1fr;gap:8px;padding:20px 0;}
  }
  .legal-back{
    display:inline-flex;align-items:center;gap:6px;margin:8px 0 36px;
    font-size:13.5px;font-weight:700;color:var(--pine);text-decoration:none;
  }
  .legal-back:hover{text-decoration:underline;}

  /* ---------- legal article (numbered prose sections, e.g. privacy policy) ---------- */
  .legal-articles{margin:34px 0 0;border-top:1px solid var(--line);}
  .legal-article{padding:28px 0;border-bottom:1px solid var(--line);}
  .legal-article h2{
    font-size:16.5px;color:var(--pine);margin-bottom:14px;
    font-family:'Zen Maru Gothic',sans-serif;font-weight:700;
  }
  .legal-article p{font-size:14px;color:var(--bark-soft);line-height:1.95;margin:0 0 12px;}
  .legal-article p:last-child{margin-bottom:0;}
  .legal-article ul{margin:8px 0 14px;padding-left:1.2em;}
  .legal-article ul:last-child{margin-bottom:0;}
  .legal-article li{font-size:14px;color:var(--bark-soft);line-height:1.9;margin-bottom:6px;}

  /* ---------- PC body-copy size bump (was inheriting mobile-tuned sizes) ---------- */
  @media(min-width:981px){
    .section-head p{font-size:16px;}
    .guide-text p{font-size:15.5px;}
    .worry-card p{font-size:14.5px;}
    .value-card p{font-size:14px;}
    .price-card p{font-size:14.5px;}
    .goal-body p{font-size:14.5px;}
    .line-cta p{font-size:15.5px;}
  }
