/* Green Garden Villas — design system after the Dunten Hotell CVI
   Layout concept: night-forest green and white-wine cream bands alternate like a garden path;
   gold hairline rhombi (1/8 of the CVI eight-point star) frame photos and mark lists. */

/* ---------- fonts (self-hosted, no third-party requests) ---------- */
@font-face{font-family:"Montserrat";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/montserrat-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Montserrat";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/montserrat-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Montserrat";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/montserrat-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Montserrat";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/montserrat-cyrillic-ext-wght-normal.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:"Didone";font-style:normal;font-display:swap;font-weight:800;src:url(fonts/playfair-display-latin-800-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Didone";font-style:normal;font-display:swap;font-weight:800;src:url(fonts/playfair-display-latin-ext-800-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Didone";font-style:normal;font-display:swap;font-weight:800;src:url(fonts/playfair-display-cyrillic-800-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Didone";font-style:normal;font-display:swap;font-weight:700;src:url(fonts/playfair-display-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Didone";font-style:normal;font-display:swap;font-weight:700;src:url(fonts/playfair-display-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Didone";font-style:normal;font-display:swap;font-weight:700;src:url(fonts/playfair-display-cyrillic-700-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Didone";font-style:italic;font-display:swap;font-weight:700;src:url(fonts/playfair-display-latin-700-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:"Didone";font-style:italic;font-display:swap;font-weight:700;src:url(fonts/playfair-display-cyrillic-700-italic.woff2) format("woff2");unicode-range:U+0400-045F}

/* ---------- tokens ---------- */
:root{
  /* CVI palette */
  --mets:#032B1F;        /* Mets – forest */
  --mets-2:#0B3828;      /* lifted forest for panels on forest */
  --muru:#18533F;        /* Muru – lawn */
  --sinep:#C39223;       /* Sinep – mustard gold */
  --sinep-lt:#D8B35C;    /* gold on dark, AA on mets */
  --valge:#F9E9C2;       /* Valge vein – white wine cream */
  --paper:#FCF5E3;       /* lightest cream for reading */
  --vein:#8B2D1C;        /* Punane vein – red wine */
  --ink:#312727;         /* Punane vein dark – text on cream */
  --ink-soft:#5A4A44;
  --line:rgba(195,146,35,.55);
  --line-soft:rgba(195,146,35,.28);

  --display:"Didone","Playfair Display","Didot","Bodoni 72","Times New Roman",serif;
  --body:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;

  --step--1:clamp(.82rem,.8rem + .1vw,.88rem);
  --step-0:clamp(1rem,.96rem + .2vw,1.08rem);
  --step-1:clamp(1.2rem,1.1rem + .45vw,1.45rem);
  --step-2:clamp(1.5rem,1.3rem + 1vw,2.1rem);
  --step-3:clamp(2rem,1.55rem + 2.2vw,3.3rem);
  --step-4:clamp(2.6rem,1.8rem + 4vw,5.4rem);

  --gutter:max(20px,env(safe-area-inset-left,0px));
  --gutter-r:max(20px,env(safe-area-inset-right,0px));
  --wrap:1240px;
  --radius:0;
  --header-h:88px;
  color-scheme:light;
}
:lang(th){--body:"Sukhumvit Set","Thonburi","Leelawadee UI","Noto Sans Thai","Montserrat",sans-serif;--display:"Didone","Playfair Display","Noto Serif Thai","Thonburi",serif}
:lang(zh){--body:"Montserrat","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;--display:"Didone","Songti SC","Noto Serif SC","STSong","SimSun",serif}
:lang(ja){--body:"Montserrat","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Meiryo","Noto Sans JP",sans-serif;--display:"Didone","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif}
:lang(ko){--body:"Montserrat","Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;--display:"Didone","AppleMyungjo","Nanum Myeongjo","Noto Serif KR",serif}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:var(--step-0);line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
:lang(th) body,body:lang(th){line-height:1.85}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.06;letter-spacing:-.005em;margin:0;text-wrap:balance}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) :is(h1,h2,h3){line-height:1.3;letter-spacing:0}
p{margin:0 0 1em}
ul{margin:0;padding:0}
strong{font-weight:650}
::selection{background:var(--sinep);color:var(--mets)}
:focus-visible{outline:2px solid var(--sinep);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;z-index:1000;background:var(--valge);color:var(--mets);padding:10px 16px;border-radius:0;font-weight:600}
.skip:focus{left:max(12px,env(safe-area-inset-left,0px))}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:var(--gutter);padding-right:var(--gutter-r)}
.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}

/* bands */
.band{padding-block:clamp(72px,9vw,140px);position:relative}
.band--forest{background:var(--mets);color:var(--valge)}
.band--forest-grad{background:radial-gradient(120% 90% at 50% 40%,#1D4130 0%,#0E2B1E 55%,#08231A 100%);color:var(--valge)}
.band--cream{background:var(--valge);color:var(--ink)}
.band--paper{background:var(--paper);color:var(--ink)}
.band--gold{background:var(--sinep);color:var(--mets)}

/* buttons (square, fill-slide hover as on naiharnhotel.com) */
.btn{--b:var(--sinep);--h:var(--mets);--hc:var(--sinep-lt);position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:.7em;min-height:50px;padding:.9em 1.8em;border:1px solid var(--b);background:var(--b);color:var(--mets);font:600 .8rem/1 var(--body);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:color .45s cubic-bezier(.16,1,.3,1)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--h);transform:translateY(101%);transition:transform .55s cubic-bezier(.16,1,.3,1)}
.btn:hover{color:var(--hc)}
.btn:hover::before{transform:none}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) .btn{letter-spacing:.05em;font-size:.92rem}
.btn--ghost{background:transparent;color:var(--sinep-lt);border-color:rgba(195,146,35,.6);--h:var(--sinep);--hc:var(--mets)}
.btn--dark{--b:var(--mets);--h:var(--sinep);--hc:var(--mets);color:var(--valge)}
.btn svg{width:18px;height:18px;flex:none}

/* rhombus marker */
.rh-mark{display:inline-block;width:10px;height:16px;background:var(--sinep);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);flex:none}

/* ---------- header ---------- */
.site-header{position:fixed;inset:0 0 auto;z-index:50;padding-top:env(safe-area-inset-top,0px);color:var(--valge);transition:background .35s ease,box-shadow .35s ease}
.site-header.is-solid,.site-header--solid{background:rgba(3,43,31,.96);box-shadow:0 1px 0 var(--line-soft);-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px)}
.site-header .bar{height:var(--header-h);display:flex;align-items:center;gap:20px;max-width:1440px;margin-inline:auto;padding-left:var(--gutter);padding-right:var(--gutter-r)}
.brand{display:block;flex:none;line-height:0}
.brand{align-self:flex-start;margin-top:14px}
.brand img{width:150px;height:150px;transition:width .5s cubic-bezier(.16,1,.3,1),height .5s cubic-bezier(.16,1,.3,1),margin .5s cubic-bezier(.16,1,.3,1);filter:drop-shadow(0 10px 24px rgba(0,0,0,.28))}
.site-header.is-solid .brand,.site-header--solid .brand{margin-top:6px}
.site-header.is-solid .brand img,.site-header--solid .brand img{width:76px;height:76px;filter:none}
.nav{margin-left:auto;display:flex;align-items:center;gap:clamp(14px,2vw,30px)}
.nav>a,.nav .dd>button{font:500 .8rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--valge);background:none;border:0;padding:10px 0;cursor:pointer;position:relative}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) :is(.nav>a,.nav .dd>button){letter-spacing:.04em;font-size:.92rem}
.nav>a::after,.nav .dd>button::after{content:"";position:absolute;left:50%;bottom:2px;width:6px;height:9px;background:var(--sinep);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);transform:translateX(-50%) scale(0);transition:transform .2s}
.nav>a:hover::after,.nav>a[aria-current]::after,.nav .dd>button:hover::after{transform:translateX(-50%) scale(1)}
.dd{position:relative}
.dd-menu{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);min-width:250px;background:var(--mets);border:1px solid var(--line-soft);border-radius:0;padding:10px;display:none;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.dd.open .dd-menu,.dd:focus-within .dd-menu{display:block}
@media (hover:hover){.dd:hover .dd-menu{display:block}.dd::before{content:"";position:absolute;inset:100% -10px -14px}}
.dd-menu a{display:block;padding:12px 14px;border-radius:0;text-decoration:none;font-size:.95rem;color:var(--valge)}
.dd-menu a:hover{background:var(--mets-2);color:var(--sinep-lt)}
.lang{position:relative}
.lang>button{display:flex;align-items:center;gap:8px;background:none;border:1px solid var(--line-soft);color:var(--valge);border-radius:0;padding:9px 14px;font:600 .78rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.lang>button svg{width:15px;height:15px}
.lang ul{list-style:none;position:absolute;right:0;top:calc(100% + 10px);background:var(--mets);border:1px solid var(--line-soft);border-radius:0;padding:8px;min-width:190px;display:none;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.lang.open ul{display:block}
.lang li a{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;border-radius:0;text-decoration:none;font-size:.95rem;color:var(--valge)}
.lang li a:hover,.lang li a[aria-current]{background:var(--mets-2);color:var(--sinep-lt)}
.lang li a span{opacity:.6;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}
.header-book{min-height:42px;padding:.7em 1.3em;font-size:.78rem}
.burger{display:none;margin-left:auto;width:48px;height:48px;border:1px solid var(--line-soft);border-radius:50%;background:none;color:var(--valge);cursor:pointer;align-items:center;justify-content:center}
.burger span{display:block;width:18px;height:1.5px;background:currentColor;position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:currentColor}
.burger span::before{top:-6px}.burger span::after{top:6px}

/* mobile menu */
.mnav{position:fixed;inset:0;z-index:60;background:radial-gradient(120% 90% at 50% 30%,#1D4130 0%,#0B2A1D 60%,#06201A 100%);color:var(--valge);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 18px) var(--gutter-r) calc(env(safe-area-inset-bottom,0px) + 28px) var(--gutter);overflow:auto}
.mnav[hidden]{display:none}
.mnav .top{display:flex;justify-content:space-between;align-items:center}
.mnav .top img{width:52px;height:52px}
.mnav .close{width:48px;height:48px;border-radius:50%;border:1px solid var(--line-soft);background:none;color:var(--valge);font-size:1.6rem;line-height:1;cursor:pointer}
.mnav nav{display:flex;flex-direction:column;margin-top:36px}
.mnav nav a{font-family:var(--display);font-weight:700;font-size:clamp(1.7rem,7vw,2.4rem);text-decoration:none;padding:.32em 0;border-bottom:1px solid var(--line-soft)}
.mnav nav a.sub{font-family:var(--body);font-weight:500;font-size:1.05rem;padding:.7em 0 .7em 1.2em;color:var(--sinep-lt);border-bottom:0}
.mnav .mlangs{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px;list-style:none}
.mnav .mlangs a{display:inline-block;padding:9px 13px;border:1px solid var(--line-soft);border-radius:0;text-decoration:none;font-size:.9rem}
.mnav .mlangs a[aria-current]{background:var(--sinep);color:var(--mets);border-color:var(--sinep)}
.mnav .btn{margin-top:28px;align-self:flex-start}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(100svh,980px);display:flex;flex-direction:column;justify-content:flex-end;color:var(--valge);background:var(--mets);overflow:hidden;isolation:isolate}
.hero picture,.hero .hero-img{position:absolute;inset:0;z-index:-2}
.hero .hero-img{width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(3,43,31,.62) 0%,rgba(3,43,31,0) 26%,rgba(3,43,31,0) 42%,rgba(3,43,31,.55) 68%,rgba(3,43,31,.94) 100%),linear-gradient(90deg,rgba(3,43,31,.78) 0%,rgba(3,43,31,.45) 38%,rgba(3,43,31,0) 68%)}
.hero-inner{padding-top:calc(var(--header-h) + 40px);padding-bottom:clamp(28px,4vw,40px);display:grid;gap:clamp(28px,4vw,44px)}
.hero-copy{max-width:860px}
.hero .eyebrow{display:flex;align-items:center;gap:12px;font:500 .82rem/1.4 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--sinep-lt);margin-bottom:22px}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) .hero .eyebrow{letter-spacing:.06em;font-size:.95rem}
.hero h1{font-size:var(--step-4);color:var(--valge);text-shadow:0 2px 30px rgba(0,0,0,.25)}
@media (prefers-reduced-motion:no-preference){
  .hero .eyebrow{animation:fadeUp 1s cubic-bezier(.16,1,.3,1) .25s both}
  .hero h1{animation:fadeUp 1.1s cubic-bezier(.16,1,.3,1) .4s both}
  .hero .booking{animation:fadeUp 1.1s cubic-bezier(.16,1,.3,1) .65s both}
}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* booking bar */
.booking{background:rgba(3,30,22,.9);-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%);border:1px solid rgba(195,146,35,.45);display:grid;grid-template-columns:1fr 1fr auto;align-items:stretch;max-width:980px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.booking .field{position:relative;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:22px 28px;border-right:1px solid rgba(195,146,35,.25);min-width:0}
.booking .field::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--sinep);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.booking .field:focus-within::after{transform:scaleX(1)}
.booking label{font:600 .64rem/1 var(--body);letter-spacing:.28em;text-transform:uppercase;color:var(--sinep-lt)}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) .booking label{letter-spacing:.06em;font-size:.8rem}
.booking input[type=date]{appearance:none;-webkit-appearance:none;background:transparent;border:0;color:var(--valge);font:500 1.08rem/1.3 var(--body);letter-spacing:.03em;padding:0;width:100%;min-width:0;color-scheme:dark;cursor:pointer;outline:none}
.booking input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7) sepia(1) saturate(3) hue-rotate(5deg);cursor:pointer}
.booking .btn{min-height:100%;padding-inline:2.4em;border:0}
.booking .err{grid-column:1/-1;margin:0;padding:10px 28px;border-top:1px solid rgba(195,146,35,.25);color:#F3C9A8;font-size:.88rem}
.booking .err[hidden]{display:none}
.booking--card{grid-template-columns:1fr 1fr;background:var(--mets-2);box-shadow:none}
.booking--card .field{padding:16px 16px}
.booking--card .field:nth-child(2){border-right:0}
.booking--card input[type=date]{font-size:.98rem}
.booking--card .btn{grid-column:1/-1;min-height:56px}

/* ---------- intro ---------- */
.intro .grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(40px,6vw,96px);align-items:center}
.prose{max-width:62ch}
.prose p{font-size:var(--step-0)}
.prose ul{list-style:none;display:grid;gap:.55em;margin:.4em 0 1.2em}
.prose ul.checklist{gap:0;margin:0}
.prose ul:not(.checklist) li{position:relative;padding-left:24px}
.prose ul:not(.checklist) li::before{content:"";position:absolute;left:0;top:.42em;width:9px;height:14px;background:var(--sinep);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.prose strong{color:var(--mets)}
.band--forest .prose strong,.band--forest-grad .prose strong{color:var(--sinep-lt)}
.lead-first>p:first-child{font-size:var(--step-1);line-height:1.6;font-weight:400}

/* section heads */
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start;margin-bottom:clamp(40px,5vw,64px)}
.sec-head h2,.h2{font-size:var(--step-3)}
.sec-head .prose{margin-left:auto}
.kicker{display:flex;align-items:center;gap:12px;color:var(--sinep);font:600 .78rem/1 var(--body);letter-spacing:.2em;text-transform:uppercase;margin-bottom:18px}
.band--forest .kicker,.band--forest-grad .kicker{color:var(--sinep-lt)}

