
  :root{
    --forest:#6b8f76;
    --forest-dark:#4a6b56;
    --gold:#e2836c;
    --gold-dark:#c25f45;
    --cream:#fdf6f0;
    --paper:#fffdfb;
    --ink:#4a423c;
    --muted:#7d7466;
    --line:#ecdfd7;
    --white:#ffffff;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:"Noto Sans JP", sans-serif;
    color:var(--ink);
    background:var(--white);
    line-height:1.8;
  }
  h1,h2,h3,h4{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    margin:0;
    line-height:1.4;
  }
  a{color:inherit;}
  img{max-width:100%;}
  .wrap{max-width:1080px;margin:0 auto;padding:0 24px;}
  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:16px 36px;
    border-radius:999px;
    font-weight:700;
    font-size:16px;
    text-decoration:none;
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn-primary{
    background:var(--gold);
    color:#fff;
    box-shadow:0 4px 0 var(--gold-dark);
  }
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--gold-dark);}
  .btn-primary:active{transform:translateY(2px);box-shadow:0 2px 0 var(--gold-dark);}
  .btn-outline{
    background:transparent;
    color:var(--forest);
    border:2px solid var(--forest);
  }
  .btn-outline:hover{background:var(--forest);color:#fff;}
  .btn-small{padding:10px 22px;font-size:14px;}
  .eyebrow{
    display:inline-block;
    font-size:13px;
    letter-spacing:.12em;
    font-weight:700;
    color:var(--forest);
    background:rgba(107,143,118,.12);
    padding:6px 16px;
    border-radius:999px;
    margin-bottom:16px;
  }

  /* ---------- HEADER ---------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 24px;max-width:1080px;margin:0 auto;
  }
  .nav-actions{display:flex;align-items:center;gap:16px;}
  .icon-link{
    display:inline-flex;align-items:center;justify-content:center;
    color:var(--ink);opacity:.7;transition:opacity .15s ease,color .15s ease;
    flex:0 0 auto;
  }
  .icon-link:hover{opacity:1;color:var(--forest);}
  .brand{
    display:flex;align-items:center;gap:10px;
    font-weight:900;font-size:20px;color:var(--forest);
    letter-spacing:.03em;
  }
  .brand span{color:var(--gold);}
  .brand img{height:40px;width:40px;display:block;}
  .nav-links{display:flex;gap:28px;font-size:14px;font-weight:500;}
  .nav-links a{text-decoration:none;color:var(--ink);opacity:.8;}
  .nav-links a:hover{opacity:1;color:var(--forest);}
  .nav .btn{padding:10px 22px;font-size:14px;}
  @media (max-width:780px){ .nav-links{display:none;} }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    background:
      radial-gradient(circle at 15% 20%, rgba(255,255,255,.55), transparent 45%),
      radial-gradient(circle at 85% 75%, rgba(255,255,255,.4), transparent 40%),
      linear-gradient(160deg, #d9ead9 0%, #c3ddc6 55%, #a9cbb0 100%);
    color:var(--ink);
    overflow:hidden;
    padding:0 0 92px;
    text-align:center;
  }
  .hero::after{
    content:"";
    position:absolute;left:0;right:0;bottom:-1px;height:70px;
    background:var(--cream);
    clip-path:polygon(0 100%,100% 100%,100% 40%,80% 70%,60% 35%,40% 75%,20% 30%,0 60%);
  }
  .hero .wrap{position:relative;z-index:2;padding-top:44px;}
  .hero-visual{
    position:relative;z-index:2;width:100%;display:block;
    margin:0;line-height:0;
  }
  .hero-visual img{width:100%;height:auto;display:block;}
  .hero-tag{
    font-size:13px;letter-spacing:.16em;font-weight:700;color:var(--forest-dark);
    margin-bottom:16px;
  }
  .hero h1{
    font-size:clamp(30px,4.6vw,50px);
    font-weight:900;
    color:var(--forest-dark);
    margin-bottom:18px;
  }
  .hero h1 em{
    font-style:normal;color:var(--gold-dark);
  }
  .hero p.lead{
    font-size:16.5px;max-width:600px;color:var(--muted);opacity:.92;margin:0 auto 32px;
  }
  .hero-ctas{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-bottom:44px;}
  .hero-stats{
    display:grid;grid-template-columns:repeat(4,1fr);gap:16px;
    max-width:860px;margin:0 auto;
  }
  .hero-stats div{
    background:rgba(255,255,255,.85);
    border:1px solid rgba(255,255,255,.95);
    box-shadow:0 4px 14px rgba(74,107,86,.08);
    border-radius:16px;padding:22px 14px 18px;text-align:center;
  }
  .hero-stats b{
    width:46px;height:46px;margin:0 auto 12px;
    border-radius:50%;
    background:var(--forest);
    display:flex;align-items:center;justify-content:center;
    font-size:21px;font-style:normal;
  }
  .hero-stats span{font-size:14.5px;font-weight:700;color:var(--forest-dark);line-height:1.4;}
  @media (max-width:640px){ .hero-stats{grid-template-columns:repeat(2,1fr);} }

  /* ---------- SECTION GENERIC ---------- */
  section{padding:88px 0;}
  .section-head{text-align:center;max-width:680px;margin:0 auto 56px;}
  .section-head h2{font-size:clamp(24px,3.4vw,34px);font-weight:900;color:var(--forest);}
  .section-head p{margin-top:14px;color:var(--muted);font-size:15px;}

  /* ---------- CONCEPT ---------- */
  .concept-banner{
    position:relative;height:260px;border-radius:20px;overflow:hidden;
    margin-bottom:48px;
    background:url("../images/hero-bg.jpg") center 55%/cover;
  }
  .concept-banner::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(0deg, rgba(23,37,29,.55) 0%, rgba(23,37,29,0) 55%);
  }
  .concept-banner span{
    position:absolute;left:24px;bottom:18px;z-index:1;
    color:#fdf9ef;font-size:13px;font-weight:700;letter-spacing:.04em;
    text-shadow:0 2px 8px rgba(0,0,0,.4);
  }
  @media (max-width:640px){ .concept-banner{height:180px;} }
  .concept-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
  }
  .concept-card{
    background:var(--paper);border:1px solid var(--line);border-radius:18px;
    padding:32px 26px;text-align:center;
  }
  .concept-card .ico{
    width:60px;height:60px;border-radius:50%;
    background:var(--forest);
    display:flex;align-items:center;justify-content:center;
    font-size:26px;color:#fff;margin:0 auto 18px;
  }
  .concept-card h3{font-size:17px;color:var(--forest);margin-bottom:10px;}
  .concept-card p{font-size:14px;color:var(--muted);}
  @media (max-width:820px){ .concept-grid{grid-template-columns:1fr;} }

  .steps{
    display:flex;gap:0;overflow-x:auto;padding-bottom:8px;
    counter-reset:step;
  }
  .step{
    flex:1 1 0;min-width:150px;text-align:center;position:relative;padding:0 10px;
  }
  .step .num{
    width:40px;height:40px;border-radius:50%;background:var(--forest);
    color:#fff;display:flex;align-items:center;justify-content:center;
    font-weight:900;margin:0 auto 12px;font-size:14px;
  }
  .step h4{font-size:14px;color:var(--forest);margin-bottom:6px;}
  .step p{font-size:12.5px;color:var(--muted);}
  .step-arrow{position:absolute;top:20px;right:-6px;color:var(--line);font-size:18px;}
  .step:last-child .step-arrow{display:none;}

  /* ---------- FEATURED PROGRAM ---------- */
  .featured{
    background:var(--paper);
    color:var(--ink);
    border-radius:20px;
    overflow:hidden;
    display:grid;grid-template-columns:1.25fr 1fr;
    border:3px solid var(--line);
  }
  .featured-visual{
    display:flex;align-items:center;justify-content:center;
    padding:40px;position:relative;min-height:280px;
    overflow:hidden;background:var(--forest-dark);
  }
  .featured-visual::before{
    content:"";position:absolute;inset:0;z-index:1;
    background:linear-gradient(150deg, rgba(74,107,86,.1), rgba(74,107,86,.35));
  }
  .featured-slide{
    position:absolute;inset:0;z-index:0;
    background-size:cover;background-position:center;
    opacity:0;animation:featuredFade 12s ease-in-out infinite;
  }
  .featured-slide:nth-child(1){animation-delay:0s;}
  .featured-slide:nth-child(2){animation-delay:4s;}
  .featured-slide:nth-child(3){animation-delay:8s;}
  @keyframes featuredFade{
    0%{opacity:0;}
    8%{opacity:1;}
    33%{opacity:1;}
    42%{opacity:0;}
    100%{opacity:0;}
  }
  .featured-badge{
    position:absolute;top:22px;left:22px;z-index:2;
    background:var(--gold);color:#fff;font-size:12px;font-weight:700;
    padding:6px 14px;border-radius:999px;letter-spacing:.05em;
  }
  @media (prefers-reduced-motion:reduce){
    .featured-slide{animation:none;opacity:0;}
    .featured-slide:first-child{opacity:1;}
  }
  .featured-body{padding:44px 40px;}
  .featured-body h3{font-size:24px;font-weight:900;margin-bottom:8px;color:var(--forest-dark);}
  .featured-body .sub{color:var(--forest-dark);font-size:14px;font-weight:700;margin-bottom:18px;}
  .featured-body p.desc{font-size:14.5px;color:var(--muted);margin-bottom:24px;}
  .featured-meta{
    display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin-bottom:28px;
  }
  .featured-meta div{font-size:13px;}
  .featured-meta b{display:block;color:var(--forest);font-size:11px;letter-spacing:.06em;margin-bottom:3px;}
  @media (max-width:820px){
    .featured{grid-template-columns:1fr;}
    .featured-visual{padding:32px;}
  }
  .itinerary{margin-bottom:24px;border-top:1px solid var(--line);padding-top:20px;}
  .itinerary summary{
    cursor:pointer;font-weight:700;color:var(--forest-dark);font-size:13.5px;
    list-style:none;display:inline-flex;align-items:center;gap:6px;
  }
  .itinerary summary::-webkit-details-marker{display:none;}
  .itinerary summary::after{content:"▾";font-size:11px;transition:transform .2s ease;}
  .itinerary[open] summary::after{transform:rotate(180deg);}
  .itin-days{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:20px;}
  .itin-day h4{font-size:13.5px;color:var(--forest-dark);margin-bottom:10px;border-bottom:1px solid var(--line);padding-bottom:8px;}
  .itin-list{list-style:none;margin:0;padding:0;}
  .itin-list li{display:grid;grid-template-columns:52px 1fr;gap:10px;padding:6px 0;font-size:12.5px;color:var(--muted);line-height:1.5;}
  .itin-list li span{color:var(--forest-dark);font-weight:700;font-variant-numeric:tabular-nums;}
  .itin-note{margin-top:14px;font-size:12px;color:var(--muted);}
  @media (max-width:600px){ .itin-days{grid-template-columns:1fr;} }

  .featured-points{
    margin-bottom:24px;padding:16px 18px;border-radius:14px;
    background:var(--cream);border:1px solid var(--line);
  }
  .featured-points h5{font-size:11px;color:var(--forest-dark);letter-spacing:.05em;font-weight:700;margin-bottom:8px;}
  .featured-points ul{list-style:none;margin:0;padding:0;columns:2;column-gap:20px;}
  .featured-points li{position:relative;padding-left:17px;font-size:12.5px;color:var(--muted);line-height:1.7;break-inside:avoid;}
  .featured-points li::before{content:"✓";position:absolute;left:0;top:0;color:var(--forest-dark);font-weight:700;}
  @media (max-width:600px){ .featured-points ul{columns:1;} }

  .itin-extra{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);}
  .itin-extra-item{margin-bottom:11px;font-size:12px;color:var(--muted);line-height:1.7;}
  .itin-extra-item b{display:block;color:var(--forest-dark);font-size:11px;letter-spacing:.03em;margin-bottom:2px;}
  .itin-extra-item a{color:var(--forest-dark);text-decoration:underline;text-underline-offset:2px;}
  .itin-extra-item ul{list-style:none;margin:2px 0 0;padding:0;}
  .itin-extra-item ul li{position:relative;padding-left:12px;}
  .itin-extra-item ul li::before{content:"・";position:absolute;left:0;}
  .itin-extra-note{display:block;margin-top:4px;color:var(--muted);font-size:11px;}
  .itin-operator{
    margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);
    font-size:11px;color:var(--muted);line-height:1.7;
  }
  .itin-operator b{color:var(--muted);font-weight:700;}

  .reassure-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
  .reassure-chips span{
    display:inline-flex;align-items:center;gap:5px;
    background:var(--cream);border:1px solid var(--line);
    border-radius:999px;padding:6px 13px;font-size:11.5px;font-weight:700;color:var(--ink);
  }

  /* ---------- PROGRAM GRID ---------- */
  .prog-grid{
    display:grid;grid-template-columns:repeat(2,1fr);gap:22px;
  }
  .prog-card{
    background:var(--paper);border:2px solid var(--line);border-radius:18px;
    overflow:hidden;display:flex;flex-direction:column;align-items:stretch;
    transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  }
  .prog-card:hover{transform:translateY(-4px);box-shadow:0 10px 0 rgba(43,43,38,.08);border-color:var(--forest-dark);}
  .prog-visual{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--forest);width:100%;}
  .prog-visual img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block;}
  .prog-content{flex:1;min-width:0;padding:20px 20px 18px;display:flex;flex-direction:column;}
  .prog-content .tag{font-size:11px;font-weight:700;color:var(--forest);letter-spacing:.05em;}
  .prog-content h3{font-size:16px;color:var(--forest);margin-top:5px;margin-bottom:8px;}
  .prog-content p{font-size:13px;color:var(--muted);margin-bottom:12px;}
  .prog-facts{font-size:12px;color:var(--muted);}
  .prog-facts div{display:flex;justify-content:space-between;padding:3px 0;border-top:1px dashed var(--line);}
  .prog-facts div:first-child{border-top:none;}
  .prog-facts b{color:var(--ink);font-weight:500;}
  .prog-itin{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px;}
  .prog-itin summary{
    cursor:pointer;font-weight:700;color:var(--forest);font-size:11.5px;
    list-style:none;display:inline-flex;align-items:center;gap:5px;letter-spacing:.02em;
  }
  .prog-itin summary::-webkit-details-marker{display:none;}
  .prog-itin summary::after{content:"▾";font-size:10px;transition:transform .2s ease;}
  .prog-itin[open] summary::after{transform:rotate(180deg);}
  .prog-itin-day{margin-top:10px;}
  .prog-itin-day h5{font-size:11.5px;color:var(--forest);font-weight:700;margin:0 0 6px;}
  .prog-itin-list{list-style:none;margin:0;padding:0;}
  .prog-itin-list li{
    position:relative;padding:3px 0 3px 14px;font-size:11.5px;color:var(--muted);line-height:1.5;
  }
  .prog-itin-list li::before{
    content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--forest);
  }
  .prog-itin-list li b{color:var(--ink);font-weight:700;margin-right:4px;}
  .prog-itin-note{margin-top:8px;font-size:10.5px;color:var(--muted);}
  .prog-itin-extra{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);}
  .prog-itin-extra-item{margin-bottom:8px;font-size:11px;color:var(--muted);line-height:1.6;}
  .prog-itin-extra-item b{display:block;color:var(--forest);font-size:10.5px;letter-spacing:.02em;margin-bottom:1px;}
  .prog-itin-extra-item a{color:var(--forest);text-decoration:underline;text-underline-offset:2px;}
  .prog-itin-extra-item .blank{color:var(--muted);}
  .prog-itin-operator{
    margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);
    font-size:10px;color:var(--muted);line-height:1.6;
  }
  .prog-itin-operator b{color:var(--muted);font-weight:700;}
  .prog-cta{margin-top:auto;padding-top:14px;}
  .prog-cta .apply,
  .prog-cta .soon{
    display:flex;align-items:center;justify-content:center;
    width:100%;padding:10px 14px;font-size:12px;font-weight:700;
    border-radius:999px;text-decoration:none;letter-spacing:.02em;
  }
  .prog-cta .apply{
    background:var(--gold);color:#fff;
  }
  .prog-cta .soon{
    background:rgba(90,125,90,.06);border:1px dashed var(--line);
    color:var(--muted);letter-spacing:.08em;font-size:11px;
  }
  @media (max-width:700px){
    .prog-grid{grid-template-columns:1fr;}
  }

  /* ---------- SCENERY SCROLLER ---------- */
  .scenery-scroller{
    display:flex;gap:16px;overflow-x:auto;padding:4px 4px 16px;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .scenery-scroller::-webkit-scrollbar{height:6px;}
  .scenery-scroller::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;}
  .scenery-item{
    position:relative;flex:0 0 auto;width:270px;height:200px;
    border-radius:18px;overflow:hidden;scroll-snap-align:start;
    background:var(--forest);
  }
  .scenery-item img{width:100%;height:100%;object-fit:cover;display:block;}
  @media (max-width:640px){ .scenery-item{width:220px;height:170px;} }

  /* ---------- STORY ---------- */
  .story-wrap{
    background:var(--paper);border:1px solid var(--line);border-radius:24px;
    padding:44px;
  }
  .story-item{
    display:grid;grid-template-columns:120px 1fr;gap:22px;
    padding:22px 0;border-bottom:1px dashed var(--line);
  }
  .story-item:last-child{border-bottom:none;}
  .story-date{font-weight:900;color:var(--forest);font-size:14px;}
  .story-item h4{font-size:15.5px;color:var(--forest);margin-bottom:6px;}
  .story-item p{font-size:13.5px;color:var(--muted);margin:0;}
  @media (max-width:600px){ .story-item{grid-template-columns:1fr;} }


  /* ---------- PARTNER RECRUIT ---------- */
  .partner-note{
    text-align:center;font-size:12.5px;color:var(--muted);margin:0;
  }
  .partner-note a{color:var(--forest);font-weight:700;text-decoration:underline;text-underline-offset:3px;}

  /* ---------- CTA ---------- */
  .cta{
    background:linear-gradient(135deg,var(--forest-dark),#3d5947);
    color:#fdf9ef;border-radius:28px;
    padding:64px 48px;text-align:center;
  }
  .cta h2{font-size:clamp(22px,3.2vw,30px);font-weight:900;margin-bottom:16px;}
  .cta p{color:#f0ede4;font-size:14.5px;margin-bottom:32px;}
  .cta .btn-primary{font-size:17px;padding:18px 44px;}
  .cta-ctas{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}
  .cta-ctas .btn-outline{border-color:rgba(255,255,255,.5);color:#fdf9ef;}

  /* ---------- SNS / COMMUNITY ---------- */
  .sns-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .sns-card{
    display:flex;align-items:center;gap:16px;
    background:var(--paper);border:1px solid var(--line);border-radius:16px;
    padding:20px 22px;text-decoration:none;color:var(--ink);
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .sns-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(43,43,38,.10);}
  .sns-ico{
    flex:0 0 auto;width:48px;height:48px;border-radius:50%;
    background:var(--forest);
    display:flex;align-items:center;justify-content:center;
  }
  .sns-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
  .sns-body b{font-size:15.5px;color:var(--forest);}
  .sns-body span{font-size:12.5px;color:var(--muted);line-height:1.5;}
  .sns-arrow{flex:0 0 auto;font-size:20px;color:var(--line);}
  @media (max-width:640px){ .sns-grid{grid-template-columns:1fr;} }

  footer{
    background:#3a5645;color:#cfc9b7;padding:48px 0 28px;font-size:13px;
  }
  .foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:32px;margin-bottom:32px;}
  .foot-grid h4{color:#fff;font-size:14px;margin-bottom:14px;}
  .foot-grid p, .foot-grid a{color:#b9b3a0;text-decoration:none;font-size:13px;line-height:2;}
  .foot-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;text-align:center;color:var(--muted);font-size:12px;}
  @media (max-width:780px){ .foot-grid{grid-template-columns:1fr;} }

  .anchor-offset{scroll-margin-top:80px;}

  /* ---------- MULTI-PAGE: LIST / FILTER / DETAIL ---------- */
  .list-page-hero{padding:52px 0 8px;}
  .list-page-hero h1{font-size:clamp(26px,4vw,38px);font-weight:900;color:var(--forest);margin-bottom:10px;}
  .list-page-hero p{color:var(--muted);font-size:14.5px;max-width:640px;}

  .search-box{position:relative;margin:28px 0 16px;}
  .search-box input{
    width:100%;padding:14px 20px 14px 44px;border-radius:999px;border:1.5px solid var(--line);
    font-size:14px;font-family:inherit;background:var(--paper);color:var(--ink);
  }
  .search-box input:focus{outline:2px solid var(--forest);outline-offset:1px;}
  .search-box .ico{position:absolute;left:18px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.5;}

  .filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px;}
  .filter-chip{
    padding:8px 18px;border-radius:999px;border:1.5px solid var(--line);
    background:#fff;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;
    transition:background .15s ease, color .15s ease, border-color .15s ease;
  }
  .filter-chip:hover{border-color:var(--forest-dark);}
  .filter-chip.active{background:var(--forest-dark);border-color:var(--forest-dark);color:#fff;}

  .list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  @media (max-width:900px){ .list-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:620px){ .list-grid{grid-template-columns:1fr;} }

  .list-card{background:#fff;border:2px solid var(--line);border-radius:16px;overflow:hidden;
    text-decoration:none;color:var(--ink);display:block;
    transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;}
  .list-card:hover{transform:translateY(-4px);box-shadow:0 10px 0 rgba(43,43,38,.08);border-color:var(--forest-dark);}
  .list-card .photo{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--forest);}
  .list-card .photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .list-card .badge{position:absolute;top:12px;left:12px;background:var(--forest-dark);color:#fff;
    font-size:11px;font-weight:700;padding:5px 12px;border-radius:999px;letter-spacing:.03em;}
  .list-card .badge.soon{background:rgba(255,255,255,.94);color:var(--muted);border:1px solid var(--line);}
  .list-card .badge.closed{background:rgba(43,43,38,.78);color:#fff;}
  .list-card.is-closed .photo img{filter:grayscale(60%);opacity:.6;}
  .list-card.is-closed .cat{color:var(--muted);}
  .list-card .body{padding:16px 18px 20px;}
  .list-card .cat{font-size:11px;font-weight:700;color:var(--forest);letter-spacing:.04em;margin-bottom:6px;}
  .list-card h3{font-size:15.5px;color:var(--forest);line-height:1.5;margin-bottom:8px;min-height:2.9em;}
  .list-card .meta{font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 10px;}
  .list-card .meta b{color:var(--ink);font-weight:500;}
  .no-results{display:none;text-align:center;padding:60px 0;color:var(--muted);font-size:14px;}
  .no-results.show{display:block;}

  .back-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;
    color:var(--forest);text-decoration:none;margin:28px 0 8px;}
  .back-link:hover{color:var(--forest-dark);}

  .detail-gallery{position:relative;display:grid;grid-template-columns:1.6fr 1fr;grid-template-rows:1fr 1fr;gap:6px;height:460px;margin-bottom:0;overflow:hidden;}
  .detail-gallery .main-photo{grid-row:1/3;grid-column:1;overflow:hidden;}
  .detail-gallery .side-photos{grid-row:1/3;grid-column:2;display:flex;flex-direction:column;gap:6px;height:100%;min-height:0;}
  .detail-gallery img{width:100%;height:100%;object-fit:cover;display:block;}
  .detail-gallery .side-photos img{flex:1 1 0;min-height:0;}
  @media (max-width:700px){
    .detail-gallery{grid-template-columns:1fr;grid-template-rows:auto auto;height:auto;}
    .detail-gallery .main-photo{height:280px;}
    .detail-gallery .side-photos{flex-direction:row;height:140px;}
  }

  .detail-head{padding:32px 0 8px;}
  .detail-head .cat{font-size:12px;font-weight:700;color:var(--forest);letter-spacing:.05em;margin-bottom:10px;display:block;}
  .detail-head h1{font-size:clamp(24px,3.6vw,34px);font-weight:900;color:var(--forest);margin-bottom:10px;}
  .detail-head p.desc{color:var(--muted);font-size:15px;max-width:720px;}

  .status-pill{display:inline-block;font-size:12px;font-weight:700;padding:6px 16px;border-radius:999px;margin-bottom:16px;}
  .status-pill.open{background:var(--gold);color:#fff;}

  .related-strip{margin:0 0 60px;}
  .related-strip h2{font-size:18px;font-weight:900;color:var(--forest);margin-bottom:20px;}

  /* light-bg variants for detail pages */
  .reassure-chips.light span{
    background:var(--cream);border:1px solid var(--line);color:var(--ink);
  }
  .status-pill.soon{background:#f4f1ea;color:var(--muted);border:1px solid var(--line);}
  .status-pill.closed{background:#e8e5dd;color:var(--muted);border:1px solid var(--line);}

  .detail-facts{
    display:grid;grid-template-columns:repeat(4,1fr);gap:0;
    border:1px solid var(--line);border-radius:14px;padding:6px 22px;margin:28px 0;
    background:var(--paper);
  }
  .detail-facts > div{padding:10px 0;font-size:13px;color:var(--muted);}
  .detail-facts > div b{display:block;color:var(--ink);font-weight:700;font-size:14px;margin-top:2px;}
  @media (max-width:700px){ .detail-facts{grid-template-columns:1fr 1fr;} }

  .detail-itin{margin-top:8px;}
  .detail-itin .prog-itin-day{margin-bottom:22px;}
  .detail-itin .prog-itin-day h5{font-size:14px;}
  .detail-itin .prog-itin-list li{font-size:13px;}
  .detail-itin .prog-itin-extra{border-top:1px solid var(--line);padding-top:18px;margin-top:18px;}
  .detail-itin .prog-itin-extra-item{font-size:12.5px;}
  .detail-itin .prog-itin-operator{border-top:1px solid var(--line);padding-top:14px;margin-top:14px;}

  .apply-block{
    position:relative;z-index:1;clear:both;
    display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;
    background:var(--cream);border-radius:16px;padding:24px 28px;margin:28px 0 36px;
  }
  .apply-block > a{flex:0 0 auto;}
