
  :root{
    --black:#171F1A;
    --forest-0:#212F27;
    --forest-1:#293A31;
    --forest-2:#32463B;
    --forest-3:#3C5245;
    --forest-line: rgba(212,166,98,0.28);
    --forest-line-soft: rgba(246,241,227,0.14);
    --cream:#FAF6EC;
    --cream-dim:#D8D0BA;
    --cream-faint: rgba(246,241,227,0.68);
    --gold:#D9AA63;
    --gold-light:#EFD29B;
    --gold-deep:#9A6C34;
    --marigold:#E2954A;
    --rust:#B5551E;
    --shadow: 0 30px 70px rgba(0,0,0,0.45);
    --shadow-soft: 0 14px 34px rgba(0,0,0,0.32);
    --radius: 2px;
  }
  .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;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Work Sans', sans-serif;
    background:var(--forest-0);
    color:var(--cream);
    font-size:16px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4,h5{
    font-family:'Playfair Display', serif;
    margin:0;
    color:var(--cream);
    font-weight:700;
    letter-spacing:0.005em;
  }
  a{color:inherit;}
  img{max-width:100%;display:block;}
  p{margin:0;}
  ul{margin:0;padding:0;}

  .wrap{max-width:1180px; margin:0 auto; padding:0 32px; position:relative;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }

  /* ---- eyebrow / bilingual heading system ---- */
  .eyebrow{
    font-family:'Work Sans',sans-serif;
    text-transform:uppercase;
    letter-spacing:0.16em;
    font-size:0.7rem;
    color:var(--gold-light);
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
  }
  .eyebrow::before{
    content:"";
    width:30px;height:1px;
    background:var(--gold);
    display:inline-block;
  }
  .bilingual-head{margin-bottom:10px;}
  .bilingual-head .id{
    font-family:'Playfair Display', serif;
    font-weight:800;
    text-transform:uppercase;
    color:var(--cream);
    font-size:clamp(1.9rem,3.6vw,2.7rem);
    line-height:1.08;
    letter-spacing:0.01em;
  }
  .bilingual-head .en{
    font-family:'Playfair Display',serif;
    font-style:italic;
    font-weight:500;
    color:var(--gold);
    font-size:clamp(1.05rem,1.8vw,1.4rem);
    margin-top:6px;
    letter-spacing:0.02em;
  }
  .section-head{max-width:700px; margin-bottom:58px; position:relative; z-index:2;}
  .section-head .desc{color:var(--cream-dim); margin-top:18px; font-size:1.02rem; max-width:580px;}

  section{padding:112px 0; position:relative;}
  @media (max-width:700px){ section{padding:72px 0;} }

  .tone-0{background:var(--forest-0);}
  .tone-1{background:var(--forest-1);}
  .tone-2{background:var(--forest-2);}
  .tone-3{background:var(--forest-3);}

  /* ---- petal / leaf corner flourish, echoes the compendium's gold corners ---- */
  .flourish{position:absolute; width:260px; height:260px; opacity:0.5; pointer-events:none; z-index:0; overflow:hidden;}
  .flourish.tl{top:0; left:0;}
  .flourish.tr{top:0; right:0; transform:scaleX(-1);}
  .flourish.bl{bottom:0; left:0; transform:scaleY(-1);}
  .flourish.br{bottom:0; right:0; transform:scale(-1,-1);}
  .flourish svg{width:100%; height:100%; display:block;}
  @media (max-width:700px){ .flourish{width:150px; height:150px;} }

  /* ---- gold divider with center emblem ---- */
  .gate-divider{
    display:flex; align-items:center; justify-content:center; gap:20px;
    padding:50px 0; background:var(--black);
    position:relative; z-index:2;
  }
  .gate-divider .gline{flex:1; max-width:220px; height:1px; background:linear-gradient(90deg, transparent, var(--forest-line) 50%, transparent);}
  .gate-logo{height:54px; width:auto; opacity:0.92;}
  @media (max-width:640px){ .gate-divider{padding:34px 0;} .gate-divider .gline{max-width:60px;} }

  /* ---- header nav ---- */
  header.site-nav{
    position:sticky; top:0; z-index:100;
    background:rgba(23,31,26,0.90);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    border-bottom:1px solid var(--forest-line-soft);
  }
  .nav-inner{
    max-width:1180px; margin:0 auto; padding:14px 32px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .brand{ display:flex; align-items:center; gap:10px; text-decoration:none; cursor:pointer;}
  .brand-logo-full{height:34px; width:auto; object-fit:contain; flex:0 0 auto; display:block;}
  nav.links{display:flex; gap:30px; align-items:center;}
  nav.links a:not(.btn){
    color:var(--cream-dim);
    text-decoration:none;
    font-size:0.83rem;
    letter-spacing:0.03em;
    transition:color .2s;
  }
  nav.links a:not(.btn):hover{color:var(--gold-light);}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:12px 24px;
    border-radius:1px;
    font-size:0.8rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.08em;
    text-decoration:none;
    border:1px solid transparent;
    transition:all .2s;
    white-space:nowrap;
    font-family:'Work Sans',sans-serif;
  }
  .btn-gold{ background:var(--gold); color:#171008; border-color:var(--gold);}
  .btn-gold:hover{ background:var(--gold-light); border-color:var(--gold-light);}
  .btn-outline{ border-color:var(--forest-line); color:var(--cream); }
  .btn-outline:hover{ border-color:var(--gold); color:var(--gold-light); }
  html:not([lang="id"]) [data-lang-only="id"]{display:none !important;}
  html[lang="id"] [data-lang-only="en"]{display:none !important;}
  .note-id{display:none; margin-top:8px; font-family:'Playfair Display',serif; font-style:italic; color:var(--gold);}
  .note-id.tight{margin-top:6px;}
  html[lang="id"] .note-id{display:block;}
  .pcar{position:relative; width:100%; height:100%; overflow:hidden;}
  .pcar-track{display:flex; width:100%; height:100%; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; -ms-overflow-style:none;}
  .pcar-track::-webkit-scrollbar{display:none;}
  .pcar-track img{flex:0 0 100%; width:100%; height:100%; object-fit:cover; scroll-snap-align:start; display:block;}
  .pcar-arrow{position:absolute; top:50%; transform:translateY(-50%); width:34px; height:34px; border-radius:50%; background:rgba(6,9,7,0.55); color:#fff; border:none; font-size:1.3rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:3; transition:background .2s, opacity .2s; -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); padding:0;}
  .pcar-arrow:hover{background:rgba(6,9,7,0.82);}
  .pcar-prev{left:10px;}
  .pcar-next{right:10px;}
  .pcar-dots{position:absolute; bottom:10px; left:0; right:0; display:flex; justify-content:center; gap:6px; z-index:3; pointer-events:none;}
  .pcar-dot{width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.55); box-shadow:0 0 0 1px rgba(0,0,0,0.25); transition:background .2s, transform .2s;}
  .pcar-dot.active{background:#fff; transform:scale(1.35);}
  .tour-intro-banner{padding:56px 0; position:relative; z-index:2;}
  .tour-intro-banner img{width:100%; height:460px; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow); display:block;}
  @media (max-width:520px){ .tour-intro-banner img{height:280px;} }
  .navburger{display:none;}
  @media (max-width:900px){
    nav.links{display:none;}
    .navburger{display:block; background:none;border:1px solid var(--forest-line);color:var(--cream); padding:9px 14px; border-radius:1px; font-family:'Work Sans',sans-serif; font-size:0.72rem;}
  }

  /* ---- language switcher ---- */
  .lang-switch{
    display:flex; align-items:center; flex:0 0 auto;
    border:1px solid var(--forest-line); border-radius:20px;
    overflow:hidden; margin-left:8px;
  }
  .lang-switch button{
    font-family:'Work Sans',sans-serif; font-size:0.68rem; font-weight:600;
    letter-spacing:0.05em; text-transform:uppercase;
    background:transparent; border:none; color:var(--cream-dim);
    padding:8px 12px; cursor:pointer; transition:all .2s;
  }
  .lang-switch button.active{background:var(--gold); color:var(--black);}
  .lang-switch button:not(.active):hover{color:var(--gold-light);}
  @media (max-width:640px){
    .lang-switch button{padding:7px 10px; font-size:0.64rem;}
  }
  .lang-switch-hero{
    margin-left:0;
    background:rgba(6,9,7,0.45);
    -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
    border-color:var(--forest-line-soft);
  }
  .lang-switch-hero button{padding:12px 18px; font-size:0.72rem;}

  /* ---- hero ---- */
  .hero{
    position:relative;
    padding:0;
    display:flex; flex-direction:column; justify-content:flex-start; align-items:center;
    background:var(--forest-0);
    overflow:hidden;
  }
  .hero-img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    opacity:0.92;
  }
  .hero-scrim{
    position:absolute; inset:0;
    background:
      radial-gradient(ellipse at 50% 18%, rgba(10,14,11,0.02) 0%, rgba(8,12,9,0.18) 55%, rgba(6,9,7,0.6) 100%),
      linear-gradient(180deg, rgba(8,11,8,0.10) 0%, rgba(7,10,8,0.14) 32%, rgba(6,9,7,0.45) 74%, rgba(6,9,7,0.8) 100%);
  }
  .hero-content{position:relative; z-index:2; padding:10px 32px 0; max-width:1180px; margin:0 auto; width:100%; text-align:center;}
  .hero-eyebrow{
    font-family:'Work Sans',sans-serif;
    color:var(--cream-dim);
    text-transform:uppercase;
    letter-spacing:0.2em;
    font-size:0.7rem;
    margin-bottom:34px;
    text-shadow:0 1px 10px rgba(0,0,0,0.85);
  }
  .hero-logo-wrap{display:flex; justify-content:center; margin-bottom:10px;}
  .hero-logo{height:clamp(56px, 7vw, 86px); width:auto; filter:drop-shadow(0 8px 30px rgba(0,0,0,0.65));}
  .hero .id-title{
    text-shadow:0 2px 24px rgba(0,0,0,0.7), 0 1px 4px rgba(0,0,0,0.85);
    font-family:'Playfair Display', serif;
    font-weight:800;
    text-transform:uppercase;
    color:#fff;
    font-size:clamp(1.7rem, 3.4vw, 2.6rem);
    line-height:1.1;
    letter-spacing:0.01em;
  }
  .hero .hero-subtitle{
    font-family:'Playfair Display',serif;
    font-style:italic;
    font-weight:500;
    color:var(--gold-light);
    font-size:clamp(1.0rem, 1.7vw, 1.3rem);
    margin:6px 0 0;
    letter-spacing:0.02em;
    text-shadow:0 1px 12px rgba(0,0,0,0.75);
  }
  .hero .lead{
    color:var(--cream-dim);
    max-width:600px;
    margin:8px auto 0;
    font-size:1.0rem;
    text-shadow:0 1px 12px rgba(0,0,0,0.75);
  }
  .hero .hero-tags{
    font-family:'Work Sans',sans-serif;
    color:var(--cream-dim);
    text-transform:uppercase;
    letter-spacing:0.08em;
    font-size:0.7rem;
    margin-top:8px;
    text-shadow:0 1px 10px rgba(0,0,0,0.75);
  }
  .hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-top:14px; justify-content:center;}
  .hero-meta{
    display:flex; gap:6px 0; flex-wrap:wrap; justify-content:center; align-items:baseline;
    margin-top:10px;
    border-top:1px solid var(--forest-line-soft);
    padding-top:8px;
    max-width:760px; margin-left:auto; margin-right:auto;
  }
  .hero-meta span{
    display:inline-flex; align-items:baseline; gap:6px;
    padding:0 16px; margin:0;
    border-right:1px solid var(--forest-line-soft);
    color:var(--cream-dim); font-size:0.8rem;
    text-align:left; white-space:nowrap;
  }
  .hero-meta span:last-child{border-right:none;}
  .hero-meta b{color:var(--gold-light); font-family:'Work Sans',sans-serif; font-size:0.64rem; text-transform:uppercase; letter-spacing:0.06em; font-weight:400;}
  @media (max-width:640px){
    .hero-meta{flex-direction:column; gap:8px; align-items:center;}
    .hero-meta span{border-right:none; padding:0; text-align:center; white-space:normal;}
  }
  .scroll-cue{position:relative; z-index:2; margin:6px 0 10px; color:var(--cream-faint); font-family:'Work Sans',sans-serif; font-size:0.65rem; text-transform:uppercase; letter-spacing:0.2em; display:flex; flex-direction:column; align-items:center; gap:5px;}
  .scroll-cue .line{width:1px; height:22px; background:linear-gradient(var(--gold), transparent); animation:cue 2.2s ease-in-out infinite;}
  @keyframes cue{0%{opacity:.2;transform:scaleY(.4);transform-origin:top;} 50%{opacity:1;transform:scaleY(1);transform-origin:top;} 100%{opacity:.2;transform:scaleY(.4);transform-origin:top;}}
  @media (prefers-reduced-motion: reduce){ .scroll-cue .line{animation:none;} }

  /* ---- about ---- */
  .about-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:70px; position:relative; z-index:2;}
  @media (max-width:860px){ .about-grid{grid-template-columns:1fr; gap:44px;} }
  .about-col-left .lede{font-family:'Playfair Display',serif; font-size:1.65rem; line-height:1.5; font-weight:500; color:var(--cream);}
  .about-col-left .lede em{font-style:italic; color:var(--gold-light);}
  .about-more{margin-top:24px; color:var(--cream-dim); font-size:0.98rem;}
  .about-col-right{padding-top:6px;}
  .fact-grid{display:flex; flex-direction:column;}
  .fact{ padding:22px 0; border-top:1px solid var(--forest-line-soft);}
  .fact:first-child{border-top:none; padding-top:0;}
  .fact:last-child{padding-bottom:0;}
  .fact h4{
    font-family:'Playfair Display',serif;
    font-size:1.35rem;
    font-weight:600;
    font-style:italic;
    color:var(--gold-light);
    margin-bottom:8px;
  }
  .fact p{margin:0; font-size:0.94rem; color:var(--cream-dim); line-height:1.6;}

  /* ---- grounds tour ---- */
  .tour-list{position:relative; margin-top:10px; z-index:2;}
  .tour-list::before{
    content:"";
    position:absolute; left:29px; top:14px; bottom:14px; width:1px;
    background-repeat:repeat-y;
    background-image:linear-gradient(var(--forest-line) 55%, transparent 0%);
    background-size:1px 12px;
  }
  @media (max-width:860px){ .tour-list::before{left:17px;} }
  .stop{
    display:grid; grid-template-columns:60px 1fr; gap:0 34px;
    padding:52px 0;
    border-bottom:1px solid var(--forest-line-soft);
  }
  .stop:first-child{padding-top:10px;}
  .stop:last-child{border-bottom:none;}
  @media (max-width:860px){ .stop{grid-template-columns:36px 1fr; gap:0 18px;} }
  .stop-num{
    font-family:'Work Sans',sans-serif;
    font-size:0.76rem;
    color:var(--black);
    background:var(--gold);
    width:38px; height:38px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    position:relative; z-index:2;
    font-weight:700;
  }
  @media (max-width:860px){ .stop-num{width:30px;height:30px; font-size:0.66rem;} }
  .stop-body{display:grid; grid-template-columns:0.95fr 1.15fr; gap:44px; align-items:center;}
  @media (max-width:900px){ .stop-body{grid-template-columns:1fr; gap:24px;} }
  .stop:nth-child(even) .stop-body{grid-template-columns:1.15fr 0.95fr;}
  @media (max-width:900px){ .stop:nth-child(even) .stop-body{grid-template-columns:1fr;} }
  .stop:nth-child(even) .stop-text{order:2;}
  .stop:nth-child(even) .stop-media{order:1;}
  @media (max-width:900px){ .stop-text{order:1 !important;} .stop-media{order:2 !important;} }
  .stop-eyebrow{font-family:'Work Sans',sans-serif; text-transform:uppercase; letter-spacing:0.1em; font-size:0.68rem; color:var(--marigold); margin-bottom:10px;}
  .stop-text h3{font-size:1.6rem; margin-bottom:14px; font-weight:700;}
  .stop-text p{color:var(--cream-dim); font-size:0.97rem;}
  .stop-media{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft);}
  .stop-thumbs{display:grid; grid-template-columns:1fr;}
  .stop-thumbs img{height:380px; width:100%; object-fit:cover; display:block;}
  @media (max-width:520px){ .stop-thumbs img{height:260px;} }

  /* ---- stay / visit ---- */
  .stay-banner{position:relative; border-radius:var(--radius); overflow:hidden; margin-bottom:64px; box-shadow:var(--shadow); z-index:2;}
  .stay-banner img{width:100%; height:420px; object-fit:cover;}
  .stay-banner-cap{
    position:absolute; left:0; bottom:0; right:0;
    background:linear-gradient(0deg, rgba(6,9,7,0.9), transparent);
    color:#fff; padding:32px 34px 24px;
    font-family:'Playfair Display',serif; font-style:italic; font-weight:500; font-size:1.2rem; max-width:640px;
  }
  .stay-sub{margin-bottom:22px; display:flex; align-items:baseline; gap:14px;}
  .stay-sub h3{font-size:1.4rem;}
  .stay-sub::after{content:""; flex:1; height:1px; background:var(--forest-line-soft);}
  .card-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
  .card-grid.single{grid-template-columns:1fr; max-width:420px;}
  @media (max-width:760px){ .card-grid{grid-template-columns:1fr; max-width:none;} }
  .stay-grid-3{
    display:grid; grid-template-columns:repeat(3,1fr);
    grid-template-areas:"villaHead campHead campHead" "villaCard tentCard notentCard";
    gap:16px 22px; margin-top:64px; position:relative; z-index:2;
  }
  .stay-grid-3 .head-villa{grid-area:villaHead;}
  .stay-grid-3 .head-camping{grid-area:campHead;}
  .stay-grid-3 .card-villa{grid-area:villaCard;}
  .stay-grid-3 .card-tent{grid-area:tentCard;}
  .stay-grid-3 .card-notent{grid-area:notentCard;}
  .stay-grid-3 .price-card{display:flex; flex-direction:column; height:100%;}
  .stay-grid-3 .price-card .incl{margin-top:auto;}
  @media (max-width:760px){
    .stay-grid-3{
      grid-template-columns:1fr;
      grid-template-areas:"villaHead" "villaCard" "campHead" "tentCard" "notentCard";
    }
  }
  .price-card{
    background:var(--forest-2); border:1px solid var(--forest-line-soft); border-top:2px solid var(--gold);
    padding:28px 26px 26px; border-radius:var(--radius);
    position:relative;
  }
  .price-card h4{font-size:1.15rem; font-weight:700; margin-bottom:4px;}
  .price-card .sub{font-size:0.82rem; color:var(--cream-dim); margin-bottom:18px; font-style:italic; font-family:'Playfair Display',serif; font-size:1rem;}
  .leader-row{
    display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; row-gap:2px;
    padding:10px 0; border-top:1px dotted var(--forest-line);
    font-size:0.93rem;
  }
  .leader-row:first-of-type{border-top:none;}
  .leader-row .lbl{color:var(--cream); flex:1 1 auto; min-width:90px;}
  .leader-row .leader{flex:1 1 20px; border-bottom:1px dotted var(--gold-deep); min-width:14px; transform:translateY(-4px);}
  .leader-row .p{font-family:'Playfair Display',serif; color:var(--gold-light); font-weight:600; font-size:1.02rem; white-space:nowrap; flex:0 0 auto;}
  .price-card .incl{margin-top:16px; padding-top:14px; border-top:1px solid var(--forest-line-soft); font-size:0.83rem; color:var(--cream-dim);}
  .price-card .incl span{display:block; margin-bottom:4px;}
  .price-card .mini-photos{display:grid; grid-template-columns:1fr; margin-top:16px; border-radius:var(--radius); overflow:hidden;}
  .price-card .mini-photos img{height:170px; width:100%; object-fit:cover;}
  .stay-grid-2{display:grid; grid-template-columns:1fr 1fr; gap:60px; margin-top:64px; position:relative; z-index:2;}
  @media (max-width:860px){ .stay-grid-2{grid-template-columns:1fr; gap:44px;} }


  /* ---- menu mega section ---- */
  .dine-banner{position:relative; border-radius:var(--radius); overflow:hidden; margin-bottom:70px; box-shadow:var(--shadow); z-index:2;}
  .dine-banner img{width:100%; height:360px; object-fit:cover;}
  .dine-banner-cap{
    position:absolute; left:0; bottom:0; right:0;
    background:linear-gradient(0deg, rgba(6,9,7,0.92), transparent 75%);
    color:#fff; padding:34px 36px 26px;
  }
  .dine-banner-cap .id-t{font-family:'Playfair Display',serif; font-weight:800; text-transform:uppercase; font-size:1.5rem;}
  .dine-banner-cap .en-t{font-family:'Playfair Display',serif; font-style:italic; color:var(--gold-light); font-size:1.05rem; margin-top:4px;}

  .dine-nav{
    display:flex; gap:8px; flex-wrap:wrap; justify-content:center;
    margin-bottom:60px;
    position:sticky; top:77px; z-index:20;
    background:rgba(23,31,26,0.96); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
    padding:14px 12px;
    border:1px solid var(--forest-line-soft);
    border-radius:2px;
    box-shadow:0 12px 24px rgba(0,0,0,0.25);
  }
  .dine-nav a{
    font-family:'Work Sans',sans-serif; font-size:0.74rem; text-transform:uppercase; letter-spacing:0.05em;
    padding:9px 16px; border:1px solid var(--forest-line); border-radius:20px; text-decoration:none; color:var(--cream-dim);
    transition:all .2s;
  }
  .dine-nav a:hover{background:var(--gold); color:var(--black); border-color:var(--gold);}

  .menu-teaser{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center; position:relative; z-index:2; min-width:0;}
  @media (max-width:900px){ .menu-teaser{grid-template-columns:1fr; gap:34px;} }
  .menu-teaser-media{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); height:460px; min-width:0;}
  .menu-teaser-text{min-width:0;}
  .menu-teaser-media img{width:100%; height:100%; object-fit:cover; display:block;}
  @media (max-width:520px){ .menu-teaser-media{height:340px;} }
  .teaser-list{list-style:none; margin:26px 0 34px; padding:0; display:grid; gap:0;}
  .teaser-list li{
    padding:14px 0 14px 30px; border-top:1px solid var(--forest-line-soft);
    position:relative; color:var(--cream-dim); font-size:1rem;
  }
  .teaser-list li:first-child{border-top:none; padding-top:0;}
  .teaser-list li::before{
    content:""; position:absolute; left:0; top:20px; width:16px; height:1px; background:var(--gold);
  }
  .teaser-list li:first-child::before{top:6px;}

  .dine-block{margin-bottom:90px; scroll-margin-top:150px; position:relative; z-index:2;}
  .dine-block:last-child{margin-bottom:0;}
  .dine-block-head{max-width:680px; margin-bottom:8px; padding-bottom:24px; border-bottom:1px solid var(--forest-line-soft); display:flex; align-items:flex-start; gap:20px;}
  .dine-icon{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:0 0 auto; background:var(--forest-3); border:1px solid var(--forest-line);}
  .dine-icon svg{width:24px; height:24px;}
  .dine-block-head .titles .id-t{font-family:'Playfair Display',serif; font-weight:800; text-transform:uppercase; font-size:1.75rem; display:flex; align-items:baseline; gap:12px; color:var(--cream);}
  .dine-block-head .titles .en-t{font-family:'Playfair Display',serif; font-style:italic; color:var(--gold); font-size:1.25rem; margin-top:3px;}
  .dine-block-head .titles p.d{color:var(--cream-dim); font-size:1rem; margin-top:12px; max-width:480px;}

  .sub-block{margin-top:40px;}
  .sub-block:first-child{margin-top:0;}
  .sub-block-title{
    font-family:'Work Sans',sans-serif; text-transform:uppercase; letter-spacing:0.08em; font-size:0.9rem;
    color:var(--gold-light); padding-bottom:12px; margin-bottom:8px; border-bottom:1px solid var(--forest-line-soft);
    display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
  }
  .sub-block-title .en{font-family:'Playfair Display',serif; text-transform:none; font-style:italic; color:var(--cream-dim); letter-spacing:0; font-size:1rem;}

  .menu-cols{display:grid; grid-template-columns:1fr 1fr; gap:0 60px; margin-top:32px;}
  @media (max-width:760px){ .menu-cols{grid-template-columns:1fr;} }
  .menu-item{
    display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; row-gap:2px;
    padding:15px 0; border-bottom:1px dotted var(--forest-line-soft);
  }
  .menu-item:last-child{border-bottom:none;}
  .menu-item .name{font-size:1.22rem; font-weight:500; color:var(--cream); flex:1 1 auto; min-width:120px;}
  .menu-item .name .en{display:block; color:var(--gold); font-size:0.96rem; font-style:italic; font-family:'Playfair Display',serif; font-weight:500; margin-top:3px;}
  .menu-item .leader{flex:1 1 30px; border-bottom:1px dotted var(--gold-deep); min-width:20px; transform:translateY(-6px);}
  .menu-item .price{font-family:'Playfair Display',serif; font-size:1.3rem; color:var(--gold-light); font-weight:600; white-space:nowrap; flex:0 0 auto;}

  /* ---- activities ---- */
  .act-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:50px; align-items:center; position:relative; z-index:2;}
  @media (max-width:860px){ .act-grid{grid-template-columns:1fr; gap:34px;} }
  .act-photos{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft);}
  .act-photos img{width:100%; height:420px; object-fit:cover; display:block;}
  @media (max-width:520px){ .act-photos img{height:260px;} }
  .act-list{list-style:none; margin:26px 0 0; padding:0;}
  .act-list li{
    display:flex; justify-content:space-between; align-items:baseline; gap:16px;
    padding:18px 0; border-bottom:1px solid var(--forest-line-soft);
  }
  .act-list li:first-child{padding-top:0;}
  .act-list .t{font-size:1.04rem; font-weight:600;}
  .act-list .d{font-size:0.85rem; color:var(--cream-dim); margin-top:5px; font-weight:400;}
  .act-list .p{font-family:'Playfair Display',serif; color:var(--gold-light); font-weight:700; font-size:1.05rem; white-space:nowrap;}

  /* ---- gallery strip (before activities) ---- */
  .gallery-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; position:relative; z-index:2;}
  .gallery-strip figure{margin:0; position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft);}
  .gallery-strip img{width:100%; height:280px; object-fit:cover; display:block; transition:transform .5s;}
  .gallery-strip figure:hover img{transform:scale(1.05);}
  .gallery-strip figcaption{
    position:absolute; left:0; right:0; bottom:0;
    background:linear-gradient(0deg, rgba(6,9,7,0.88), transparent);
    color:#fff; padding:16px 16px 12px;
    font-family:'Playfair Display',serif; font-style:italic; font-weight:500; font-size:0.98rem;
  }
  @media (max-width:860px){ .gallery-strip{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .gallery-strip{grid-template-columns:1fr;} .gallery-strip img{height:240px;} }

  /* ---- contact ---- */
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; position:relative; z-index:2;}
  @media (max-width:860px){ .contact-grid{grid-template-columns:1fr; gap:44px;} }
  .contact-list{list-style:none; margin:0; padding:0;}
  .contact-list li{padding:20px 0; border-top:1px solid var(--forest-line-soft); display:grid; grid-template-columns:130px 1fr; gap:14px;}
  .contact-list li:first-child{border-top:none; padding-top:0;}
  .contact-list b{font-family:'Work Sans',sans-serif; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold); font-weight:400;}
  .contact-list a{color:var(--cream); text-decoration:none; border-bottom:1px solid var(--forest-line); overflow-wrap:anywhere;}
  .contact-list a:hover{border-color:var(--gold);}
  .contact-list span{color:var(--cream-dim); overflow-wrap:anywhere;}
  .contact-btn{
    display:inline-flex; align-items:center; gap:9px;
    padding:10px 16px;
    border:1px solid var(--gold-deep);
    border-radius:2px;
    background:var(--forest-2);
    color:var(--cream) !important;
    text-decoration:none !important;
    border-bottom:1px solid var(--gold-deep) !important;
    font-size:0.92rem;
    transition:all .2s;
  }
  .contact-btn:hover{background:var(--forest-3); border-color:var(--gold) !important; color:var(--gold-light) !important;}
  .contact-btn svg{width:16px; height:16px; flex:0 0 auto; color:var(--gold);}
  .contact-btn:hover svg{color:var(--gold-light);}
  @media (max-width:420px){
    .contact-list li{grid-template-columns:1fr; gap:6px;}
  }
  .contact-photos{border-radius:var(--radius); overflow:hidden; margin-bottom:22px;}
  .contact-photos img{height:220px; width:100%; object-fit:cover; display:block;}
  .map-card{
    border:1px solid var(--forest-line-soft); border-radius:var(--radius); padding:8px 2px 0;
    display:flex; flex-direction:column; justify-content:space-between;
  }
  .map-card .inner{padding:0 28px 28px;}
  .map-card p{color:var(--cream-dim); font-size:0.92rem;}
  .cta-final{margin-top:24px; display:flex; gap:12px; flex-wrap:wrap;}

  footer{
    background:var(--black); color:var(--cream-dim); padding:44px 0 30px; font-size:0.82rem;
  }
  .foot-inner{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
  .foot-inner .fbrand{display:flex; align-items:center; gap:10px; text-decoration:none;}
  .foot-links{display:flex; gap:22px; flex-wrap:wrap;}
  .foot-links a{color:var(--cream-dim); text-decoration:none;}
  .foot-links a:hover{color:var(--gold-light);}
  .foot-credit{
    margin-top:22px; padding-top:18px; border-top:1px solid rgba(255,255,255,0.08);
    text-align:center; font-size:0.74rem; letter-spacing:0.02em; color:var(--cream-dim); opacity:0.75;
  }
  .foot-credit a{color:inherit; text-decoration:none; border-bottom:1px solid rgba(255,255,255,0.25); transition:opacity 0.2s ease;}
  .foot-credit a:hover{opacity:1; color:var(--gold-light); border-color:currentColor;}

  .section-note{
    max-width:560px; margin:56px auto 0; text-align:center;
    padding-top:28px; border-top:1px solid var(--forest-line-soft);
    color:var(--cream-dim); font-size:0.9rem;
  }
  .section-note h4{font-size:1.2rem; font-weight:700; color:var(--cream); margin-bottom:6px;}
  .section-note .sub{
    font-family:'Playfair Display',serif; font-style:italic; font-weight:500;
    color:var(--gold-light); font-size:1.05rem; margin-bottom:14px;
  }
  .section-note p{margin:0 auto; line-height:1.6;}
  .section-note p + p{margin-top:12px;}
  .section-note .btn{margin-top:20px; white-space:normal; line-height:1.4; max-width:100%;}

  :focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
  ::selection{background:var(--gold); color:#171008;}

  /* ---- menu page header ---- */
  .menu-hero{
    background:var(--black);
    padding:18px 0;
    position:relative;
    overflow:hidden;
  }
  .back-link{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'Work Sans',sans-serif; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em;
    color:var(--cream-dim); text-decoration:none; margin-bottom:0;
  }
  .back-link:hover{color:var(--gold-light);}
  .menu-hero-row{display:flex; align-items:center; justify-content:space-between; gap:12px 24px; flex-wrap:wrap;}
  .mh-title{font-family:'Playfair Display',serif; font-weight:800; text-transform:uppercase; font-size:1.25rem; color:var(--cream); margin:0; letter-spacing:.02em;}
  .mh-title em{font-weight:500; text-transform:none; color:var(--gold-light); font-size:1rem; margin-left:8px;}
  @media (max-width:640px){ .menu-hero{padding:14px 0;} .mh-title{display:none;} }
  .menu-hero .desc{color:var(--cream-dim); max-width:600px; font-size:1.02rem; margin-top:16px;}
  .menu-hero-note{
    margin-top:28px; padding-top:24px; border-top:1px solid var(--forest-line-soft);
    font-family:'Work Sans',sans-serif; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em;
    color:var(--cream-dim); display:flex; gap:10px; align-items:center; padding-bottom:40px;
  }
  .menu-hero-note::before{content:"";width:20px;height:1px;background:var(--gold);}

  /* ---- tab bar ---- */
  .menu-tabs-wrap{
    position:sticky; top:77px; z-index:40;
    background:rgba(23,31,26,0.97); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border-bottom:1px solid var(--forest-line-soft);
    box-shadow:0 12px 28px rgba(0,0,0,0.28);
  }
  .menu-tabs{
    max-width:1180px; margin:0 auto; padding:16px 32px;
    display:flex; gap:10px; overflow-x:auto; scrollbar-width:none;
  }
  .menu-tabs::-webkit-scrollbar{display:none;}
  .menu-tabs button{
    flex:0 0 auto;
    font-family:'Work Sans',sans-serif; font-size:0.76rem; text-transform:uppercase; letter-spacing:0.05em;
    padding:11px 20px; border:1px solid var(--forest-line); border-radius:20px;
    background:transparent; color:var(--cream-dim); cursor:pointer; white-space:nowrap;
    transition:all .2s;
  }
  .menu-tabs button:hover{border-color:var(--gold-light); color:var(--cream);}
  .menu-tabs button.active{background:var(--gold); color:var(--black); border-color:var(--gold); font-weight:700;}
  @media (max-width:640px){ .menu-tabs{padding:14px 20px;} }

  /* ---- panels ---- */
  .menu-panels{background:var(--forest-1); position:relative;}
  .menu-panel{display:none; padding:36px 0 90px; position:relative; overflow:hidden;}
  .menu-panel.active{display:block;}

  .panel-title{display:flex; align-items:center; flex-wrap:wrap; gap:8px 22px; margin-bottom:18px; position:relative; z-index:2;}
  .pt-h{font-family:'Playfair Display',serif; font-weight:800; text-transform:uppercase; font-size:1.6rem; color:var(--cream); margin:0; line-height:1.15;}
  .pt-icons{display:flex; align-items:center; gap:14px; color:var(--gold);}
  .pt-ico{display:inline-flex; opacity:.95;}
  .pt-ico svg{width:38px; height:38px;}
  @media (max-width:640px){ .pt-h{font-size:1.3rem;} .pt-icons{gap:10px;} .pt-ico svg{width:32px; height:32px;} }

  .panel-head{max-width:680px; margin-bottom:44px; position:relative; z-index:2;}
  .panel-head .id-t{font-family:'Playfair Display',serif; font-weight:800; text-transform:uppercase; font-size:2rem; color:var(--cream);}
  .panel-head .en-t{font-family:'Playfair Display',serif; font-style:italic; color:var(--gold); font-size:1.3rem; margin-top:6px;}
  .panel-head p.d{color:var(--cream-dim); font-size:1.05rem; margin-top:16px; max-width:560px;}
  .panel-head p.d .en{display:block; margin-top:8px; font-family:'Playfair Display',serif; font-style:italic; color:var(--gold); font-size:0.98em;}

  .mid-photo{margin:56px 0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft); position:relative; z-index:2;}
  .mid-photo img{width:100%; height:320px; object-fit:cover; display:block;}

  .custom-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 60px; margin-top:30px;}
  @media (max-width:760px){ .custom-grid{grid-template-columns:1fr;} }
  .custom-item{padding:16px 0; border-bottom:1px solid var(--forest-line-soft);}
  .custom-item:last-child{border-bottom:none;}
  .custom-item .ct{font-family:'Work Sans',sans-serif; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--gold-light); margin-bottom:6px; display:flex; gap:8px; align-items:baseline;}
  .custom-item .ct .en{font-family:'Playfair Display',serif; text-transform:none; font-style:italic; color:var(--cream-dim); font-size:0.9rem; letter-spacing:0;}
  .custom-item .cv{color:var(--cream); font-size:1.05rem;}
  .custom-item .cv .en{display:block; color:var(--gold); font-style:italic; font-family:'Playfair Display',serif; font-size:0.92rem; margin-top:3px;}

  /* ---- compact price-free item description ---- */
  .flow-cols{display:grid; grid-template-columns:1fr 1fr; gap:0 60px;}
  @media (max-width:760px){ .flow-cols{grid-template-columns:1fr;} }
  .item-flow{
    margin:16px 0 0; column-count:2; column-gap:48px; max-width:none;
  }
  @media (max-width:640px){ .item-flow{column-count:1;} }
  .item-flow .it{
    display:flex; align-items:baseline; justify-content:space-between; column-gap:16px;
    padding:10px 0; border-bottom:1px dotted var(--forest-line-soft);
    break-inside:avoid; -webkit-column-break-inside:avoid; page-break-inside:avoid;
    color:var(--cream); font-weight:500; font-size:1.05rem; line-height:1.3;
    font-family:'Playfair Display',serif;
  }
  .item-flow .it .en{
    color:var(--gold); font-style:normal; text-transform:uppercase;
    letter-spacing:0.05em; font-weight:500; font-size:0.86em;
    font-family:'Playfair Display',serif; white-space:nowrap; flex:0 0 auto;
  }


  .view-panel{}