/* ---------- villas ---------- */
.villa-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,32px)}
.villa-card{display:flex;flex-direction:column;background:var(--mets-2);border:1px solid var(--line-soft);border-radius:0;overflow:hidden;color:var(--valge);text-decoration:none;transition:border-color .25s,transform .35s cubic-bezier(.2,.7,.2,1)}
.villa-card:hover{border-color:var(--sinep);transform:translateY(-4px)}
.villa-card .img{position:relative;aspect-ratio:4/5;overflow:hidden}
.villa-card .img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.villa-card:hover .img img{transform:scale(1.04)}
.villa-card .count{position:absolute;left:16px;top:16px;background:var(--valge);color:var(--mets);font:700 .78rem/1 var(--body);letter-spacing:.08em;padding:9px 13px;border-radius:0}
.villa-card .body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:14px;flex:1}
.villa-card h3{font-size:var(--step-2)}
.villa-card .facts{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.88rem;color:var(--sinep-lt)}
.villa-card .facts span{display:inline-flex;align-items:center;gap:8px}
.villa-card .facts svg{width:18px;height:18px;flex:none}
.villa-card .desc p{margin:0;font-size:.95rem;color:rgba(249,233,194,.82)}
.villa-card .more{margin-top:auto;display:inline-flex;align-items:center;gap:10px;font:600 .8rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--sinep-lt);padding-top:6px}
.villa-card .more .rh-mark{transition:transform .3s}
.villa-card:hover .more .rh-mark{transform:rotate(90deg)}