.cc-bar{position:fixed;left:16px;bottom:16px;right:16px;z-index:150;max-width:440px;background:var(--forest-1);color:var(--cream);border:1px solid var(--forest-line);padding:14px 16px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:.85rem;box-shadow:0 8px 30px rgba(0,0,0,.4)}
.cc-bar[hidden]{display:none}
.cc-bar p{flex:1 1 220px;margin:0;line-height:1.45}
.cc-btns{display:flex;gap:8px}
.cc-btns button{font-family:'Work Sans',sans-serif;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:9px 16px;cursor:pointer;border:1px solid var(--gold);background:transparent;color:var(--gold)}
.cc-btns .cc-yes{background:var(--gold);color:var(--black)}

/* =====================================================================
   v3 — TZ adjustments: reordered home page, new blocks
   ===================================================================== */
/* anchors clear the sticky header */
#home,#about,#choose,#tour,#stay,#dining,#activities,#groups,#eco,#visit,#contact,#plan{scroll-margin-top:72px;}
#visit{scroll-margin-top:96px;}

/* touch-friendly buttons */
.btn{min-height:44px; justify-content:center;}
.btn-sm{padding:9px 16px; font-size:0.72rem; min-height:40px;}
.btn-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:8px;}
.btn-row.center{justify-content:center;}
.block-cta{margin-top:40px; display:flex; justify-content:center; position:relative; z-index:2;}

/* about: quick overview list */
.quick-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 28px;}
.quick-list li{
  padding:16px 0 16px 22px; border-top:1px solid var(--forest-line-soft); position:relative;
  font-family:'Playfair Display',serif; font-size:1.25rem; font-weight:600; color:var(--gold-light);
}
.quick-list li::before{content:""; position:absolute; left:0; top:50%; width:8px; height:8px; margin-top:-4px; background:var(--gold); transform:rotate(45deg);}
.quick-list li:nth-child(-n+2){border-top:none;}
@media (max-width:520px){ .quick-list{grid-template-columns:1fr;} .quick-list li:nth-child(2){border-top:1px solid var(--forest-line-soft);} }

/* choose your visit */
#choose .section-head{margin-bottom:44px;}
.choose-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; position:relative; z-index:2;}
@media (max-width:900px){ .choose-grid{grid-template-columns:1fr; max-width:520px; margin:0 auto;} }
.choose-card{background:var(--forest-2); border:1px solid var(--forest-line-soft); border-top:2px solid var(--gold); border-radius:var(--radius); display:flex; flex-direction:column; overflow:hidden;}
.choose-photo img{width:100%; height:200px; object-fit:cover; display:block;}
.choose-body{padding:24px 24px 26px; display:flex; flex-direction:column; flex:1;}
.choose-body h3{font-size:1.3rem; margin-bottom:8px;}
.choose-body p{color:var(--cream-dim); font-size:0.95rem; margin-bottom:20px;}
.choose-body .btn{margin-top:auto; align-self:flex-start;}

/* grounds: stops without eyebrow */
.stop-text h3{margin-top:2px;}
.stop-text p + p{margin-top:10px;}

/* stay cards */
.stay-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; position:relative; z-index:2; align-items:stretch;}
@media (max-width:900px){ .stay-cards{grid-template-columns:1fr; max-width:520px; margin:0 auto;} }
.price-card.stay-card{display:flex; flex-direction:column; padding:0 0 26px; overflow:hidden;}
.stay-card-photo img{width:100%; height:200px; object-fit:cover; display:block;}
.stay-card > h3{font-size:1.25rem; margin:22px 26px 4px;}
.stay-card > .sub{margin:0 26px 14px;}
.stay-card > .leader-row{margin:0 26px;}
.stay-card-cta{margin:auto 26px 0; padding-top:20px;}
.stay-card-cta .btn{width:100%;}

/* menu teaser: second button */
.menu-teaser-text .btn-row{margin-top:6px;}

/* activities: price + ask button */
.act-list .unit{font-size:0.68rem; font-family:'Work Sans',sans-serif; color:var(--cream-dim); font-weight:400;}
.act-list li{align-items:flex-start;}
.act-list .act-main{flex:1; min-width:0;}
.act-list .act-main .btn{margin-top:12px;}

/* groups */
.group-grid{display:grid; grid-template-columns:1fr 1.1fr; gap:56px; align-items:center; position:relative; z-index:2;}
@media (max-width:860px){ .group-grid{grid-template-columns:1fr; gap:32px;} }
.group-photo{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft);}
.group-photo img{width:100%; height:420px; object-fit:cover; display:block;}
@media (max-width:520px){ .group-photo img{height:260px;} }
.group-text .desc{color:var(--cream-dim); margin-top:18px; font-size:1.02rem;}
.group-text .act-list{margin-top:22px;}
.group-text .act-list li{padding:14px 0; border-top:1px solid var(--forest-line-soft);}
.group-reset{margin-top:18px; font-size:0.86rem; color:var(--cream-faint);}

/* eco resort: deliberately quiet */
section.eco-note{padding:56px 0; border-top:1px solid var(--forest-line-soft);}
.eco-inner{max-width:560px; margin:0 auto; text-align:center;}
.eco-inner .eyebrow{justify-content:center; margin-bottom:12px; font-size:0.64rem; color:var(--cream-dim);}
.eco-inner .eyebrow::before{display:none;}
.eco-inner h3{font-size:1.2rem; margin-bottom:8px;}
.eco-inner p{color:var(--cream-dim); font-size:0.92rem;}
.eco-inner .eco-small{font-size:0.8rem; opacity:0.8; margin-top:6px;}
.eco-inner .btn{margin-top:18px;}
@media (max-width:700px){ section.eco-note{padding:44px 0;} }

/* practical info */
#contact .section-head{margin-bottom:44px;}
.visit-col .stay-sub{margin-bottom:14px;}
.visit-lead{color:var(--cream-dim); margin-bottom:20px; font-size:0.98rem;}
.map-card .contact-list li{padding:14px 0;}
.map-card .contact-list li:first-child{padding-top:0;}
.map-card .cta-final .btn{flex:1 1 auto;}

/* final block */
section.final-block{padding:84px 0; text-align:center;}
.final-inner{max-width:640px; margin:0 auto; position:relative; z-index:2;}
.final-inner .desc{color:var(--cream-dim); margin:14px auto 28px; font-size:1.02rem;}
@media (max-width:700px){ section.final-block{padding:64px 0;} .btn-row.center .btn{flex:1 1 100%;} }
.act-list .p{text-align:right; flex:0 0 auto;}
.wa-note{margin-top:16px; font-size:0.88rem; color:var(--cream-dim);}
.wa-note a{color:var(--gold-light); border-bottom:1px solid var(--gold); padding-bottom:1px;}
.wa-note a:hover{color:var(--gold);}
.stay-card > .incl{margin:14px 26px 0; padding-top:14px; border-top:1px solid var(--forest-line-soft);}
.stay-card > .incl span:first-child{color:var(--gold-light); margin-bottom:8px;}

/* villa photo carousel */
.stay-card-photo{height:200px; overflow:hidden;}
.stay-card-photo .pcar{height:200px;}
.stay-card-photo .pcar-track img{object-position:center 62%;}
.stay-card-photo .pcar-track img{object-position:center 68%;}

/* =====================================================================
   Photo frames: "leaf" shapes (opposite corners rounded, or three corners)
   ===================================================================== */
:root{ --leaf:64px; --leaf-s:34px; --leaf-xl:96px; }
@media (max-width:700px){ :root{ --leaf:40px; --leaf-s:26px; --leaf-xl:52px; } }

.tour-intro-banner img{ border-radius:0 var(--leaf-xl) 0 var(--leaf-xl); }

.stop-media{ border-radius:var(--leaf) 0 var(--leaf) 0; }
.stop:nth-child(even) .stop-media{ border-radius:0 var(--leaf) 0 var(--leaf); }

.menu-teaser-media{ border-radius:var(--leaf) var(--leaf) var(--leaf) 0; }
.act-photos{ border-radius:0 var(--leaf) 0 var(--leaf); }
.group-photo{ border-radius:var(--leaf) var(--leaf) 0 var(--leaf); }

.choose-card{ border-radius:var(--leaf-s) 0 var(--leaf-s) 0; }
.price-card.stay-card{ border-radius:var(--leaf-s) 0 var(--leaf-s) 0; }