/* ---------- glance (fact sheet) ---------- */
.glance{position:relative;overflow:hidden}
.glance .grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,5vw,80px);align-items:start;position:relative;z-index:1}
.glance h2{font-size:var(--step-3);color:var(--mets)}
.factlist{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(3,43,31,.35)}
.factlist li{padding:18px 18px 18px 0;border-bottom:1px solid rgba(3,43,31,.35);display:flex;flex-direction:column;gap:4px;font-size:.98rem;line-height:1.55;color:var(--mets)}
.factlist li:nth-child(odd){padding-right:28px}
.factlist li:nth-child(even){padding-left:28px;border-left:1px solid rgba(3,43,31,.35)}
.factlist li strong{font:700 .72rem/1.3 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--mets)}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) .factlist li strong{letter-spacing:.04em;font-size:.85rem}
.factlist a{color:var(--mets);font-weight:700}
.factlist li.wide{grid-column:1/-1;padding-left:0;border-left:0}

/* ---------- gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(120px,14vw,200px);gap:clamp(8px,1vw,14px)}
.gallery button{all:unset;cursor:zoom-in;position:relative;overflow:hidden;border-radius:0;display:block}
.gallery button:focus-visible{outline:2px solid var(--sinep);outline-offset:3px}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.gallery button:hover img{transform:scale(1.05)}
.gallery .g1{grid-column:span 7;grid-row:span 3}
.gallery .g2{grid-column:span 5;grid-row:span 2}
.gallery .g3{grid-column:span 5;grid-row:span 1}
.gallery .g4{grid-column:span 4;grid-row:span 2}
.gallery .g5{grid-column:span 4;grid-row:span 2}
.gallery .g6{grid-column:span 4;grid-row:span 2}
.gallery .g7{grid-column:span 6;grid-row:span 2}
.gallery .g8{grid-column:span 6;grid-row:span 2}
.gallery--villa{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(150px,17vw,250px)}
.gallery--villa .gv{grid-column:span 1;grid-row:span 1}
.gallery--villa .gv:first-child{grid-column:span 2;grid-row:span 2}
.gallery--villa .gv:nth-child(8):last-child{grid-column:span 2}

/* lightbox */
.lb{position:fixed;inset:0;z-index:80;background:rgba(2,24,17,.96);display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 64px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 64px) max(16px,env(safe-area-inset-left,0px))}
.lb[hidden]{display:none}
.lb figure{margin:0;max-width:min(1500px,100%);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.lb img{max-height:calc(100svh - 170px);width:auto;max-width:100%;border-radius:0;object-fit:contain}
.lb figcaption{color:var(--valge);font-size:.92rem;text-align:center;opacity:.85}
.lb button{position:absolute;width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:rgba(3,43,31,.7);color:var(--valge);cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb button:hover{background:var(--sinep);color:var(--mets)}
.lb .x{top:calc(env(safe-area-inset-top,0px) + 14px);right:max(14px,env(safe-area-inset-right,0px))}
.lb .pv{left:max(14px,env(safe-area-inset-left,0px));top:50%;transform:translateY(-50%)}
.lb .nx{right:max(14px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%)}
.lb svg{width:22px;height:22px}

/* ---------- near us ---------- */
.near .grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(36px,5vw,80px);align-items:start}
.near h2{font-size:var(--step-3);margin-bottom:clamp(28px,4vw,48px)}
.near-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,3vw,48px)}
.near-list li{padding:18px 0;border-top:1px solid var(--line-soft);display:grid;grid-template-columns:14px 1fr;gap:14px;align-items:start;font-size:.95rem;color:rgba(249,233,194,.82)}
.near-list li::before{content:"";width:10px;height:16px;background:var(--sinep);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);margin-top:5px}
.near-list li strong{display:block;color:var(--valge);font-weight:600;font-size:1.02rem;margin-bottom:2px}
.place-card{background:var(--mets-2);border:1px solid var(--line-soft);border-radius:0;padding:clamp(24px,3vw,36px);position:sticky;top:calc(var(--header-h) + 24px)}
.place-card .dist{font-family:var(--display);font-weight:800;font-size:clamp(3.4rem,6vw,5rem);line-height:1;color:var(--sinep-lt);font-variant-numeric:lining-nums}
.place-card .dist small{font-size:.4em;margin-left:.15em;font-family:var(--body);font-weight:600;letter-spacing:.1em}
.place-card .to{margin:.6em 0 1.4em;color:var(--valge)}
.place-card address{font-style:normal;padding-top:18px;border-top:1px solid var(--line-soft);margin-bottom:20px;color:rgba(249,233,194,.85);font-size:.95rem}