.map-card{ overflow:hidden; border-radius:0 var(--leaf-s) 0 var(--leaf-s); }
.contact-photos{ border-radius:0; }


/* =====================================================================
   Design v4: two families (Playfair Display + Work Sans), orange CTA,
   light "Stay & Visit" and "Plan Your Visit" sections
   ===================================================================== */
.eyebrow,.hero-meta b,.contact-list b,.stop-eyebrow,.scroll-cue,.act-list .unit,.custom-item .ct{font-size:0.76rem; font-weight:600; letter-spacing:0.08em;}
.btn{font-size:0.8rem; font-weight:600; letter-spacing:0.06em;}
.btn-sm{font-size:0.76rem;}
.lang-btn,.cc-btns button{font-weight:600;}

/* primary buttons: orange from the logo, dark text for contrast */
.btn-gold{background:#E9710B; border-color:#E9710B; color:#1A0F05;}
.btn-gold:hover{background:#F2862B; border-color:#F2862B; color:#1A0F05;}

/* light sections */
#stay.tone-2, #contact.tone-0{
  --forest-0:#F8F2E4; --forest-1:#F0E8D3; --forest-2:#FFFFFF; --forest-3:#E7DDC4;
  --forest-line:rgba(31,58,43,0.30); --forest-line-soft:rgba(31,58,43,0.16);
  --cream:#1F3A2B; --cream-dim:#42564A; --cream-faint:rgba(31,58,43,0.72);
  --gold:#9F4515; --gold-light:#9F4515; --marigold:#9F4515;
  --shadow-soft:0 14px 34px rgba(31,58,43,0.14);
  background:#F8F2E4; color:#1F3A2B;
}
#stay .flourish, #contact .flourish{opacity:0.22;}
#stay h2, #stay h3, #contact h2, #contact h3{color:#1F3A2B; text-shadow:none;}
#stay .btn-gold, #contact .btn-gold{background:#B04A00; border-color:#B04A00; color:#fff;}
#stay .btn-gold:hover, #contact .btn-gold:hover{background:#8F3E00; border-color:#8F3E00; color:#fff;}
#stay .btn-outline, #contact .btn-outline{border-color:rgba(31,58,43,0.45); color:#1F3A2B; background:transparent;}
#stay .btn-outline:hover, #contact .btn-outline:hover{background:rgba(31,58,43,0.07);}
#stay .price-card, #contact .price-card, #contact .map-card{background:#fff; border-color:rgba(31,58,43,0.16);}
#stay .leader-row .leader, #contact .leader-row .leader{border-bottom-color:rgba(31,58,43,0.28);}
#contact .contact-list li{border-color:rgba(31,58,43,0.14);}

/* =====================================================================
   Recommended design pass: photo hero, icons, price chips, 2x2 grounds,
   villa badge, "open now" chip, mobile action bar
   ===================================================================== */
.hero{
  background:linear-gradient(180deg,rgba(12,22,16,0.55) 0%,rgba(12,22,16,0.84) 100%),url(../img/home/home-01-mountain-river-running-along-the-edge-of-the.webp) center/cover no-repeat;
  min-height:min(88vh,860px); display:flex; align-items:center; justify-content:center;
}
.hero .hero-content{width:100%;}
.hero .flourish{display:none;}
.hero-logo{max-width:440px;}

.quick-list li{padding-left:46px;}
.quick-list li::before{display:none;}
.quick-list .qi{position:absolute; left:2px; top:50%; width:26px; height:26px; margin-top:-13px; fill:none; stroke:var(--gold); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}

.chip{display:inline-block; font-size:0.78rem; font-weight:600; padding:4px 12px; border-radius:999px; background:rgba(233,113,11,0.18); color:#F4B979; margin:0 0 10px;}

#tour .tour-list{display:grid !important; grid-template-columns:1fr 1fr; gap:44px 36px;}
#tour .stop{display:block !important; border:0 !important; padding:0 !important; margin:0 !important;}
#tour .stop-num{display:none !important;}
#tour .stop-body{display:flex !important; flex-direction:column !important; gap:20px; padding:0 !important; margin:0 !important;}
#tour .stop-media{order:-1 !important; width:100% !important; margin:0 !important;}
#tour .stop-text{max-width:none !important;}
#tour .tour-list::before,#tour .tour-list::after{display:none !important;}
@media (max-width:800px){ #tour .tour-list{grid-template-columns:1fr; gap:36px;} }

.stay-card-photo{position:relative;}
.vbadge{position:absolute; left:12px; top:12px; z-index:5; background:rgba(15,24,19,0.88); color:#fff; font-size:0.72rem; font-weight:600; letter-spacing:0.03em; padding:6px 12px; border-radius:999px;}
.stay-card > .incl{border-top:0; padding-top:0;}
.stay-card .stay-more{margin:12px 26px 0; border-top:1px solid rgba(31,58,43,0.16); padding-top:12px; font-size:0.83rem; color:var(--cream-dim);}
.stay-card .stay-more summary{cursor:pointer; font-weight:600; color:var(--cream); list-style:none;}
.stay-card .stay-more summary::-webkit-details-marker{display:none;}
.stay-card .stay-more summary::after{content:""; display:inline-block; width:0.42em; height:0.42em; margin-left:0.55em; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); vertical-align:0.12em;}
.stay-card .stay-more[open] summary::after{transform:rotate(-135deg); vertical-align:-0.05em;}
.stay-card .stay-more span{display:block; margin-top:6px;}

.map-card .contact-photos{height:auto;}
.open-chip{display:inline-block; margin-left:8px; font-style:normal; font-size:0.74rem; font-weight:700; padding:3px 10px; border-radius:999px;}
.open-chip:empty{display:none;}
.open-chip.is-open{background:#E3F1E1; color:#1E6B34;}
.open-chip.is-closed{background:#F5E3DC; color:#8A3A1A;}

.m-bar{display:none;}
@media (max-width:900px){
  .m-bar{position:fixed; left:0; right:0; bottom:0; z-index:90; display:flex; gap:8px; padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px)); background:rgba(15,24,19,0.96); border-top:1px solid rgba(244,185,121,0.3);}
  .m-bar a{flex:1; text-align:center; padding:13px 6px; font-size:0.8rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; border-radius:2px; text-decoration:none;}
  .m-bar .mb-wa{background:#25D366; color:#052E12;}
  .m-bar .mb-call{border:1px solid #D8D0BA; color:#FAF6EC;}
  .m-bar .mb-book{background:#E9710B; color:#1A0F05;}
  body{padding-bottom:72px;}
  .cc-bar{bottom:80px !important;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto !important;}
  .pcar-track{scroll-behavior:auto !important;}
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}
.choose-body .chip{align-self:flex-start;}


/* =====================================================================
   Audit fixes: Apple/Safari robustness, icons without text glyphs,
   mobile navigation by class, accessibility
   ===================================================================== */
html{-webkit-text-size-adjust:100%; text-size-adjust:100%;}

/* icons drawn with SVG/CSS instead of Unicode glyphs (identical on every OS) */
.pcar-arrow{display:flex; align-items:center; justify-content:center; padding:0; line-height:0;}
.pcar-arrow svg{width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round;}
.back-link::before{content:""; display:inline-block; width:1em; height:1em; margin-right:0.55em; vertical-align:-0.12em; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E") center/contain no-repeat;}
.open-chip::before{content:""; display:inline-block; width:0.55em; height:0.55em; margin-right:0.45em; border-radius:50%; background:currentColor; vertical-align:0.04em;}

/* Safari: rounded corners must clip scrolling carousels and shadows */
.pcar,.stop-media,.menu-teaser-media,.act-photos,.group-photo,.choose-card,.price-card.stay-card,.map-card{isolation:isolate;}

/* iOS: viewport units that follow the visible area */
@supports (min-height:100svh){ .hero{min-height:min(88svh,860px);} }

/* phone link */
.tel{color:inherit; text-decoration:none; white-space:nowrap;}
.tel:hover{text-decoration:underline;}

/* mobile navigation is class based (survives rotate/resize) */
@media (max-width:900px){
  nav.links.nav-open{display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; background:rgba(23,31,26,0.98); padding:22px 24px; gap:18px; border-bottom:1px solid var(--forest-line-soft);}
}
.pcar-track:focus-visible{outline:2px solid #F4B979; outline-offset:-3px;}

/* =====================================================================
   About: photo collage, rotating seal, feature tiles
   ===================================================================== */
.about-grid2{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:72px; align-items:center;}
.about-photos{position:relative; height:580px;}
.ap{position:absolute; overflow:hidden; box-shadow:var(--shadow); isolation:isolate;}
.ap img{width:100%; height:100%; object-fit:cover; display:block;}
.ap-a{left:0; top:0; width:80%; height:490px; border-radius:var(--leaf-xl) 0 var(--leaf-xl) 0;}
.ap-b{right:0; bottom:0; width:50%; height:290px; border-radius:0 var(--leaf) 0 var(--leaf); border:6px solid var(--forest-0);}
.about-badge{position:absolute; left:calc(38% - 66px); bottom:6px; width:132px; height:132px; border-radius:50%; background:var(--forest-1); box-shadow:0 10px 30px rgba(0,0,0,0.35); display:flex; align-items:center; justify-content:center;}
.badge-ring{position:absolute; inset:0; width:100%; height:100%; animation:badge-spin 28s linear infinite;}
.badge-ring text{font-family:'Work Sans',sans-serif; font-size:11.5px; font-weight:700; fill:#F4B979;}
.badge-logo{position:relative; width:54px; height:54px; border-radius:50%;}
@keyframes badge-spin{to{transform:rotate(360deg);}}

.about-text .lede{margin-top:6px;}
.feat-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:30px;}
.feat{display:flex; align-items:center; padding:14px 16px; border:1px solid var(--forest-line-soft); border-radius:var(--leaf-s) 0 var(--leaf-s) 0; background:rgba(255,255,255,0.03); color:inherit; text-decoration:none; transition:transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;}
.feat:hover,.feat:focus-visible{transform:translateY(-3px); border-color:var(--gold); background:rgba(244,185,121,0.08);}
.feat-ic{flex:0 0 48px; width:48px; height:48px; margin-right:14px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(233,113,11,0.16);}
.feat-ic svg{width:26px; height:26px; fill:none; stroke:#F4B979; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}
.feat-tx{min-width:0;}
.feat-t{display:block; font-family:'Playfair Display',serif; font-weight:600; font-size:1.05rem; line-height:1.25; color:var(--cream);}
.feat-s{display:block; margin-top:3px; font-size:0.82rem; line-height:1.35; color:var(--cream-dim);}

.is-pending{opacity:0; transform:translateY(16px);}
.is-pending.is-in{opacity:1; transform:none; transition:opacity 0.7s ease var(--d,0ms), transform 0.7s ease var(--d,0ms);}

@media (max-width:900px){
  .about-grid2{grid-template-columns:1fr; gap:36px;}
  .about-photos{height:430px; max-width:520px; margin:0 auto; width:100%;}
  .ap-a{height:350px;}
  .ap-b{height:200px;}
  .about-badge{width:104px; height:104px; left:calc(38% - 52px);}
  .badge-logo{width:42px; height:42px;}
}
@media (max-width:560px){ .feat-grid{grid-template-columns:1fr;} }

/* =====================================================================
   v4 — Buttons & toggles (pill shapes, motion), Plan Your Visit block
   ===================================================================== */
:root{ --ease:cubic-bezier(.2,.8,.2,1); --btn-a:#EBDCC0; --btn-b:#DCC5A1; --btn-ink:#2B2112; }

/* base button */
.btn{
  position:relative; overflow:hidden; isolation:isolate;
  border-radius:999px; padding:13px 28px; min-height:46px;
  letter-spacing:0.05em; gap:10px;
  transition:transform .28s var(--ease), box-shadow .28s var(--ease), background-color .25s, border-color .25s, color .25s;
  -webkit-tap-highlight-color:transparent;
}
.btn::after{ /* light sweep */
  content:""; position:absolute; top:0; bottom:0; left:-70%; width:50%; z-index:-1;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent);
  transform:skewX(-20deg); transition:left .6s var(--ease); pointer-events:none;
}
.btn:hover::after{ left:130%; }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0) scale(.97); transition-duration:.08s; }
.btn .i{ width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s var(--ease); }
.btn:hover .i{ transform:translateX(3px); }
.btn.pv-wa:hover .i,.btn-outline:hover .i{ transform:scale(1.12) rotate(-6deg); }

/* primary (dark sections): sunrise gradient */
.btn-gold{
  background:linear-gradient(135deg,var(--btn-a),var(--btn-b)); border-color:transparent; color:var(--btn-ink);
  box-shadow:0 8px 22px -8px rgba(220,197,161,.65), inset 0 1px 0 rgba(255,255,255,.35);
}
.btn-gold:hover{ background:linear-gradient(135deg,#F0E4CC,#CDB488); border-color:transparent; color:var(--btn-ink); box-shadow:0 14px 28px -10px rgba(220,197,161,.8), inset 0 1px 0 rgba(255,255,255,.45); }
/* secondary: glass pill */
.btn-outline{
  background:rgba(255,255,255,.05); border-color:rgba(239,210,155,.45); color:var(--cream);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
}
.btn-outline:hover{ background:rgba(239,210,155,.16); border-color:var(--gold-light); color:#fff; box-shadow:0 10px 24px -12px rgba(0,0,0,.6); }
.btn-outline::after{ background:linear-gradient(100deg, transparent, rgba(239,210,155,.35), transparent); }
.btn-sm{ padding:10px 20px; min-height:42px; }

/* light sections */
#stay .btn-gold, #contact .btn-gold{ background:linear-gradient(135deg,#4C7D54,#3E6B45); border-color:transparent; color:#fff; box-shadow:0 10px 24px -10px rgba(31,58,43,.7), inset 0 1px 0 rgba(255,255,255,.22); }
#stay .btn-gold:hover, #contact .btn-gold:hover{ background:linear-gradient(135deg,#4C7D54,#3E6B45); border-color:transparent; color:#fff; box-shadow:0 16px 30px -12px rgba(31,58,43,.8); }
#stay .btn-outline, #contact .btn-outline{ background:rgba(255,255,255,.7); border-color:rgba(31,58,43,.4); color:#1F3A2B; }
#stay .btn-outline:hover, #contact .btn-outline:hover{ background:#1F3A2B; border-color:#1F3A2B; color:#F8F2E4; box-shadow:0 12px 26px -12px rgba(31,58,43,.7); }
#stay .btn-outline::after,#contact .btn-outline::after{ background:linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent); }

/* language toggle: sliding thumb */
.lang-switch{ position:relative; padding:3px; border-radius:999px; overflow:visible; background:rgba(255,255,255,.06); border-color:rgba(239,210,155,.4); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.lang-switch::before{ content:""; position:absolute; top:3px; bottom:3px; left:3px; width:calc(50% - 3px); border-radius:999px; background:linear-gradient(135deg,var(--btn-a),var(--btn-b)); box-shadow:0 4px 12px -3px rgba(220,197,161,.7); transition:transform .38s var(--ease); }
.lang-switch[data-lang="id"]::before{ transform:translateX(100%); }
.lang-switch button{ position:relative; z-index:1; flex:1 1 0; min-width:44px; min-height:34px; border-radius:999px; padding:8px 14px; transition:color .25s, transform .15s; }
.lang-switch button.active{ background:transparent; color:var(--btn-ink); }
.lang-switch button:not(.active):hover{ color:#fff; }
.lang-switch button:active{ transform:scale(.92); }
.lang-switch-hero button{ min-height:42px; padding:11px 20px; }
@media (max-width:640px){ .lang-switch button{ padding:7px 11px; min-height:34px; } .lang-switch-hero button{ padding:10px 18px; } }

/* burger */
@media (max-width:900px){
  .navburger{ display:inline-flex; align-items:center; gap:10px; border-radius:999px; padding:10px 18px 10px 14px; min-height:44px; background:rgba(255,255,255,.06); border:1px solid rgba(239,210,155,.45); font-weight:600; letter-spacing:.08em; transition:background .25s, border-color .25s, transform .15s; }
  .navburger:hover{ background:rgba(239,210,155,.16); border-color:var(--gold-light); }
  .navburger:active{ transform:scale(.95); }
  .navburger .bb{ position:relative; width:18px; height:14px; display:inline-block; }
  .navburger .bb i{ position:absolute; left:0; right:0; height:2px; border-radius:2px; background:var(--gold-light); transition:transform .35s var(--ease), opacity .2s, top .35s var(--ease); }
  .navburger .bb i:nth-child(1){ top:0; } .navburger .bb i:nth-child(2){ top:6px; } .navburger .bb i:nth-child(3){ top:12px; }
  .navburger[aria-expanded="true"] .bb i:nth-child(1){ top:6px; transform:rotate(45deg); }
  .navburger[aria-expanded="true"] .bb i:nth-child(2){ opacity:0; }
  .navburger[aria-expanded="true"] .bb i:nth-child(3){ top:6px; transform:rotate(-45deg); }
  nav.links.nav-open{ border-radius:0 0 28px 28px; box-shadow:0 24px 40px -20px rgba(0,0,0,.6); animation:navIn .35s var(--ease); }
  nav.links.nav-open a:not(.btn){ padding:6px 2px; }
  nav.links.nav-open .btn{ align-self:flex-start; }
}
@keyframes navIn{ from{ opacity:0; transform:translateY(-8px); } to{ opacity:1; transform:none; } }
nav.links a:not(.btn){ position:relative; }
nav.links a:not(.btn)::after{ content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px; border-radius:2px; background:var(--gold-light); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
nav.links a:not(.btn):hover::after{ transform:scaleX(1); }
nav.links .btn{ padding:10px 22px; min-height:42px; }

/* carousel arrows + dots */
.pcar-arrow{ width:40px; height:40px; background:rgba(255,255,255,.88); color:#1F3A2B; border:1px solid rgba(255,255,255,.6); box-shadow:0 6px 16px -6px rgba(0,0,0,.55); transition:transform .25s var(--ease), background .2s, color .2s, box-shadow .2s; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.pcar-arrow:hover{ background:#DCC5A1; color:#2B2112; transform:translateY(-50%) scale(1.1); box-shadow:0 10px 22px -8px rgba(220,197,161,.8); }
.pcar-arrow:active{ transform:translateY(-50%) scale(.92); }
.pcar-dot{ width:7px; height:7px; transition:width .3s var(--ease), background .2s, transform .2s; border-radius:999px; }
.pcar-dot.active{ width:20px; transform:none; background:#EBDCC0; }

/* tabs & chips */
.menu-tabs button,.dine-nav a{ border-radius:999px; transition:transform .25s var(--ease), background .25s, color .25s, border-color .25s, box-shadow .25s; }
.menu-tabs button:hover,.dine-nav a:hover{ transform:translateY(-2px); }
.menu-tabs button:active,.dine-nav a:active{ transform:scale(.96); }
.menu-tabs button.active{ background:linear-gradient(135deg,var(--btn-a),var(--btn-b)); border-color:transparent; color:var(--btn-ink); box-shadow:0 8px 18px -8px rgba(220,197,161,.8); }
.dine-nav a:hover{ background:linear-gradient(135deg,var(--btn-a),var(--btn-b)); border-color:transparent; color:var(--btn-ink); }
.back-link{ display:inline-flex; align-items:center; padding:9px 18px 9px 14px; border:1px solid var(--forest-line); border-radius:999px; background:rgba(255,255,255,.05); transition:transform .25s var(--ease), background .25s, color .25s, border-color .25s; }
.back-link:hover{ transform:translateX(-3px); border-color:var(--gold-light); background:rgba(239,210,155,.12); }

/* cookie buttons */
.cc-bar{ border-radius:24px; box-shadow:0 20px 40px -16px rgba(0,0,0,.7); }
.cc-btns button{ border-radius:999px; min-height:42px; padding:10px 20px; transition:transform .2s var(--ease), background .2s, box-shadow .2s, color .2s; }
.cc-btns button:hover{ transform:translateY(-2px); background:rgba(239,210,155,.16); }
.cc-btns .cc-yes{ background:linear-gradient(135deg,var(--btn-a),var(--btn-b)); border-color:transparent; color:var(--btn-ink); box-shadow:0 8px 18px -8px rgba(220,197,161,.8); }
.cc-btns .cc-yes:hover{ background:linear-gradient(135deg,#F0E4CC,#CDB488); }
.cc-btns button:active{ transform:scale(.95); }

/* mobile action bar */
@media (max-width:900px){
  .m-bar{ gap:8px; padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px)); border-radius:24px 24px 0 0; box-shadow:0 -14px 30px -14px rgba(0,0,0,.6); }
  .m-bar a{ border-radius:999px; min-height:46px; display:flex; align-items:center; justify-content:center; transition:transform .15s, filter .2s; }
  .m-bar a:active{ transform:scale(.95); filter:brightness(.92); }
  .m-bar .mb-book{ background:linear-gradient(135deg,var(--btn-a),var(--btn-b)); flex:1.3; }
  .m-bar .mb-call{ background:rgba(255,255,255,.08); }
}
/* feature tiles (About) */
.feat{ border-radius:var(--leaf-s) 0 var(--leaf-s) 0; transition:transform .3s var(--ease), border-color .25s, background .25s, box-shadow .3s; }
.feat:hover,.feat:focus-visible{ box-shadow:0 14px 28px -16px rgba(0,0,0,.7); }
.feat:active{ transform:scale(.98); }

/* ---------- Plan Your Visit ---------- */
.pv .pv-grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:56px; align-items:start; position:relative; z-index:2; }
@media (max-width:900px){ .pv .pv-grid{ grid-template-columns:1fr; gap:36px; } }
.pv svg.i{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }

.ticket{ position:relative; background:#fff; border:1px solid rgba(31,58,43,.14); border-radius:var(--leaf) 0 var(--leaf) 0; box-shadow:0 22px 44px -26px rgba(31,58,43,.55); }
.ticket-top{ position:relative; padding:34px 32px 28px; color:#F8F2E4; background:radial-gradient(120% 140% at 100% 0%, #3C6A52 0%, #254636 45%, #1B3226 100%); border-radius:calc(var(--leaf) - 1px) 0 0 0; overflow:hidden; }
.ticket-top::before{ content:""; position:absolute; right:-40px; top:-40px; width:180px; height:180px; border-radius:50%; background:radial-gradient(circle, rgba(235,220,192,.28), transparent 65%); }
.ticket-top h3{ color:#F8F2E4 !important; font-size:1.7rem; margin:0 0 8px; position:relative; }
.ticket-top .visit-lead{ color:rgba(248,242,228,.82); margin:0 0 22px; max-width:420px; position:relative; }
.t-badge{ width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(235,220,192,.18); color:#F0E4CC; margin-bottom:16px; position:relative; }
.t-price{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; position:relative; }
.t-lbl{ font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; color:rgba(248,242,228,.78); font-weight:600; max-width:12em; line-height:1.35; }
.t-amt{ font-family:'Playfair Display',serif; font-weight:700; font-size:2.5rem; line-height:1; color:#F3D58E; white-space:nowrap; }
.ticket-perf{ position:relative; height:0; margin:0; }
.ticket-perf::before{ content:""; position:absolute; left:22px; right:22px; top:-1px; border-top:2px dashed rgba(31,58,43,.28); }
.ticket-perf::after{ content:""; position:absolute; left:-15px; right:-15px; top:-15px; height:30px; pointer-events:none;
  background:radial-gradient(circle at 0 50%, var(--forest-0) 0 14px, transparent 14.5px), radial-gradient(circle at 100% 50%, var(--forest-0) 0 14px, transparent 14.5px); }
.ticket-bottom{ padding:24px 32px 26px; border-radius:0 0 var(--leaf) 0; }
.pv-notes{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.pv-notes li{ display:flex; gap:12px; align-items:flex-start; font-size:.93rem; line-height:1.55; color:#4A463E; }
.pv-notes .n-ic{ width:24px; height:24px; border-radius:50%; background:rgba(46,125,83,.14); color:#3E6B45; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; margin-top:1px; }
.pv-notes .n-ic svg.i{ width:14px; height:14px; stroke-width:2.6; }
.pv-notes-soft{ margin-top:22px; }

.pv-sub{ margin:40px 0 16px; display:flex; align-items:center; gap:16px; }
.pv-sub h3{ font-size:1.35rem; margin:0; white-space:nowrap; }
.pv-sub::after{ content:""; flex:1; height:2px; border-radius:2px; background:repeating-linear-gradient(90deg, rgba(31,58,43,.25) 0 6px, transparent 6px 12px); }
.rent-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.rent{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; padding:20px 12px 18px; background:#fff; border:1px solid rgba(31,58,43,.14); border-radius:var(--leaf-s) 0 var(--leaf-s) 0; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .25s; }
.rent:hover{ transform:translateY(-4px); box-shadow:0 18px 30px -18px rgba(31,58,43,.55); border-color:rgba(62,107,69,.5); }
.rent-ic{ width:50px; height:50px; border-radius:50%; background:linear-gradient(135deg,#F5ECDA,#F0E4CC); color:#5A4524; display:flex; align-items:center; justify-content:center; margin-bottom:6px; transition:transform .4s var(--ease); }
.rent:hover .rent-ic{ transform:rotate(-8deg) scale(1.08); }
.rent-n{ font-weight:600; color:#1F3A2B; font-size:.95rem; }
.rent-p{ font-family:'Playfair Display',serif; font-weight:700; color:#3E6B45; font-size:1.12rem; white-space:nowrap; }
@media (max-width:560px){
  .rent-grid{ grid-template-columns:1fr; gap:10px; }
  .rent{ flex-direction:row; text-align:left; padding:14px 18px; gap:14px; }
  .rent-ic{ margin:0; width:44px; height:44px; }
  .rent-n{ flex:1; }
  .ticket-top{ padding:28px 22px 24px; } .ticket-bottom{ padding:22px 22px 24px; }
  .t-amt{ font-size:2.1rem; }
}

.pv-card{ background:#fff; border:1px solid rgba(31,58,43,.14); border-radius:0 var(--leaf) 0 var(--leaf); padding:14px 14px 26px; box-shadow:0 22px 44px -26px rgba(31,58,43,.55); }
.pv-photos{ position:relative; display:grid; grid-template-columns:1.15fr 1fr; grid-template-rows:1fr 1fr; gap:8px; height:380px; }
.pvp{ position:relative; overflow:hidden; background:#E7DDC4; }
.pvp img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s var(--ease); }
.pv-card:hover .pvp img{ transform:scale(1.05); }
.pvp-a{ grid-row:1 / 3; border-radius:var(--leaf) 8px 8px 8px; }
.pvp-b{ border-radius:8px var(--leaf-s) 8px 8px; }
.pvp-c{ border-radius:8px 8px var(--leaf-s) 8px; }
.pv-chip{ position:absolute; left:12px; bottom:12px; display:inline-flex; align-items:center; gap:8px; padding:8px 14px 8px 10px; border-radius:999px; background:rgba(255,255,255,.92); color:#1F3A2B; font-size:.78rem; font-weight:600; box-shadow:0 8px 18px -8px rgba(0,0,0,.5); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); max-width:calc(55% - 20px); line-height:1.25; }
.pv-chip svg.i{ width:18px; height:18px; color:#3E6B45; }
.pv-info{ list-style:none; margin:20px 14px 0; padding:0; }
.pv-info li{ display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-top:1px solid rgba(31,58,43,.12); }
.pv-info li:first-child{ border-top:none; }
.r-ic{ width:42px; height:42px; border-radius:50%; background:rgba(62,107,69,.1); color:#3E6B45; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.r-tx{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.r-tx b{ font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:#3E6B45; font-weight:600; font-family:'Work Sans',sans-serif; }
.r-v{ color:#1F3A2B; overflow-wrap:anywhere; line-height:1.5; }
.r-v a.tel{ color:#1F3A2B; text-decoration:none; border-bottom:2px solid rgba(62,107,69,.35); font-weight:600; transition:border-color .2s, color .2s; }
.r-v a.tel:hover{ border-color:#3E6B45; color:#3E6B45; }
.pv-actions{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:10px 14px 0; }
.pv-actions .btn{ width:100%; padding-left:14px; padding-right:14px; white-space:normal; text-align:center; }
.pv-actions .pv-primary{ grid-column:1 / -1; min-height:52px; font-size:.86rem; }
.pv-actions .pv-wa .i{ color:#3E6B45; } .pv-actions .pv-wa:hover .i{ color:#8EE3B0; }
@media (max-width:420px){ .pv-actions{ grid-template-columns:1fr; } .pv-photos{ height:320px; } .pv-chip{ max-width:calc(100% - 24px); } }
#contact .open-chip{ vertical-align:middle; }

@media (prefers-reduced-motion: reduce){
  .btn,.btn::after,.btn .i,.lang-switch::before,.pcar-arrow,.pcar-dot,.rent,.rent-ic,.pvp img,.navburger .bb i,nav.links a::after,.menu-tabs button,.back-link,.feat,.m-bar a,.cc-btns button{ transition:none !important; animation:none !important; }
  .btn:hover,.rent:hover,.feat:hover{ transform:none; }
  nav.links.nav-open{ animation:none; }
}


/* v4.1 palette: jade/mint buttons, emerald accents in light sections */
#stay.tone-2,#contact.tone-0{ --gold:#3E6B45; --gold-light:#3E6B45; --marigold:#3E6B45; }
.m-bar .mb-book{ color:#2B2112; }
.menu-tabs button.active,.dine-nav a:hover{ color:#2B2112; }
.pcar-arrow:hover{ color:#2B2112; }
.ticket-top::before{ background:radial-gradient(circle, rgba(235,220,192,.28), transparent 65%); }
.t-badge{ background:rgba(235,220,192,.18); color:#F0E4CC; }
.pv-actions .pv-wa .i{ color:#3E6B45; }
.btn-pulse{ animation:halo 2.8s ease-out infinite; }
@keyframes halo{ 0%{ box-shadow:0 8px 22px -8px rgba(220,197,161,.65), 0 0 0 0 rgba(235,220,192,.55);} 70%{ box-shadow:0 8px 22px -8px rgba(220,197,161,.65), 0 0 0 16px rgba(235,220,192,0);} 100%{ box-shadow:0 8px 22px -8px rgba(220,197,161,.65), 0 0 0 0 rgba(235,220,192,0);} }

/* ---------- Invitation block ---------- */
section.final-block{ position:relative; overflow:hidden; padding:96px 0 84px; background:linear-gradient(rgba(16,32,24,.82),rgba(16,32,24,.92)), url(../img/home/home-01-mountain-river-running-along-the-edge-of-the.webp) center/cover; }
.final-inner{ max-width:680px; }
.final-inner .eyebrow{ justify-content:center; }
.final-inner h2{ font-size:clamp(2.2rem,5vw,3.4rem); }
.final-inner .desc{ color:rgba(248,242,228,.85); }
.inv-grid{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:44px auto 0; max-width:1000px; text-align:left; }
.inv{ display:flex; flex-direction:column; gap:10px; padding:28px 24px 24px; background:rgba(255,255,255,.07); border:1px solid rgba(220,197,161,.28); border-radius:var(--leaf-s) 0 var(--leaf-s) 0; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); transition:transform .35s var(--ease), border-color .3s, background .3s, box-shadow .35s; }
.inv:hover{ transform:translateY(-8px); background:rgba(255,255,255,.12); border-color:#EBDCC0; box-shadow:0 26px 40px -24px rgba(0,0,0,.8); }
.inv-ic{ width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#EBDCC0,#DCC5A1); color:#2B2112; margin-bottom:6px; transition:transform .5s var(--ease); }
.inv:hover .inv-ic{ transform:rotate(-10deg) scale(1.1); }
.inv .i{ fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.inv h3{ font-size:1.35rem; margin:0; }
.inv p{ margin:0 0 14px; color:rgba(248,242,228,.82); font-size:.95rem; flex:1; }
.inv .btn{ align-self:flex-start; }
.plan-foot{ position:relative; z-index:2; margin-top:34px; display:flex; gap:16px; align-items:center; justify-content:center; flex-wrap:wrap; color:rgba(248,242,228,.85); }
.plan-hours{ display:inline-flex; align-items:center; gap:10px; padding:9px 18px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(220,197,161,.28); }
.plan-leaves{ position:absolute; inset:0; pointer-events:none; z-index:1; }
.lf{ position:absolute; top:-40px; width:18px; height:30px; background:linear-gradient(135deg,rgba(235,220,192,.55),rgba(220,197,161,.25)); border-radius:100% 0 100% 0; animation:fall 14s linear infinite; }
.lf1{ left:8%; animation-duration:15s; } .lf2{ left:22%; animation-duration:19s; animation-delay:-6s; width:14px; height:24px; }
.lf3{ left:41%; animation-duration:16s; animation-delay:-10s; } .lf4{ left:63%; animation-duration:21s; animation-delay:-3s; width:12px; height:20px; }
.lf5{ left:79%; animation-duration:17s; animation-delay:-12s; } .lf6{ left:92%; animation-duration:23s; animation-delay:-8s; width:14px; height:24px; }
@keyframes fall{ 0%{ transform:translate(0,0) rotate(0); opacity:0; } 10%{ opacity:1; } 50%{ transform:translate(40px,260px) rotate(160deg); } 100%{ transform:translate(-20px,560px) rotate(340deg); opacity:0; } }
@media (max-width:860px){ .inv-grid{ grid-template-columns:1fr; max-width:480px; } .inv .btn{ align-self:stretch; } }
@media (prefers-reduced-motion: reduce){ .lf,.btn-pulse{ animation:none !important; } .lf{ display:none; } .inv,.inv-ic{ transition:none !important; } }

.pv-actions .btn:last-child{grid-column:1 / -1}
.plan-hours .open-chip{margin:0}

/* v5 palette: golden beige #DCC5A1 */
#stay .btn-gold,#contact .btn-gold,#stay .btn-gold:hover,#contact .btn-gold:hover{ color:#DCC5A1; }
.btn-gold{ box-shadow:0 8px 22px -8px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.5); }
.t-badge{ color:#DCC5A1; }

/* v6: forest green #3E6B45 on light sections */
#stay.tone-2,#contact.tone-0{ --gold:#3E6B45; --gold-light:#3E6B45; --marigold:#3E6B45; }
#stay h2,#stay h3,#contact h2,#contact h3,#stay .section-head h2,#contact .section-head h2{ color:#3E6B45; }
#contact .ticket-top h3{ color:#F8F2E4 !important; }
#stay .btn-gold,#contact .btn-gold,#stay .btn-gold:hover,#contact .btn-gold:hover{ color:#fff; }
#stay .btn-gold,#contact .btn-gold{ background:linear-gradient(135deg,#4C7D54,#3E6B45); box-shadow:0 10px 24px -10px rgba(62,107,69,.75), inset 0 1px 0 rgba(255,255,255,.25); }
#stay .btn-gold:hover,#contact .btn-gold:hover{ background:linear-gradient(135deg,#5A8C62,#477A4F); }
#stay .btn-outline,#contact .btn-outline{ border-color:rgba(62,107,69,.55); color:#3E6B45; }
#stay .btn-outline:hover,#contact .btn-outline:hover{ background:#3E6B45; border-color:#3E6B45; color:#fff; }
.pv-notes .n-ic{ color:#3E6B45; background:rgba(62,107,69,.14); }

/* ---------- zoomable photos + lightbox ---------- */
.zoom{ position:relative; display:block; width:100%; height:100%; padding:0; margin:0; border:0; background:none; cursor:zoom-in; overflow:hidden; font:inherit; color:inherit; }
.zoom img{ width:100%; height:200px; object-fit:cover; object-position:center 66%; display:block; transition:transform .8s var(--ease); }
.zoom:hover img,.zoom:focus-visible img{ transform:scale(1.07); }
.zoom::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(10,20,14,.45)); pointer-events:none; opacity:.85; transition:opacity .3s; }
.zoom:hover::after{ opacity:1; }
.zoom-hint{ position:absolute; right:12px; bottom:12px; z-index:3; display:inline-flex; align-items:center; gap:7px; padding:8px 14px 8px 11px; border-radius:999px; background:rgba(255,255,255,.94); color:#1F3A2B; font-size:.76rem; font-weight:700; letter-spacing:.02em; line-height:1; box-shadow:0 8px 18px -8px rgba(0,0,0,.6); transition:transform .3s var(--ease), background .25s; }
.zoom-hint .i{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s var(--ease); }
.zoom-hint b{ display:inline-flex; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:#3E6B45; color:#fff; font-size:.7rem; align-items:center; justify-content:center; }
.zoom:hover .zoom-hint{ transform:translateY(-2px) scale(1.04); background:#DCC5A1; }
.zoom:hover .zoom-hint .i{ transform:scale(1.2); }
.zoom:active .zoom-hint{ transform:scale(.96); }
.zoom:focus-visible{ outline:3px solid #DCC5A1; outline-offset:-3px; }

.lb{ position:fixed; inset:0; z-index:400; display:none; flex-direction:column; background:rgba(8,16,11,.94); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.lb.open{ display:flex; animation:lbIn .3s var(--ease); }
@keyframes lbIn{ from{ opacity:0; } to{ opacity:1; } }
.lb-top{ display:flex; align-items:center; justify-content:space-between; padding:14px 18px; color:#F8F2E4; }
.lb-count{ font-size:.85rem; letter-spacing:.08em; font-weight:600; opacity:.85; }
.lb-stage{ position:relative; flex:1; min-height:0; display:flex; align-items:center; justify-content:center; padding:0 64px; touch-action:pan-y; }
.lb-img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:var(--leaf-s) 0 var(--leaf-s) 0; box-shadow:0 30px 60px -20px rgba(0,0,0,.8); animation:lbPhoto .35s var(--ease); }
@keyframes lbPhoto{ from{ opacity:0; transform:scale(.96); } to{ opacity:1; transform:none; } }
.lb-btn{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; border:1px solid rgba(220,197,161,.5); background:rgba(255,255,255,.08); color:#F8F2E4; cursor:pointer; padding:0; transition:transform .25s var(--ease), background .2s, color .2s, border-color .2s; }
.lb-btn:hover{ background:#DCC5A1; color:#2B2112; border-color:#DCC5A1; transform:scale(1.08); }
.lb-btn:active{ transform:scale(.92); }
.lb-btn svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.lb-prev,.lb-next{ position:absolute; top:50%; margin-top:-24px; z-index:2; }
.lb-prev{ left:8px; } .lb-next{ right:8px; }
.lb-cap{ text-align:center; color:rgba(248,242,228,.85); font-size:.9rem; padding:12px 20px 6px; min-height:2.2em; }
.lb-thumbs{ display:flex; gap:10px; justify-content:center; padding:8px 16px calc(16px + env(safe-area-inset-bottom,0px)); overflow-x:auto; }
.lb-th{ flex:0 0 auto; width:72px; height:54px; padding:0; border-radius:10px; overflow:hidden; border:2px solid transparent; opacity:.6; cursor:pointer; background:none; transition:opacity .2s, border-color .2s, transform .2s var(--ease); }
.lb-th img{ width:100%; height:100%; object-fit:cover; display:block; }
.lb-th:hover{ opacity:1; transform:translateY(-2px); }
.lb-th.on{ opacity:1; border-color:#DCC5A1; }
body.lb-lock{ overflow:hidden; }
@media (max-width:700px){ .lb-stage{ padding:0 8px; } .lb-prev,.lb-next{ top:auto; bottom:12px; margin:0; } .lb-prev{ left:12px; } .lb-next{ right:12px; } .lb-img{ border-radius:var(--leaf-s) 0 var(--leaf-s) 0; } .lb-th{ width:56px; height:44px; } }
@media (prefers-reduced-motion: reduce){ .lb.open,.lb-img{ animation:none; } .zoom img,.zoom-hint,.lb-btn,.lb-th{ transition:none !important; } }

.pvp-a img{object-position:22% 50%}
.pvp-a img{object-position:36% 50%}

/* =====================================================================
   v12 — light rhythm, hero, reviews, video, FAQ, carousel zoom
   ===================================================================== */
/* generic light section (same look as Stay / Plan Your Visit) */
section.light{
  --forest-0:#F8F2E4; --forest-1:#F0E8D3; --forest-2:#FFFFFF; --forest-3:#E7DDC4;
  --forest-line:rgba(31,58,43,0.30); --forest-line-soft:rgba(31,58,43,0.16);
  --cream:#1F3A2B; --cream-dim:#4A463E; --cream-faint:rgba(31,58,43,0.72);
  --gold:#3E6B45; --gold-light:#3E6B45; --marigold:#3E6B45;
  --shadow-soft:0 14px 34px rgba(31,58,43,0.14);
  background:#F8F2E4; color:#1F3A2B;
}
section.light#choose{ background:#F3EBD7; }
section.light .flourish{ opacity:.22; }
section.light h2,section.light h3{ color:#3E6B45; text-shadow:none; }
section.light .desc,section.light p{ color:#4A463E; }
section.light .btn-gold{ background:linear-gradient(135deg,#4C7D54,#3E6B45); border-color:transparent; color:#fff; box-shadow:0 10px 24px -10px rgba(62,107,69,.75), inset 0 1px 0 rgba(255,255,255,.25); }
section.light .btn-gold:hover{ background:linear-gradient(135deg,#5A8C62,#477A4F); color:#fff; }
section.light .btn-outline{ background:rgba(255,255,255,.7); border-color:rgba(62,107,69,.55); color:#3E6B45; }
section.light .btn-outline:hover{ background:#3E6B45; border-color:#3E6B45; color:#fff; }
section.light .btn-outline::after{ background:linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent); }
section.light .choose-card{ background:#fff; border-color:rgba(31,58,43,.14); box-shadow:0 18px 36px -24px rgba(31,58,43,.5); }
section.light .choose-card h3{ color:#1F3A2B; }
section.light .choose-card p{ color:#4A463E; }
section.light .chip{ background:rgba(62,107,69,.12); color:#2F5A37; }
section.light .act-list li{ border-color:rgba(31,58,43,.16); }
section.light .act-list .t{ color:#1F3A2B; }
section.light .act-list .d{ color:#4A463E; }
section.light .act-list .p{ color:#3E6B45; }
section.light .act-list .unit{ color:#4A463E; }
section.light .act-note a,section.light a:not(.btn){ color:#3E6B45; }
section.light .eyebrow{ color:#3E6B45; }
section.light .eyebrow::before{ background:#3E6B45; }

/* hero: lighter scrim, price line */
.hero{ background:radial-gradient(ellipse 62% 58% at 50% 52%, rgba(10,18,13,.58), rgba(10,18,13,0) 72%), linear-gradient(180deg,rgba(12,22,16,.22) 0%,rgba(12,22,16,.62) 100%), url(../img/home/home-01-mountain-river-running-along-the-edge-of-the.webp) center/cover no-repeat; }
@media (min-width:901px){ .hero-logo{ display:none; } .hero-logo-wrap{ margin:0; } }
.hero-meta{ gap:22px; flex-wrap:wrap; justify-content:center; }

/* carousel zoom button */
.pcar .zoom-btn{ position:absolute; right:12px; top:12px; bottom:auto; z-index:6; border:0; cursor:pointer; font-family:inherit; }
.pcar .zoom-btn:hover{ transform:translateY(-2px) scale(1.04); background:#DCC5A1; }
.pcar .zoom-hint b{ display:inline-flex; }
.pcar-track img.zoomable{ cursor:zoom-in; }

/* reviews */
.rv-grid{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:48px; align-items:center; }
.rv-video{ position:relative; width:100%; max-width:380px; margin:0 auto; aspect-ratio:9/16; max-height:600px; border-radius:var(--leaf-xl) 8px var(--leaf-xl) 8px; overflow:hidden; background:#1F3A2B; box-shadow:0 30px 50px -28px rgba(31,58,43,.7); }
.rv-video video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.vtoggle{ position:absolute; right:14px; bottom:14px; z-index:3; width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.5); background:rgba(15,28,20,.55); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); transition:transform .25s var(--ease), background .2s; }
.vtoggle:hover{ background:#DCC5A1; color:#2B2112; transform:scale(1.1); }
.vtoggle svg{ fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.vtoggle .i-play{ display:none; }
.rv-video.is-paused .vtoggle .i-play{ display:block; fill:currentColor; }
.rv-video.is-paused .vtoggle .i-pause{ display:none; }
.rv-cap{ position:absolute; left:16px; bottom:18px; z-index:2; max-width:60%; color:#fff; font-size:.82rem; font-weight:600; letter-spacing:.03em; text-shadow:0 2px 10px rgba(0,0,0,.7); }
.rv-video::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,rgba(8,16,11,.55)); pointer-events:none; }
.rv-list{ display:grid; gap:18px; }
.rv-card{ margin:0; padding:24px 26px; background:#fff; border:1px solid rgba(31,58,43,.14); border-radius:var(--leaf-s) 0 var(--leaf-s) 0; box-shadow:0 18px 34px -26px rgba(31,58,43,.5); transition:transform .3s var(--ease), box-shadow .3s; position:relative; }
.rv-card:hover{ transform:translateY(-4px); box-shadow:0 24px 40px -24px rgba(31,58,43,.6); }
.rv-card::before{ content:"“"; position:absolute; right:22px; top:6px; font-family:'Playfair Display',serif; font-size:5rem; line-height:1; color:rgba(62,107,69,.14); pointer-events:none; }
.rv-card:nth-child(even){ margin-left:28px; }
.stars{ display:flex; gap:3px; margin-bottom:10px; }
.star{ fill:#D9A83A; }
.rv-card blockquote{ margin:0; font-family:'Playfair Display',serif; font-size:1.12rem; line-height:1.55; color:#1F3A2B; }
.rv-card figcaption{ margin-top:12px; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:#3E6B45; font-weight:600; }
.rv-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:10px; }
@media (max-width:900px){ .rv-grid{ grid-template-columns:1fr; gap:32px; } .rv-video{ max-width:320px; } .rv-card:nth-child(even){ margin-left:0; } }

/* video modal */
.vstage{ padding:0 16px 24px; }
.vstage video{ max-width:100%; max-height:100%; border-radius:var(--leaf-s) 0 var(--leaf-s) 0; background:#000; box-shadow:0 30px 60px -20px rgba(0,0,0,.8); }

/* FAQ */
#faq{ background:#233A2D; }
.faq-wrap{ max-width:860px; }
.faq-list{ display:grid; gap:12px; }
.faq-i{ background:rgba(255,255,255,.06); border:1px solid rgba(220,197,161,.28); border-radius:22px; overflow:hidden; transition:background .25s, border-color .25s; }
.faq-i[open]{ background:rgba(255,255,255,.1); border-color:rgba(220,197,161,.6); }
.faq-i summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; font-weight:600; color:#F8F2E4; min-height:56px; }
.faq-i summary::-webkit-details-marker{ display:none; }
.faq-i summary:hover{ color:#DCC5A1; }
.faq-i summary:focus-visible{ outline:3px solid #DCC5A1; outline-offset:-3px; border-radius:22px; }
.faq-x{ position:relative; flex:0 0 auto; width:30px; height:30px; border-radius:50%; background:rgba(220,197,161,.18); transition:transform .35s var(--ease), background .25s; }
.faq-x::before,.faq-x::after{ content:""; position:absolute; left:50%; top:50%; width:12px; height:2px; margin:-1px 0 0 -6px; background:#DCC5A1; border-radius:2px; transition:transform .35s var(--ease); }
.faq-x::after{ transform:rotate(90deg); }
.faq-i[open] .faq-x{ background:#DCC5A1; transform:rotate(180deg); }
.faq-i[open] .faq-x::before,.faq-i[open] .faq-x::after{ background:#2B2112; }
.faq-i[open] .faq-x::after{ transform:rotate(0); }
.faq-i p{ margin:0; padding:0 22px 20px; color:rgba(248,242,228,.86); line-height:1.65; max-width:70ch; }
.faq-cta{ margin-top:30px; text-align:center; }
@media (prefers-reduced-motion: reduce){ .faq-x,.faq-x::before,.faq-x::after,.rv-card,.vtoggle{ transition:none !important; } }

#reviews,#faq{ scroll-margin-top:72px; }
.stay-card-cta{display:flex;flex-direction:column;gap:10px}

/* =====================================================================
   v13 — final block on a clear photo, two-tone buttons, hours note
   ===================================================================== */
section.final-block{ background:url(../img/contact/contact-05-bali-temple-gate-in-the-mist.webp) center 25%/cover no-repeat; padding:72px 0 80px; }
section.final-block.light{ color:#1F3A2B; }
section.final-block .final-inner{ margin:0 auto; text-align:center; }
section.final-block .final-inner h2{ color:#1F3A2B; text-shadow:0 2px 18px rgba(255,255,255,.75); }
section.final-block .final-inner .eyebrow{ color:#1F3A2B; font-weight:700; text-shadow:0 1px 10px rgba(255,255,255,.8); }
section.final-block .final-inner .eyebrow::before{ background:#1F3A2B; }
section.final-block .final-inner .desc{ color:#1F3A2B; font-weight:500; text-shadow:0 1px 12px rgba(255,255,255,.85); }
section.final-block .inv-grid{ margin-top:clamp(180px,26vw,300px); }
section.final-block .inv{ background:rgba(255,255,255,.88); border:1px solid rgba(255,255,255,.7); box-shadow:0 24px 40px -24px rgba(20,40,28,.7); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
section.final-block .inv:hover{ background:#fff; border-color:#fff; box-shadow:0 30px 46px -24px rgba(20,40,28,.8); }
section.final-block .inv h3{ color:#1F3A2B; }
section.final-block .inv p{ color:#4A463E; }
section.final-block .inv-ic{ background:linear-gradient(135deg,#4C8A57,#3E6B45); color:#F4E4BC; }
section.final-block .plan-hours{ background:rgba(255,255,255,.88); color:#1F3A2B; border-color:rgba(255,255,255,.7); }
section.final-block .lf{ background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(220,197,161,.4)); }
@media (max-width:860px){ section.final-block .inv-grid{ margin-top:150px; } }

/* hours note */
.r-note{ font-size:.84rem; line-height:1.5; color:#4A463E; margin-top:2px; }

/* two-tone primary buttons: bright pill + contrasting arrow chip */
.btn-gold{ background:linear-gradient(135deg,#F7E9C4 0%,#DCC5A1 100%); }
.btn-gold:hover{ background:linear-gradient(135deg,#FFF1CF 0%,#E6D0A8 100%); }
.btn-gold:not(.btn-sm):not(.pv-primary):not(.btn-pulse-off){ padding-right:62px; }
.btn-gold:not(.btn-sm):not(.pv-primary)::before{
  content:""; position:absolute; right:7px; top:50%; width:34px; height:34px; margin-top:-17px; border-radius:50%; z-index:-0;
  background:#3E6B45 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23DCC5A1' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/18px no-repeat;
  box-shadow:0 4px 10px -3px rgba(31,58,43,.6); transition:transform .35s var(--ease), background-color .25s;
}
.btn-gold:not(.btn-sm):not(.pv-primary):hover::before{ transform:translateX(3px) scale(1.08); background-color:#2F5A37; }
nav.links .btn-gold::before, .m-bar .btn-gold::before{ display:none; }
nav.links .btn-gold{ padding-right:22px; }
section.light .btn-gold:not(.btn-sm):not(.pv-primary)::before,#stay .btn-gold:not(.btn-sm):not(.pv-primary)::before,#contact .btn-gold:not(.btn-sm):not(.pv-primary)::before{ background:#F4E4BC url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233E6B45' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/18px no-repeat; box-shadow:0 4px 10px -3px rgba(0,0,0,.35); }
section.light .btn-gold:not(.btn-sm):not(.pv-primary):hover::before{ background-color:#fff; }
section.light .btn-gold,#stay .btn-gold,#contact .btn-gold{ background:linear-gradient(135deg,#5A9A64 0%,#3E6B45 100%); color:#fff; }
section.light .btn-gold:hover,#stay .btn-gold:hover,#contact .btn-gold:hover{ background:linear-gradient(135deg,#66A870 0%,#477A4F 100%); color:#fff; }
.btn-gold>span,.btn-gold .i{ position:relative; z-index:1; }
.pv-actions .pv-primary{ background:linear-gradient(135deg,#5A9A64 0%,#3E6B45 100%); }
.cc-btns .cc-yes{ background:linear-gradient(135deg,#F7E9C4,#DCC5A1); }
.m-bar .mb-book{ background:linear-gradient(135deg,#F7E9C4,#DCC5A1); }
.lang-switch::before{ background:linear-gradient(135deg,#F7E9C4,#DCC5A1); }
section.final-block .final-inner{ max-width:720px; padding:30px 34px 28px; background:rgba(255,255,255,.84); border:1px solid rgba(255,255,255,.75); border-radius:var(--leaf) 0 var(--leaf) 0; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); box-shadow:0 24px 44px -26px rgba(20,40,28,.7); }
section.final-block .final-inner h2,section.final-block .final-inner .eyebrow,section.final-block .final-inner .desc{ text-shadow:none; }
section.final-block .final-inner .eyebrow{ justify-content:center; }
section.final-block .inv-grid{ margin-top:clamp(120px,18vw,230px); }
section.final-block .plan-foot .btn-outline{ background:#fff; }
@media (max-width:860px){ section.final-block .final-inner{ padding:24px 20px; } section.final-block .inv-grid{ margin-top:110px; } }

/* v14: hero keeps the place name (logo) on desktop; hours note */
@media (min-width:901px){ .hero-logo{ display:block; } }
.hero-note{ margin:14px auto 0; max-width:560px; text-align:center; font-size:.86rem; line-height:1.55; color:rgba(248,242,228,.9); text-shadow:0 1px 8px rgba(0,0,0,.6); }

/* =====================================================================
   v15 — light-section typography, variant B: green headings, beige rule,
   warm graphite text, bold key phrases, bronze prices
   ===================================================================== */
section.light:not(.final-block),#stay,#contact{
  --cream:#2E2B26; --cream-dim:#4A463E; --cream-faint:rgba(46,43,38,.78);
  color:#2E2B26;
}
section.light:not(.final-block) p,section.light:not(.final-block) li,section.light:not(.final-block) .desc,
#stay p,#stay li,#stay .desc,#contact p,#contact li,#contact .desc{ color:#38352F; }
section.light:not(.final-block) h2,#stay h2,#contact h2{ color:#3E6B45; }
section.light:not(.final-block) .section-head h2::after,#stay .section-head h2::after,#contact .section-head h2::after{
  content:""; display:block; width:64px; height:4px; border-radius:4px; background:#DCC5A1; margin-top:14px; }
section.light:not(.final-block) h3,#stay h3,#contact h3,section.light:not(.final-block) h4,#stay h4,#contact h4{ color:#1F3A2B; }
#contact .ticket-top h3{ color:#F8F2E4 !important; }
section.light:not(.final-block) .eyebrow,#stay .eyebrow,#contact .eyebrow{ color:#7A5A22; }
section.light:not(.final-block) .eyebrow::before,#stay .eyebrow::before,#contact .eyebrow::before{ background:#7A5A22; }
strong,b.k{ font-weight:700; }
section.light:not(.final-block) strong,#stay strong,#contact strong{ color:#1F3A2B; }
#contact .ticket-top strong{ color:#F3D58E; }
/* prices: bronze */
#stay .leader-row .p,section.light .act-list .p,section.light .leader-row .p,#contact .rent-p,#stay .p{ color:#8A5A12; }
#contact .r-tx b,#contact .r-note{ color:#7A5A22; }
#contact .r-note strong{ color:#1F3A2B; }
#contact .pv-sub h3{ color:#1F3A2B; }
section.light .rv-card figcaption{ color:#7A5A22; }
#contact .ticket-top .visit-lead,#contact .ticket-top p{ color:rgba(248,242,228,.88); }
#contact .ticket-top .t-lbl{ color:rgba(248,242,228,.8); }
.stop-video{ margin-top:6px; }

/* ---- Rotating entrance sign (Plan Your Visit) ---- */
.sign-stage{ position:absolute; inset:0; }
.sign-stage img{ position:absolute; display:block; }
.sign-stage .sign-disc{ display:none; }
@supports (width:1cqw){
  .pvp-a{ container-type:size; }
  .sign-stage{
    --w:max(100cqw, calc(100cqh * 1.33891));
    inset:auto; width:var(--w); height:calc(var(--w) / 1.33891);
    left:calc((100cqw - var(--w)) * .36); top:calc((100cqh - var(--w) / 1.33891) * .5);
    transition:transform .8s var(--ease);
  }
  .sign-stage img:first-child{ inset:0; width:100%; height:100%; object-fit:fill; transition:none; }
  .pv-card:hover .pvp-a .sign-stage{ transform:scale(1.05); }
  .pv-card:hover .pvp-a .sign-stage img{ transform:none; }
  .sign-stage .sign-disc{
    display:block; left:26.5625%; top:2.7894%; width:36.458%; height:48.814%; border-radius:50%;
    animation:signSpin 22s linear infinite; will-change:transform; pointer-events:none;
  }
}
@keyframes signSpin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .sign-stage .sign-disc{ animation:none !important; } }

/* ---- Menu with prices (generated from admin data) ---- */
.m-rows{ margin:12px 0 0; column-count:2; column-gap:48px; }
.m-row{ display:flex; flex-wrap:wrap; align-items:baseline; column-gap:12px; padding:11px 0; border-bottom:1px dotted var(--forest-line-soft); break-inside:avoid; color:var(--cream); }
.m-n{ display:flex; flex-direction:column; min-width:0; font-family:'Playfair Display',serif; font-size:1.05rem; line-height:1.3; }
.m-n b{ font-weight:600; color:var(--cream); }
.m-n .en{ font-family:'Work Sans',sans-serif; font-size:.8rem; letter-spacing:.02em; color:var(--cream-dim); font-style:italic; margin-top:1px; }
.m-lead{ flex:1 1 16px; border-bottom:1px dotted var(--gold-deep); min-width:14px; transform:translateY(-5px); }
.m-p{ font-family:'Playfair Display',serif; color:var(--gold-light); font-weight:600; font-size:1.05rem; white-space:nowrap; }
.m-note{ flex:1 0 100%; margin:6px 0 0; font-size:.9rem; line-height:1.5; color:var(--cream-dim); }
.m-note .en{ display:block; font-style:italic; margin-top:3px; opacity:.85; }
.sb-price{ margin-left:auto; font-family:'Playfair Display',serif; text-transform:none; letter-spacing:0; font-size:1.1rem; font-weight:600; color:var(--gold-light); }
.m-heading{ margin:56px 0 4px; font-family:'Playfair Display',serif; font-size:1.5rem; color:var(--cream); }
.m-heading .en{ font-style:italic; color:var(--gold); font-size:1rem; margin-left:8px; }
.m-foot{ margin-top:34px; max-width:640px; color:var(--cream-dim); font-size:.95rem; }
.m-foot .en{ display:block; font-style:italic; margin-top:3px; }
.m-foot-note{ margin-top:10px; font-size:.82rem; opacity:.8; }
@media (max-width:640px){ .m-rows{ column-count:1; } }

@media print{
  header, nav, footer, #view-site, .menu-tabs-wrap, .back-link, [data-print-menu], .menu-hero-note, .cc-bar, .m-bar, .pt-icons, .flourish, .lang-switch{ display:none !important; }
  #view-menu{ display:block !important; }
  body, .menu-panels, .menu-panel, .menu-hero{ background:#fff !important; color:#111 !important; }
  .menu-panel{ display:block !important; padding:18px 0 !important; break-before:auto; }
  .menu-panel *, .menu-hero *{ color:#111 !important; }
  .m-p, .sb-price{ color:#6b4a10 !important; }
  .m-rows, .item-flow{ column-count:2; }
}
.item-flow .it.it-long{ display:block; column-span:all; }
.item-flow .it.it-long .en{ display:block; white-space:normal; text-transform:none; letter-spacing:.01em; font-style:italic; font-family:'Work Sans',sans-serif; margin-top:3px; }

/* ---- Menu v2: lively look (accent colour, steam / bubbles / sparks / splash) ---- */
.menu-panel{--acc:#c9a25c;}
.menu-panel[data-panel=breakfast]{--acc:#f2b24a;}
.menu-panel[data-panel=buffet]{--acc:#e08a3c;}
.menu-panel[data-panel=main]{--acc:#d8a657;}
.menu-panel[data-panel=bbq]{--acc:#ee5a2a;}
.menu-panel[data-panel=juice]{--acc:#f59a23;}
.menu-panel[data-panel=softhot]{--acc:#d79a66;}
.menu-panel[data-panel=fresh]{--acc:#86cf7a;}
.menu-panel[data-panel=bar]{--acc:#c85a70;}
.menu-panel[data-panel=sambal]{--acc:#e04a36;}
.menu-panel[data-panel=snacks]{--acc:#eab03a;}
@supports (background:color-mix(in srgb,red 10%,transparent)){
  .menu-panel{background-image:radial-gradient(820px 360px at 6% 0%,color-mix(in srgb,var(--acc) 36%,transparent),transparent 74%),radial-gradient(640px 320px at 100% 100%,color-mix(in srgb,var(--acc) 12%,transparent),transparent 70%);}
  .m-row:hover{background:color-mix(in srgb,var(--acc) 11%,transparent);}
  .m-p{background:color-mix(in srgb,var(--acc) 16%,transparent); border:1px solid color-mix(in srgb,var(--acc) 42%,transparent);}
  .m-lead{border-bottom-color:color-mix(in srgb,var(--acc) 55%,transparent);}
  .sub-block-title{color:color-mix(in srgb,var(--acc) 72%,#fff);}
}
.menu-panel .wrap{position:relative; z-index:2;}
.pt-icons{color:var(--acc);}
.pt-ico svg{filter:drop-shadow(0 0 7px var(--acc)); }
.pt-ico{animation:ptBob 3.8s ease-in-out infinite;}
.pt-ico:nth-child(2){animation-delay:.5s}.pt-ico:nth-child(3){animation-delay:1s}.pt-ico:nth-child(4){animation-delay:1.5s}.pt-ico:nth-child(5){animation-delay:2s}.pt-ico:nth-child(6){animation-delay:2.5s}
@keyframes ptBob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}
.pt-h{text-shadow:0 2px 18px color-mix(in srgb,var(--acc) 45%,transparent);}
.m-row{padding:12px 14px; margin:0 -14px; border-bottom:0; border-radius:14px; position:relative; transition:background .25s,transform .25s;}
.m-row::after{content:""; position:absolute; left:14px; right:14px; bottom:0; border-bottom:1px dotted var(--forest-line-soft);}
.m-row:hover{transform:translateX(4px);}
.m-n b{font-size:1.13rem;}
.m-p{color:var(--cream); padding:2px 11px; border-radius:999px; font-size:.98rem; line-height:1.4;}
.sub-block-title::before{content:""; display:inline-block; width:8px; height:8px; margin-right:10px; background:var(--acc); transform:rotate(45deg) translateY(-1px); border-radius:2px; box-shadow:0 0 10px var(--acc);}
.menu-panel.active .wrap>*{animation:mIn .6s cubic-bezier(.2,.7,.2,1) both;}
.menu-panel.active .wrap>*:nth-child(2){animation-delay:.07s}.menu-panel.active .wrap>*:nth-child(3){animation-delay:.14s}.menu-panel.active .wrap>*:nth-child(4){animation-delay:.21s}.menu-panel.active .wrap>*:nth-child(5){animation-delay:.28s}.menu-panel.active .wrap>*:nth-child(n+6){animation-delay:.34s}
@keyframes mIn{from{opacity:0; transform:translateY(16px)}to{opacity:1; transform:none}}
/* effects layer */
.fx{position:absolute; left:0; right:0; top:0; height:420px; pointer-events:none; z-index:1; overflow:hidden; -webkit-mask-image:linear-gradient(#000 60%,transparent); mask-image:linear-gradient(#000 60%,transparent);}
.fx i{position:absolute; bottom:-10px; left:calc(var(--x)*1%); display:block; opacity:0;}
.fx i:nth-child(1){--x:5;--d:0s;--t:7s;--s:44px;--dx:-30px}
.fx i:nth-child(2){--x:15;--d:2.2s;--t:9s;--s:30px;--dx:20px}
.fx i:nth-child(3){--x:26;--d:4.1s;--t:8s;--s:52px;--dx:-14px}
.fx i:nth-child(4){--x:37;--d:1.2s;--t:10s;--s:34px;--dx:26px}
.fx i:nth-child(5){--x:47;--d:5.3s;--t:7s;--s:48px;--dx:-22px}
.fx i:nth-child(6){--x:58;--d:3.1s;--t:9s;--s:28px;--dx:16px}
.fx i:nth-child(7){--x:68;--d:0.6s;--t:8s;--s:50px;--dx:-26px}
.fx i:nth-child(8){--x:78;--d:4.6s;--t:10s;--s:36px;--dx:22px}
.fx i:nth-child(9){--x:88;--d:2.0s;--t:7s;--s:42px;--dx:-10px}
.fx i:nth-child(10){--x:96;--d:5.8s;--t:9s;--s:30px;--dx:12px}

.fx-steam i{width:var(--s); height:calc(var(--s)*3); border-radius:50%; background:radial-gradient(closest-side,rgba(255,255,255,.26),transparent); filter:blur(9px); animation:fxSteam var(--t) var(--d) infinite ease-in;}
@keyframes fxSteam{0%{opacity:0; transform:translate(0,30px) scaleX(.8)}20%{opacity:.9}60%{opacity:.5; transform:translate(18px,-190px) scaleX(1.3)}100%{opacity:0; transform:translate(-14px,-400px) scaleX(1.7)}}
.fx-bubbles i{width:calc(var(--s)*.6); height:calc(var(--s)*.6); border-radius:50%; border:2px solid color-mix(in srgb,var(--acc) 70%,#fff); background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.4),transparent 58%); animation:fxBub var(--t) var(--d) infinite linear;}
@keyframes fxBub{0%{opacity:0; transform:translate(0,10px)}10%{opacity:.95}50%{transform:translate(12px,-130px)}100%{opacity:0; transform:translate(-9px,-400px)}}
.fx-sparks i{width:calc(var(--s)*.17); height:calc(var(--s)*.17); min-width:5px; min-height:5px; border-radius:50%; background:var(--acc); box-shadow:0 0 8px 2px var(--acc); animation:fxSpark calc(var(--t)*.55) var(--d) infinite ease-out;}
@keyframes fxSpark{0%{opacity:0; transform:translate(0,0) scale(1)}12%{opacity:1}55%{opacity:.8; transform:translate(10px,-120px) scale(.8)}100%{opacity:0; transform:translate(-12px,-380px) scale(.3)}}
.fx-splash i{width:calc(var(--s)*.22); height:calc(var(--s)*.3); min-width:7px; min-height:10px; border-radius:50% 50% 50% 50%/62% 62% 38% 38%; background:linear-gradient(160deg,color-mix(in srgb,var(--acc) 40%,#fff),var(--acc)); opacity:0; animation:fxSplY calc(var(--t)*.5) var(--d) infinite cubic-bezier(.25,.7,.4,1), fxSplX calc(var(--t)*.5) var(--d) infinite linear;}
@keyframes fxSplY{0%{transform:translateY(0) scale(.6); opacity:0}8%{opacity:.95}42%{transform:translateY(-240px) scale(1)}100%{transform:translateY(30px) scale(.8); opacity:0}}
@keyframes fxSplX{from{translate:0 0}to{translate:var(--dx) 0}}
@media (max-width:640px){ .fx i:nth-child(n+7){display:none} .fx{height:320px} }
@media (prefers-reduced-motion:reduce){ .fx{display:none} .pt-ico,.menu-panel.active .wrap>*{animation:none !important} }
@media print{ .fx{display:none !important} }

/* ---- Menu light paper theme (overrides the dark menu look) ---- */
.menu-hero,.menu-tabs-wrap,.menu-panels,.menu-panel{
  --cream:#2a1f14; --cream-dim:#6e5f4c; --gold:#9a6b1a; --gold-light:#9a6b1a; --gold-deep:#cdbf9f;
  --forest-line:#d9ccb4; --forest-line-soft:#e0d4bc; --black:#f6efe2;
}
.menu-hero{background:#f6efe2; border-bottom:1px solid #e0d4bc;}
.menu-hero .back-link{border-color:#d9ccb4; color:#6e5f4c;}
.menu-hero .back-link:hover{color:#2a1f14; border-color:#b9a77f;}
.mh-title{color:#2a1f14;} .mh-title em{color:#9a6b1a;}
.menu-tabs-wrap{background:rgba(246,239,226,.96); border-bottom:1px solid #e0d4bc; box-shadow:0 10px 24px -14px rgba(60,40,20,.35);}
.menu-tabs button{border-color:#d9ccb4; color:#6e5f4c; background:transparent;}
.menu-tabs button:hover{border-color:#9a6b1a; color:#2a1f14;}
.menu-tabs-wrap .menu-tabs button.active{background:#2a1f14; color:#f6efe2; border-color:#2a1f14; box-shadow:none; font-weight:700;}
.menu-panels,.menu-panel,.menu-panel.tone-0,.menu-panel.tone-1,.menu-panel.tone-2,.menu-panel.tone-3{background-color:#f6efe2;}
.menu-panel .flourish{opacity:.22;}
.pt-h{color:#2a1f14; text-shadow:none;}
.pt-ico svg{filter:none;}
.menu-panel .panel-head .d,.menu-panel .m-note,.menu-panel .m-foot{color:#5c4e3b;}
.menu-panel[data-panel=breakfast]{--acc:#c47a0c;}
.menu-panel[data-panel=buffet]{--acc:#b8631c;}
.menu-panel[data-panel=main]{--acc:#9a6b1a;}
.menu-panel[data-panel=bbq]{--acc:#c8431d;}
.menu-panel[data-panel=juice]{--acc:#d27410;}
.menu-panel[data-panel=softhot]{--acc:#a8683a;}
.menu-panel[data-panel=fresh]{--acc:#3b8a3a;}
.menu-panel[data-panel=bar]{--acc:#a8324b;}
.menu-panel[data-panel=sambal]{--acc:#c03022;}
.menu-panel[data-panel=snacks]{--acc:#b57f10;}
@supports (background:color-mix(in srgb,red 10%,transparent)){
  .menu-panel{background-image:radial-gradient(760px 320px at 6% 0%,color-mix(in srgb,var(--acc) 16%,transparent),transparent 72%),radial-gradient(620px 300px at 100% 100%,color-mix(in srgb,var(--acc) 9%,transparent),transparent 70%);}
  .sub-block-title{color:color-mix(in srgb,var(--acc) 88%,#000);}
  .m-row:hover{background:color-mix(in srgb,var(--acc) 9%,transparent);}
  .m-p{background:color-mix(in srgb,var(--acc) 13%,#fffaf0); border:1px solid color-mix(in srgb,var(--acc) 38%,transparent);}
  .m-lead{border-bottom-color:color-mix(in srgb,var(--acc) 50%,transparent);}
}
.m-p{color:#2a1f14;}
.sub-block-title::before{box-shadow:none;}
.fx-steam i{background:radial-gradient(closest-side,rgba(110,80,50,.1),transparent);}
.fx-bubbles i{border-color:var(--acc); background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.7),transparent 60%);}
.fx-sparks i{box-shadow:0 0 6px 1px var(--acc);}
.fx-splash i{background:var(--acc);}
.fx{-webkit-mask-image:linear-gradient(#000 55%,transparent); mask-image:linear-gradient(#000 55%,transparent);}
/* menu tabs: clear green / orange */
.menu-tabs-wrap .menu-tabs button{background:#e3eed8; border:1.5px solid #7fa876; color:#2b5a37; font-weight:600; letter-spacing:.05em;}
.menu-tabs-wrap .menu-tabs button:hover{background:#d3e5c4; border-color:#d4560f; color:#1f4a2b;}
.menu-tabs-wrap .menu-tabs button.active{background:#d4560f; border-color:#d4560f; color:#fff; font-weight:700; box-shadow:0 8px 16px -8px rgba(212,86,15,.7);}
.menu-tabs-wrap .menu-tabs button:focus-visible{outline:2px solid #d4560f; outline-offset:2px;}
/* menu tabs v2: orange-green blend, active = darker */
.menu-tabs-wrap .menu-tabs button{background:linear-gradient(120deg,#f7cf98 0%,#c4dba3 100%); border:1.5px solid #cfae78; color:#2a1f14; font-weight:600;}
.menu-tabs-wrap .menu-tabs button:hover{background:linear-gradient(120deg,#f1bd78 0%,#aed089 100%); border-color:#b98a4a; color:#2a1f14;}
.menu-tabs-wrap .menu-tabs button.active{background:linear-gradient(120deg,#c8631a 0%,#4f8a3c 100%); border-color:#7a4a14; color:#fff; font-weight:700; box-shadow:0 8px 16px -8px rgba(80,60,20,.7);}
/* menu header: compact site-style back button, visible title on mobile */
.menu-hero-row{flex-wrap:nowrap; gap:12px;}
.menu-hero .back-link{background:linear-gradient(135deg,var(--btn-a),var(--btn-b)); color:var(--btn-ink,#2B2112); border:0; border-radius:999px; padding:8px 16px; font-size:.68rem; font-weight:700; letter-spacing:.07em; gap:6px; box-shadow:0 6px 14px -8px rgba(60,40,10,.6); white-space:nowrap; flex:0 0 auto;}
.menu-hero .back-link:hover{color:var(--btn-ink,#2B2112); filter:brightness(1.05); transform:translateY(-1px);}
.mh-title{white-space:nowrap; text-align:right;}
@media (max-width:640px){
  .menu-hero{padding:12px 0;}
  .mh-title{display:block; font-size:1.05rem;}
  .mh-title em{display:none;}
  .menu-hero .back-link{padding:7px 13px; font-size:.64rem;}
}
/* light-section buttons: orange-green blend instead of plain green */
section.light .btn-gold,#stay .btn-gold,#contact .btn-gold,.pv-actions .pv-primary{ background:linear-gradient(120deg,#cf5f17 0%,#4f8a3c 100%); border-color:transparent; color:#fff; box-shadow:0 10px 22px -10px rgba(120,70,20,.7), inset 0 1px 0 rgba(255,255,255,.25); }
section.light .btn-gold:hover,#stay .btn-gold:hover,#contact .btn-gold:hover,.pv-actions .pv-primary:hover{ background:linear-gradient(120deg,#e0701f 0%,#5d9c49 100%); color:#fff; box-shadow:0 16px 28px -12px rgba(120,70,20,.8); }
section.light .btn-outline,#stay .btn-outline,#contact .btn-outline{ background:rgba(255,255,255,.75); border:1.5px solid #cf8a4a; color:#2f4a22; }
section.light .btn-outline:hover,#stay .btn-outline:hover,#contact .btn-outline:hover{ background:linear-gradient(120deg,#cf5f17 0%,#4f8a3c 100%); border-color:transparent; color:#fff; box-shadow:0 12px 24px -12px rgba(120,70,20,.7); }
.pv-actions .pv-wa .i{ color:#cf5f17; } .pv-actions .pv-wa:hover .i{ color:#fff; }