/* ---------- discover ---------- */
.discover .grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,100px);align-items:center}
.discover .photo{position:relative}
.discover .photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:0}
.discover h2{font-size:var(--step-3);margin-bottom:28px;color:var(--mets)}

/* ---------- faq ---------- */
.faq .grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(30px,5vw,80px)}
.faq h2{font-size:var(--step-3);color:var(--mets);position:sticky;top:calc(var(--header-h) + 24px)}
.faq details{border-top:1px solid rgba(49,39,39,.18)}
.faq details:last-child{border-bottom:1px solid rgba(49,39,39,.18)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr 24px;gap:20px;align-items:center;padding:24px 0;font-family:var(--display);font-weight:700;font-size:var(--step-1);color:var(--mets);line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:14px;height:22px;justify-self:end;background:var(--sinep);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);transition:transform .3s,background .3s}
.faq details[open] summary::after{transform:rotate(90deg);background:var(--vein)}
.faq .ans{padding:0 44px 26px 0;color:var(--ink-soft)}
.faq .ans p{margin:0}

/* ---------- villa page ---------- */
.v-hero{position:relative;min-height:min(86svh,860px);display:flex;align-items:flex-end;color:var(--valge);background:var(--mets);overflow:hidden;isolation:isolate}
.v-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.v-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(3,43,31,.55) 0%,rgba(3,43,31,0) 30%,rgba(3,43,31,.25) 55%,rgba(3,43,31,.92) 100%)}
.v-hero .wrap{width:100%;padding-top:calc(var(--header-h) + 40px);padding-bottom:clamp(36px,5vw,64px)}
.crumbs{list-style:none;display:flex;flex-wrap:wrap;gap:10px;font-size:.82rem;letter-spacing:.06em;margin-bottom:18px;color:rgba(249,233,194,.8)}
.crumbs li{display:flex;align-items:center;gap:10px}
.crumbs li+li::before{content:"";width:6px;height:9px;background:var(--sinep);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.v-hero h1{font-size:var(--step-4);max-width:15ch}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) .v-hero h1{max-width:22ch}
.v-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.v-facts span{display:inline-flex;align-items:center;gap:9px;padding:10px 16px;border:1px solid var(--line);border-radius:0;font-size:.9rem;background:rgba(3,43,31,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.v-facts svg{width:18px;height:18px;color:var(--sinep-lt)}
.amen{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:0;overflow:hidden}
.amen li{background:var(--mets);display:flex;flex-direction:column;gap:16px;padding:26px 22px;font-size:.98rem;line-height:1.4;color:var(--valge)}
.amen svg{width:34px;height:34px;color:var(--sinep-lt)}
.v-body .grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(36px,6vw,96px);align-items:start}
.v-body h2{font-size:var(--step-3);color:var(--mets);margin-bottom:26px}
.checklist{list-style:none;display:grid;gap:0;border-top:1px solid rgba(49,39,39,.16)}
.checklist li{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(49,39,39,.16);font-size:.98rem}
.checklist li::before{content:"";flex:none;width:9px;height:14px;background:var(--sinep);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.book-card{background:var(--mets);color:var(--valge);border-radius:0;padding:clamp(26px,3vw,38px);position:sticky;top:calc(var(--header-h) + 24px);overflow:hidden;isolation:isolate}
.book-card::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border:1px solid var(--line);transform:rotate(45deg) scaleY(1.45);z-index:-1}
.book-card h3{font-size:var(--step-2);margin-bottom:18px}
.book-card .times{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:0;overflow:hidden;margin:20px 0 24px}
.book-card .times div{background:var(--mets-2);padding:14px 16px}
.book-card .times span{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sinep-lt)}
.book-card .times b{font-family:var(--display);font-size:1.8rem;font-weight:800;font-variant-numeric:lining-nums}
.book-card .btn{width:100%}
.book-card .contact-mini{margin-top:18px;font-size:.88rem;color:rgba(249,233,194,.8);display:grid;gap:4px}
.book-card .contact-mini a{text-decoration:none}
.book-card .contact-mini a:hover{color:var(--sinep-lt)}

/* ---------- legal ---------- */
.legal-hero{background:var(--mets);color:var(--valge);padding:calc(var(--header-h) + clamp(56px,8vw,110px)) 0 clamp(48px,6vw,80px);position:relative;overflow:hidden}
.legal-hero h1{font-size:var(--step-4)}
.legal-hero p{margin:18px 0 0;color:var(--sinep-lt);font-size:.92rem;letter-spacing:.04em}
.legal-body .prose{max-width:72ch}
.legal-body h2{font-size:var(--step-2);color:var(--mets);margin:1.8em 0 .6em}
.legal-body h2:first-child{margin-top:0}
.legal-body a{color:var(--muru);font-weight:600}

/* ---------- footer ---------- */
.site-footer{background:radial-gradient(110% 80% at 50% 0%,#1D4130 0%,#0B2A1D 55%,#06201A 100%);color:var(--valge);padding-top:clamp(72px,9vw,130px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 28px);position:relative;overflow:hidden}
.f-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(40px,6vw,100px);align-items:start}
.f-logo img{width:clamp(150px,14vw,190px);height:auto}
.f-logo p{margin-top:22px;max-width:34ch;color:rgba(249,233,194,.75);font-size:.95rem}
.f-cols{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr) minmax(0,1fr);gap:28px}
.site-footer h2{font-size:var(--step-3);margin-bottom:28px}
.f-col h3{font:600 .74rem/1.2 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--sinep-lt);margin-bottom:14px}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) .f-col h3{letter-spacing:.05em;font-size:.88rem}
.f-col a,.f-col address{font-style:normal;text-decoration:none;font-size:1rem;line-height:1.6;overflow-wrap:anywhere}
.f-col a:hover{color:var(--sinep-lt)}
.social{display:flex;gap:10px;margin-top:4px}
.social a{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.social a:hover{background:var(--sinep);color:var(--mets)}
.social svg{width:18px;height:18px}
.f-cta{margin-top:36px;display:flex;flex-wrap:wrap;gap:12px}
.f-langs{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:clamp(48px,6vw,80px);padding-top:24px;border-top:1px solid var(--line-soft);font-size:.9rem}
.f-langs a{text-decoration:none;color:rgba(249,233,194,.75)}
.f-langs a:hover,.f-langs a[aria-current]{color:var(--sinep-lt)}
.f-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;margin-top:22px;font-size:.84rem;color:rgba(249,233,194,.65)}
.f-bottom nav{display:flex;flex-wrap:wrap;gap:8px 22px}
.f-bottom a,.f-bottom button{color:inherit;text-decoration:none;background:none;border:0;padding:0;font:inherit;cursor:pointer}
.f-bottom a:hover,.f-bottom button:hover{color:var(--sinep-lt)}

/* other villas */
.others .villa-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.others .villa-card .img{aspect-ratio:16/10}

/* sticky mobile book */
.m-book{display:none}

/* cookie consent */
#ggv-cc{position:fixed;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(env(safe-area-inset-bottom,0px) + 16px);z-index:90;max-width:560px;margin-inline:auto;background:var(--paper);color:var(--ink);border-radius:0;box-shadow:0 20px 60px rgba(0,0,0,.35);padding:22px 22px 18px;border:1px solid rgba(195,146,35,.4)}
#ggv-cc[hidden],#ggv-cc-reopen[hidden]{display:none!important}
#ggv-cc p{margin:0 0 6px;font-size:.93rem;line-height:1.55}
#ggv-cc .more{font-size:.85rem;color:var(--muru);font-weight:600}
#ggv-cc .btns{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}
#ggv-cc button{min-height:44px;border-radius:0;padding:0 20px;font:600 .85rem/1 var(--body);cursor:pointer;border:1px solid var(--mets)}
#ggv-cc #ggv-cc-no{background:transparent;color:var(--mets)}
#ggv-cc #ggv-cc-yes{background:var(--mets);color:var(--valge)}
#ggv-cc #ggv-cc-no:hover{background:rgba(3,43,31,.06)}
#ggv-cc #ggv-cc-yes:hover{background:var(--muru)}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .nav,.header-book,.site-header .lang{display:none}
  .burger{display:flex}
  .villa-grid{grid-template-columns:1fr 1fr}
  .villa-grid .villa-card:last-child:nth-child(odd){grid-column:1/-1}
  .villa-grid .villa-card:last-child:nth-child(odd) .img{aspect-ratio:16/9}
}
@media (max-width:860px){
  :root{--header-h:72px}
  .brand{margin-top:10px}
  .brand img{width:96px;height:96px}
  .site-header.is-solid .brand img,.site-header--solid .brand img{width:58px;height:58px}
  .site-header.is-solid .brand,.site-header--solid .brand{margin-top:10px}
  .intro .grid,.sec-head,.glance .grid,.near .grid,.discover .grid,.faq .grid,.v-body .grid,.f-top{grid-template-columns:1fr}
  .sec-head .prose{margin-left:0}
  .faq h2,.place-card{position:static}
  .book-card{position:relative;top:auto}
  .intro-photos{max-width:520px}
  .booking{grid-template-columns:1fr 1fr}
  .booking .btn{grid-column:1/-1;min-height:56px}
  .booking .field{padding:16px 18px}
  .booking .field:nth-child(2){border-right:0}
  .booking .btn{border-top:1px solid rgba(195,146,35,.25)}
  .factlist{grid-template-columns:1fr}
  .factlist li:nth-child(n){padding:16px 0;border-left:0}
  .near-list{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(110px,26vw,190px)}
  .gallery .g1{grid-column:span 6;grid-row:span 2}
  .gallery .g2,.gallery .g3,.gallery .g4,.gallery .g5,.gallery .g6,.gallery .g7,.gallery .g8{grid-column:span 3;grid-row:span 1}
  .gallery--villa{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(120px,36vw,220px)}
  .gallery--villa .gv:first-child{grid-column:span 2;grid-row:span 2}
    .f-cols{grid-template-columns:1fr 1fr}
  .others .villa-grid{grid-template-columns:1fr}
    .m-book{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 10px) max(16px,env(safe-area-inset-left,0px));background:rgba(3,43,31,.96);border-top:1px solid var(--line-soft);transform:translateY(110%);transition:transform .35s}
  .m-book.show{transform:none}
  .m-book .btn{flex:1}
  body.has-mbook .site-footer{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 96px)}
}
@media (max-width:560px){
  .villa-grid{grid-template-columns:1fr}
  .villa-grid .villa-card .img,.villa-grid .villa-card:last-child:nth-child(odd) .img{aspect-ratio:4/3}
  .booking .field{padding:10px 14px}
  .booking input[type=date]{font-size:1rem}
  .f-cols{grid-template-columns:1fr}
  .amen{grid-template-columns:1fr 1fr}
  .hero h1{font-size:clamp(2.3rem,10.5vw,3rem)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{.site-header,.booking,.m-book,#ggv-cc,#ggv-cc-reopen{display:none!important}}
/* hard clip decorative overflow (iOS ignores overflow-x on body) */
.hero,.v-hero,.legal-hero,.glance,.site-footer,.book-card,.discover,.intro{overflow:clip}
:is(:lang(zh),:lang(ja),:lang(ko)) .hero h1,:is(:lang(zh),:lang(ja),:lang(ko)) .v-hero h1,:is(:lang(zh),:lang(ja),:lang(ko)) .legal-hero h1{font-size:clamp(2rem,1.3rem + 2.8vw,3.9rem)}
:lang(th) .hero h1,:lang(th) .v-hero h1,:lang(th) .legal-hero h1{font-size:clamp(2.1rem,1.4rem + 3vw,4.2rem);line-height:1.35}
:lang(ja) :is(h1,h2,h3){word-break:auto-phrase}
:lang(ko) :is(h1,h2,h3,p,li){word-break:keep-all}
@media (min-width:861px){#ggv-cc{left:max(24px,env(safe-area-inset-left,0px));right:auto;margin:0;max-width:440px}}

/* ---------- rombs (CVI kujundid, same artwork as greengardenvillas.com / naiharnhotel.com) ---------- */
.romb-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.band>.wrap,.hero-inner,.v-hero>.wrap,.legal-hero>.wrap,.site-footer>.wrap{position:relative;z-index:2}
.romb{position:absolute;width:var(--w,480px);opacity:0;transition:opacity 1.6s cubic-bezier(.16,1,.3,1);will-change:transform,opacity}
.romb.in{opacity:var(--op,.75)}
.romb img{width:100%;height:auto;display:block}
.band--forest .romb.in,.band--forest-grad .romb.in,.site-footer .romb.in,.legal-hero .romb.in{--op:.55}
.hero .romb.in,.v-hero .romb.in{--op:.75}
.band--gold .romb.in{--op:.45}
#lineCanvas{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-inner{z-index:2}
@media (max-width:860px){.romb{width:calc(var(--w,480px)*.62)}}
@media (prefers-reduced-motion:reduce){.romb{opacity:var(--op,.7)}}

/* ---------- rhombus photos (signature of the current site) ---------- */
.rh-figure{position:relative;margin:0;aspect-ratio:1;width:100%;max-width:620px;justify-self:center;isolation:isolate}
.rh-figure .rh-img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.rh-figure .rh-lines{position:absolute;z-index:0;max-width:none;height:auto;pointer-events:none}
.rh-figure--dark .rh-lines{opacity:.75}
.rh-figure:hover .rh-img{transform:scale(1.02)}
.intro .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.villas-intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,6vw,96px);align-items:center;margin-bottom:clamp(56px,7vw,110px)}
.villas-intro h2{font-size:var(--step-3);margin-bottom:28px}
.discover .rh-figure{max-width:560px}
/* villa cards: rhombus photo like the current site */
.villa-card .img{aspect-ratio:auto;padding:34px 34px 6px;overflow:visible;display:flex;justify-content:center}
.villa-card .img img{aspect-ratio:1;width:100%;max-width:320px;height:auto;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.villa-card:hover .img img{transform:scale(1.03)}
.villa-card .body{text-align:center;align-items:center}
.villa-card .facts{justify-content:center}
.villa-card .more{align-self:center}
.villa-card .count{top:18px;left:18px;border-radius:0;background:var(--sinep);color:var(--mets);letter-spacing:.16em;text-transform:uppercase;font-size:.66rem;padding:7px 11px}
.others .villa-card .img{aspect-ratio:auto}
@media (max-width:860px){
  .intro .grid,.villas-intro{grid-template-columns:1fr}
  .rh-figure{max-width:440px}
  .intro .rh-figure{order:-1}
}
@media (max-width:1080px){.villa-grid .villa-card:last-child:nth-child(odd) .img{aspect-ratio:auto}}
@media (max-width:560px){.villa-grid .villa-card .img,.villa-grid .villa-card:last-child:nth-child(odd) .img{aspect-ratio:auto}.villa-card .img img{max-width:260px}}
.band{overflow:clip}

/* ---------- guides ---------- */
.g-hero{min-height:min(62svh,620px)}
.g-hero h1{max-width:20ch}
.g-grid-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:clamp(36px,5vw,80px);align-items:start}
.g-article{max-width:72ch}
.g-article .g-lead{font-size:var(--step-1);line-height:1.6;color:var(--mets);font-weight:450;border-left:2px solid var(--sinep);padding-left:22px;margin-bottom:10px}
.g-upd{font-size:.82rem;color:var(--ink-soft);letter-spacing:.04em;margin:0 0 28px 24px}
.g-article h2{font-size:var(--step-2);color:var(--mets);margin:1.9em 0 .6em;scroll-margin-top:calc(var(--header-h) + 20px)}
.g-article section:first-of-type h2{margin-top:1.2em}
.g-article h3{font-family:var(--body);font-weight:650;font-size:1.05rem;color:var(--mets);margin:1.3em 0 .4em}
.g-article a{color:var(--muru);font-weight:600;text-decoration-color:rgba(24,83,63,.35)}
.g-article a:hover{text-decoration-color:var(--sinep)}
.g-article ol{padding-left:1.3em;margin:.4em 0 1.2em;display:grid;gap:.55em}
.g-article ol li::marker{font-family:var(--display);font-weight:800;color:var(--sinep)}
.g-article table{width:100%;border-collapse:collapse;margin:1.2em 0 1.6em;font-size:.92rem;display:block;overflow-x:auto}
.g-article th,.g-article td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid rgba(49,39,39,.14)}
.g-article thead th{background:var(--mets);color:var(--valge);font:600 .72rem/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) .g-article thead th{letter-spacing:.03em;font-size:.85rem}
.g-article tbody tr:nth-child(even) td{background:rgba(249,233,194,.45)}
.toc{border:1px solid rgba(195,146,35,.45);padding:20px 24px;margin:0 0 10px;background:var(--valge)}
.toc p{font:600 .72rem/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--muru);margin:0 0 12px}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) .toc p{letter-spacing:.05em;font-size:.85rem}
.toc ol{margin:0;padding-left:1.2em;gap:.3em}
.toc a{font-weight:500;text-decoration:none;color:var(--mets)}
.toc a:hover{color:var(--muru);text-decoration:underline}
.inline-villas{margin:2.4em 0;padding:24px;background:var(--mets);color:var(--valge);border:1px solid var(--line-soft)}
.inline-villas .iv-t{font-family:var(--display);font-weight:700;font-size:var(--step-1);margin:0 0 16px;color:var(--valge)}
.iv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.iv-grid a{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--valge)!important;font-weight:500!important}
.iv-grid a span{display:block;aspect-ratio:1;overflow:hidden}
.iv-grid a span img{width:100%;height:100%;object-fit:cover;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);transition:transform .8s cubic-bezier(.16,1,.3,1)}
.iv-grid a:hover span img{transform:scale(1.05)}
.iv-grid b{font-family:var(--display);font-weight:700;font-size:1.02rem;text-align:center}
.iv-grid small{font-size:.76rem;color:var(--sinep-lt);text-align:center}
.tips{margin:2.4em 0;padding:26px 28px;background:var(--sinep);color:var(--mets)}
.tips h2{margin:0 0 14px!important;color:var(--mets)!important}
.tips ul li::before{background:var(--mets)!important}
.tips a{color:var(--mets)!important}
.g-faq{margin-top:2.4em}
.g-faq details{border-top:1px solid rgba(49,39,39,.18)}
.g-faq details:last-child{border-bottom:1px solid rgba(49,39,39,.18)}
.g-faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr 18px;gap:16px;align-items:center;padding:18px 0;font-family:var(--display);font-weight:700;font-size:1.12rem;color:var(--mets);line-height:1.35}
.g-faq summary::-webkit-details-marker{display:none}
.g-faq summary::after{content:"";width:11px;height:18px;justify-self:end;background:var(--sinep);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);transition:transform .3s}
.g-faq details[open] summary::after{transform:rotate(90deg);background:var(--vein)}
.g-faq .ans{padding:0 34px 18px 0;color:var(--ink-soft)}
.g-aside{position:sticky;top:calc(var(--header-h) + 20px);display:grid;gap:20px}
.qf dl{margin:0}
.qf{margin:0;border:1px solid rgba(195,146,35,.45);background:var(--valge)}
.qf-t{margin:0;padding:14px 20px;background:var(--mets);color:var(--sinep-lt);font:600 .72rem/1 var(--body);letter-spacing:.2em;text-transform:uppercase}
:is(:lang(zh),:lang(ja),:lang(ko),:lang(th)) .qf-t{letter-spacing:.05em;font-size:.85rem}
.qf div{padding:12px 20px;border-top:1px solid rgba(195,146,35,.3)}
.qf dt{font-size:.74rem;letter-spacing:.06em;color:var(--ink-soft)}
.qf dd{margin:2px 0 0;font-weight:600;color:var(--mets);font-size:.98rem}
.g-book{position:relative;top:auto}
.g-book h3{font-size:var(--step-1)!important;margin-bottom:8px!important}
.g-book>p{font-size:.92rem;color:rgba(249,233,194,.82);margin:0 0 18px}
.g-book>p a{color:var(--sinep-lt)}
.g-villas-link{display:inline-flex;align-items:center;gap:10px;margin-top:16px;font:600 .76rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--sinep-lt);text-decoration:none}
.g-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.6vw,22px)}
.g-card{display:flex;flex-direction:column;text-decoration:none;background:var(--paper);color:var(--ink);border:1px solid rgba(195,146,35,.35);transition:border-color .4s,transform .5s cubic-bezier(.16,1,.3,1)}
.band--forest .g-card{background:var(--mets-2);color:var(--valge);border-color:var(--line-soft)}
.g-card:hover{border-color:var(--sinep);transform:translateY(-4px)}
.g-img{aspect-ratio:4/3;overflow:hidden;display:block}
.g-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.g-card:hover .g-img img{transform:scale(1.05)}
.g-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:6px}
.g-t{font-family:var(--display);font-weight:700;font-size:1.12rem;line-height:1.25;color:var(--mets)}
.band--forest .g-t{color:var(--valge)}
.g-d{font-size:.84rem;line-height:1.55;color:var(--ink-soft)}
.band--forest .g-d{color:rgba(249,233,194,.72)}
.g-group{margin-top:2.6em}
.g-group h2{margin-top:0!important}
.g-group .g-grid,.g-article .g-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-related .h2{margin-bottom:clamp(28px,4vw,48px)}
.explore .g-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.nearby{margin-top:2em;padding-top:1.4em;border-top:1px solid rgba(49,39,39,.16)}
.nearby h3{font-size:var(--step-1);color:var(--mets);margin:0 0 .6em}
.nearby ul{display:flex;flex-wrap:wrap;gap:8px!important}
.nearby li{padding:0!important}
.nearby li::before{display:none!important}
.nearby a{display:inline-block;padding:9px 14px;border:1px solid rgba(195,146,35,.55);text-decoration:none;font-size:.9rem;color:var(--mets);font-weight:500}
.nearby a:hover{background:var(--sinep);color:var(--mets)}
.f-guides{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:clamp(40px,5vw,64px);padding-top:22px;border-top:1px solid var(--line-soft);font-size:.86rem}
.f-guides a{text-decoration:none;color:rgba(249,233,194,.72)}
.f-guides a:hover{color:var(--sinep-lt)}
.f-guides .f-hub{color:var(--sinep-lt);font-weight:600;width:100%}
.f-guides+.f-langs{margin-top:18px}
@media (max-width:1180px){.g-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1080px){.g-grid-main{grid-template-columns:1fr}.g-aside{position:static;grid-template-columns:1fr 1fr;align-items:start}}
@media (max-width:860px){.g-grid,.explore .g-grid{grid-template-columns:1fr 1fr}.g-aside{grid-template-columns:1fr}.iv-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.iv-grid small{display:none}}
@media (max-width:520px){.g-grid,.explore .g-grid,.g-group .g-grid{grid-template-columns:1fr}.g-card{flex-direction:row}.g-img{width:38%;aspect-ratio:1;flex:none}.g-body{padding:12px 14px}.g-d{display:none}}

/* softly rounded buttons, matching the rounded corners of the Green Garden logo badge */
:root{--rb:6px}
.btn,.header-book,.lang>button,.mnav .mlangs a,.nearby a,#ggv-cc button,.villa-card .count,.g-villas-link,.booking .btn{border-radius:var(--rb)}
.booking{border-radius:calc(var(--rb) + 2px);overflow:hidden}
.booking .btn{border-radius:0 var(--rb) var(--rb) 0}
.booking--card .btn{border-radius:0 0 var(--rb) var(--rb)}
@media (max-width:860px){.booking .btn{border-radius:0 0 var(--rb) var(--rb)}}
.lang ul,.dd-menu{border-radius:var(--rb)}
.lang li a,.dd-menu a{border-radius:4px}
.burger,.mnav .close,.social a{border-radius:50%}
@media (max-width:860px){.g-article table{font-size:.86rem}.g-article th,.g-article td{min-width:130px;padding:10px 12px}.g-article td:first-child,.g-article th:first-child{min-width:96px}}
