/* ===== The White Stone Art Villa — V2 homepage (concept draft) ===== */

:root{
  --stone:#f4f1ea;
  --stone-dark:#e7e1d3;
  --ink:#242320;
  --ink-soft:#5c584f;
  --aegean:#2f5d73;
  --aegean-dark:#1f4453;
  --white:#ffffff;
  --gold:#b89b6a;
  --maxw:1320px;
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Jost", "Helvetica Neue", Arial, sans-serif;
}

/* ===== White theme (test) — pure white background, black text.
   Applied via body.theme-white; every page but the homepage carries the
   class right now. Left in place, unused, if the class is removed, so the
   original warm stone/ink palette below is never lost. ===== */
body.theme-white{
  --stone:#ffffff;
  --stone-dark:#dcdcdc;
  --ink:#000000;
  --ink-soft:#333333;
}
body.theme-white .site-header.scrolled{background:rgba(255,255,255,.94)}
/* Mega-menu overlay: kept white on every page, including the homepage
   (body.menu-white), which otherwise stays on the original dark theme. */
body.theme-white .mega-menu,
body.menu-white .mega-menu{background:#ffffff}
body.theme-white .mega-menu-bg,
body.menu-white .mega-menu-bg{opacity:0}
body.theme-white .mega-menu::after,
body.menu-white .mega-menu::after{background:#ffffff}
body.theme-white .mega-menu-list,
body.menu-white .mega-menu-list{text-align:center}
body.theme-white .mega-menu-list a,
body.menu-white .mega-menu-list a{color:var(--ink);font-size:clamp(.9rem,2.4vw,2.05rem)}
body.theme-white.menu-open .site-header,
body.menu-white.menu-open .site-header{color:var(--ink)}
body.theme-white .lightbox{background:rgba(255,255,255,.97)}
body.theme-white .lightbox img{box-shadow:0 20px 60px rgba(0,0,0,.18)}
body.theme-white .lightbox video{box-shadow:0 20px 60px rgba(0,0,0,.18)}
body.theme-white .lightbox-close{border-color:rgba(0,0,0,.25);color:var(--ink)}
body.theme-white .lightbox-close:hover{background:rgba(0,0,0,.08);border-color:rgba(0,0,0,.4)}
body.theme-white .lightbox-arrow{border-color:rgba(0,0,0,.25);color:var(--ink)}
body.theme-white .lightbox-arrow:hover{background:rgba(0,0,0,.08);border-color:rgba(0,0,0,.4)}
body.theme-white .room-overlay{background:rgba(255,255,255,.98)}
body.theme-white .room-overlay-close{border-color:rgba(0,0,0,.25);color:var(--ink)}
body.theme-white .room-overlay-close:hover{background:rgba(0,0,0,.08);border-color:rgba(0,0,0,.4)}
body.theme-white .room-overlay-eyebrow{color:var(--ink)}
body.theme-white .room-overlay-title{color:var(--ink)}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--stone);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ===== Header — overlays the hero, transparent until scrolled ===== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 40px;
  color:var(--white);
  transition:background .4s ease, padding .4s ease, color .4s ease;
}
.site-header.scrolled{
  background:rgba(244,241,234,.94);
  color:var(--ink);
  padding:16px 40px;
  box-shadow:0 2px 24px rgba(36,35,32,.08);
}
.site-header .brand{
  font-family:var(--serif);font-size:1.15rem;letter-spacing:.14em;
  text-transform:uppercase;font-weight:600;
}
.header-right{display:flex;align-items:center;gap:22px}
.lang-switch{display:flex;gap:10px;font-size:.75rem;letter-spacing:.08em}
.lang-switch button{
  background:none;border:0;color:inherit;cursor:pointer;
  opacity:.6;font-family:var(--sans);padding:2px 0;
}
.lang-switch button.active{opacity:1;border-bottom:1px solid currentColor}
.menu-toggle{
  background:none;border:1px solid currentColor;color:inherit;cursor:pointer;
  padding:9px 18px;font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;
}
.menu-toggle:hover{background:currentColor}
.site-header.scrolled .menu-toggle:hover{color:var(--stone)}
.site-header:not(.scrolled) .menu-toggle:hover{color:var(--ink)}

/* ===== Mega menu — full-screen overlay, à la Villa Clementina ===== */
body.menu-open{overflow:hidden}
.mega-menu{
  position:fixed;inset:0;z-index:35;
  visibility:hidden;opacity:0;overflow:hidden;
  background:var(--ink);
  transition:opacity .5s ease, visibility 0s linear .5s;
}
body.menu-open .mega-menu{
  visibility:visible;opacity:1;
  transition:opacity .5s ease;
}
.mega-menu-bg{
  position:absolute;inset:0;
  background-image:url("assets/videos/posters/hero-water.jpg");
  background-size:cover;background-position:center;
  opacity:.25;
}
.mega-menu::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,rgba(15,18,20,.94) 0%,rgba(15,18,20,.8) 45%,rgba(15,18,20,.94) 100%);
}
.mega-menu-inner{
  position:relative;z-index:2;height:100%;
  display:flex;align-items:center;justify-content:center;gap:clamp(50px,6vw,110px);
  max-width:1500px;margin:0 auto;padding:130px 40px 60px;
}
.mega-menu-preview{
  flex:0 0 clamp(380px,34vw,560px);
  height:clamp(480px,46vw,680px);
  overflow:hidden;
  background:rgba(255,255,255,.03);
  opacity:0;transform:scale(1.03);
  transition:opacity .5s ease, transform .6s ease;
}
.mega-menu-preview.show{opacity:1;transform:scale(1)}
.mega-menu-preview img{width:100%;height:100%;object-fit:cover;display:block}
.mega-menu-list{list-style:none;margin:0;padding:0;text-align:right}
.mega-menu-list li{margin:0}
.mega-menu-list a{
  display:block;padding:clamp(11px,1.4vw,20px) 0;
  font-family:var(--sans);font-weight:300;text-transform:uppercase;
  font-size:clamp(1rem,2.7vw,2.3rem);
  color:var(--white);opacity:.5;letter-spacing:.1em;
  transition:opacity .35s ease, letter-spacing .35s ease;
}
.mega-menu-list a:hover,.mega-menu-list a:focus{
  opacity:1;letter-spacing:.14em;font-weight:400;
}
@media(min-width:761px) and (max-width:980px){
  .mega-menu-inner{gap:36px;padding:110px 28px 40px}
  .mega-menu-preview{flex:0 0 260px;height:340px}
  .mega-menu-list a{font-size:1.25rem;padding:9px 0}
}
@media(max-width:980px){
  .recommend-grid{grid-template-columns:repeat(2,1fr)}
}

/* ===== Hero ===== */
.hero{
  position:relative;height:100vh;min-height:560px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:var(--ink);
}
.hero video, .hero .hero-poster{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,24,26,.42) 0%,rgba(20,24,26,.18) 38%,rgba(20,24,26,.5) 78%,rgba(20,24,26,.72) 100%);
}
.hero-content{
  position:relative;z-index:2;text-align:center;color:var(--white);
  max-width:880px;padding:0 24px;
}
.hero-eyebrow{
  display:block;font-size:.78rem;letter-spacing:.36em;text-transform:uppercase;
  margin-bottom:22px;opacity:.9;
}
.hero-content h1{
  font-family:var(--serif);font-weight:600;margin:0;
  font-size:clamp(2.1rem,5.6vw,4.4rem);line-height:1.14;letter-spacing:.01em;
}
.hero-content h1 .line2{display:block}
.hero-sub{
  margin:26px auto 0;max-width:560px;
  font-size:1.05rem;font-weight:300;letter-spacing:.02em;opacity:.92;
}
.scroll-cue{
  position:absolute;left:50%;bottom:34px;transform:translateX(-50%);
  color:var(--white);font-size:1.5rem;z-index:2;
  animation:bob 2.2s ease-in-out infinite;opacity:.85;
}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,10px)}}

/* ===== Sensory beat — full-screen video + message, à la Villa Clementina ===== */
.sense{
  position:relative;height:100vh;min-height:560px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:var(--ink);
}
.sense video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 58%;
}
.sense::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(15,18,20,.5) 0%,rgba(15,18,20,.16) 32%,rgba(15,18,20,.3) 66%,rgba(15,18,20,.65) 100%);
}
.sense-content{
  position:relative;z-index:2;text-align:center;color:var(--white);
  max-width:720px;padding:0 24px;
}
.sense-eyebrow{
  display:block;font-size:.76rem;letter-spacing:.3em;text-transform:uppercase;
  margin-bottom:24px;opacity:.9;
}
.sense-word{
  font-family:var(--serif);font-weight:600;margin:0;
  font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.05;letter-spacing:.02em;
}
.sense-sub{
  margin:28px auto 0;max-width:560px;
  font-size:1.15rem;font-weight:300;letter-spacing:.01em;line-height:1.7;opacity:.94;
}
.sense-villa video{object-position:center 42%}
[data-sense="discover"] video{object-position:center 34%}
.sense-art{
  background-image:url("assets/images/art-waterwall-ix.jpg?v=2");
  background-size:cover;background-position:center 32%;
}

/* ===== Gallery & Art ===== */
.art{background:var(--white);padding:100px 0 90px}
.art-head{max-width:720px;margin:0 auto 56px;padding:0 40px;text-align:center}
.art-intro{color:var(--ink-soft);font-size:1.05rem;font-weight:300;line-height:1.85;margin:0}
.art-triptych{
  max-width:var(--maxw);margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:4px;
}
.art-triptych figure{margin:0;overflow:hidden}
.art-triptych img{width:100%;height:340px;object-fit:cover;display:block;transition:transform .6s ease}
.art-triptych img:hover{transform:scale(1.06)}
.art-caption{
  text-align:center;margin:18px auto 64px;
  font-family:var(--serif);font-style:italic;color:var(--ink-soft);font-size:.95rem;
}
.art-single{max-width:420px;margin:0 auto;padding:0 40px;overflow:hidden}
.art-single img{width:100%;display:block;transition:transform .6s ease}
.art-single img:hover{transform:scale(1.06)}

/* ===== Photo grid (Outdoors / Indoors / Coastlines / Discover) ===== */
.photo-grid{background:var(--white);padding:100px 0 90px}
.grid-head{max-width:720px;margin:0 auto 56px;padding:0 40px;text-align:center}
.photo-grid[data-grid="coastlines"] .grid-head{max-width:900px}
.photo-grid[data-grid="indoors"] .grid-head{max-width:1250px}
.grid-title{
  font-family:var(--serif);font-weight:600;font-size:clamp(1.6rem,3vw,2.3rem);
  line-height:1.25;margin:0 0 18px;color:var(--ink);
}
.grid-intro{color:var(--ink-soft);font-size:1.15rem;font-weight:300;line-height:1.85;margin:0}
.grid-images{
  max-width:var(--maxw);margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:repeat(2,1fr);gap:4px;
}
.grid-images figure{margin:0;overflow:hidden}
.grid-images img{width:100%;height:420px;object-fit:cover;display:block;transition:transform .6s ease}
.grid-images img:hover{transform:scale(1.06)}

/* ===== Gallery lightbox ===== */
body.lightbox-open{overflow:hidden}
.lightbox{
  position:fixed;inset:0;z-index:50;
  display:flex;align-items:center;justify-content:center;
  background:rgba(15,18,20,.94);
  opacity:0;visibility:hidden;padding:60px 40px;
  transition:opacity .35s ease, visibility 0s linear .35s;
}
.lightbox.show{opacity:1;visibility:visible;transition:opacity .35s ease}
.lightbox img{max-width:90vw;max-height:86vh;object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox video{max-width:90vw;max-height:86vh;object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox-close{
  position:absolute;top:24px;right:32px;z-index:2;
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:50%;
  color:var(--white);font-size:1.5rem;line-height:1;cursor:pointer;
  transition:background .3s ease, border-color .3s ease;
}
.lightbox-close:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6)}
.lightbox-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:52px;height:52px;display:flex;align-items:center;justify-content:center;
  background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:50%;
  color:var(--white);font-size:1.6rem;line-height:1;cursor:pointer;
  transition:background .3s ease, border-color .3s ease;
}
.lightbox-arrow:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6)}
.lightbox-arrow-prev{left:24px}
.lightbox-arrow-next{right:24px}

/* ===== Indoors — room cards (Living / Kitchen / Rooms) ===== */
.room-cards{
  max-width:var(--maxw);margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:4px;
}
@media(min-width:761px){
  [data-grid="indoors"] .room-cards{grid-template-columns:repeat(4,1fr)}
}
.room-card{
  display:block;position:relative;border:0;padding:0;margin:0;
  background:none;cursor:pointer;text-align:left;font:inherit;color:inherit;
  overflow:hidden;
}
.room-card-img{display:block;overflow:hidden}
.room-card-img img{
  width:100%;height:520px;object-fit:cover;display:block;
  transition:transform .7s ease;
}
.room-card:hover .room-card-img img{transform:scale(1.05)}
.room-card-label{
  display:block;text-align:center;padding:22px 12px 0;
}
.room-card-index{
  display:block;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ink-soft);opacity:.7;margin-bottom:8px;
}
.room-card-title{
  display:block;font-family:var(--sans);font-weight:400;text-transform:uppercase;
  letter-spacing:.16em;font-size:.95rem;color:var(--ink);
}

/* ===== Coastlines — scrolling carousel, 3 vignettes visible at a time ===== */
.coast-carousel-wrap{
  position:relative;
  max-width:var(--maxw);margin:0 auto;padding:0 40px;
}
.coast-carousel{
  display:flex;gap:4px;
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.coast-carousel::-webkit-scrollbar{display:none}
.coast-card{
  flex:0 0 calc((100% - 8px)/3);
  margin:0;scroll-snap-align:start;overflow:hidden;
}
.coast-card img,.coast-card video{
  width:100%;height:520px;object-fit:cover;display:block;
  transition:transform .7s ease;
}
.coast-card img:hover,.coast-card video:hover{transform:scale(1.05)}
.coast-arrow{
  position:absolute;top:260px;transform:translateY(-50%);z-index:2;
  width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  background:var(--stone);border:1px solid var(--stone-dark);border-radius:50%;
  color:var(--ink);font-size:1.1rem;line-height:1;cursor:pointer;
  transition:background .3s ease, border-color .3s ease, opacity .3s ease;
}
.coast-arrow:hover{background:var(--white);border-color:var(--ink-soft)}
.coast-arrow[disabled]{opacity:.3;cursor:default;pointer-events:none}
.coast-arrow-prev{left:6px}
.coast-arrow-next{right:6px}

/* ===== Room overlay — expanded gallery for a room card ===== */
body.room-overlay-open{overflow:hidden}
.room-overlay{
  position:fixed;inset:0;z-index:45;
  background:rgba(15,18,20,.97);
  opacity:0;visibility:hidden;overflow-y:auto;
  transition:opacity .35s ease, visibility 0s linear .35s;
}
.room-overlay.show{opacity:1;visibility:visible;transition:opacity .35s ease}
.room-overlay-inner{
  max-width:1100px;margin:0 auto;padding:100px 40px 80px;
}
.room-overlay-close{
  position:fixed;top:24px;right:32px;z-index:2;
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:50%;
  color:var(--white);font-size:1.5rem;line-height:1;cursor:pointer;
  transition:background .3s ease, border-color .3s ease;
}
.room-overlay-close:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6)}
.room-overlay-eyebrow{
  display:block;text-align:center;color:var(--white);opacity:.6;
  font-size:.76rem;letter-spacing:.3em;text-transform:uppercase;margin-bottom:14px;
}
.room-overlay-title{
  text-align:center;color:var(--white);margin:0 0 28px;
  font-family:var(--serif);font-weight:600;font-size:clamp(2rem,4.5vw,3.2rem);
}
.room-overlay-intro{
  text-align:center;color:var(--white);opacity:.85;
  margin:0 0 48px;
  font-size:1.2rem;font-weight:300;line-height:1.8;
  white-space:pre-line;
}
.room-overlay-intro-narrow{
  max-width:820px;margin-left:auto;margin-right:auto;
}
body.theme-white .room-overlay-intro{color:var(--ink)}
.room-overlay-section-title{
  text-align:center;color:var(--white);margin:0 0 20px;
  font-family:var(--serif);font-weight:600;font-size:clamp(1.3rem,2.2vw,1.7rem);
}
body.theme-white .room-overlay-section-title{color:var(--ink)}
.room-overlay-sections{margin-top:4px}
.room-overlay-section{margin-bottom:72px}
.room-overlay-section:last-child{margin-bottom:0}
.room-overlay-intro-after-grid{margin-top:40px;margin-bottom:0}
.coast-card-caption{
  display:block;text-align:center;padding-top:14px;
  font-family:var(--sans);font-weight:400;text-transform:uppercase;
  letter-spacing:.22em;font-size:.72rem;color:var(--white);opacity:.7;
}
body.theme-white .coast-card-caption{color:var(--ink-soft);opacity:.85}
.room-overlay-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:6px;
}
.room-overlay-grid figure{margin:0;overflow:hidden}
.room-overlay-grid img{
  width:100%;height:360px;object-fit:cover;display:block;
  transition:transform .6s ease;
}
.room-overlay-grid img:hover{transform:scale(1.05)}
.room-overlay-grid video{
  width:100%;height:360px;object-fit:cover;display:block;background:#000;
  transition:transform .6s ease;cursor:zoom-in;
}
.room-overlay-grid video:hover{transform:scale(1.05)}
.room-overlay-grid.is-carousel{display:block}
.room-overlay-grid.is-carousel .coast-carousel-wrap{padding:0}
@media(min-width:761px){
  /* Living carousel — same vertical (portrait) vignette format as the
     Indoors room cards (Living / Kitchen / Rooms), instead of the wider
     Coastlines crop. */
  .room-overlay-grid.is-carousel .coast-card{flex:0 0 410px}
  .room-overlay-grid.is-carousel .coast-card img,
  .room-overlay-grid.is-carousel .coast-card video{height:520px}
}

/* ===== Sound toggle (background music) ===== */
.sound-toggle{
  position:fixed;right:28px;bottom:28px;z-index:40;
  width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  background:rgba(15,18,20,.55);backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.4);border-radius:50%;
  color:var(--white);cursor:pointer;
  transition:background .3s ease, border-color .3s ease, transform .3s ease;
}
.sound-toggle:hover{background:rgba(15,18,20,.75);border-color:rgba(255,255,255,.7)}
.sound-icon{display:block}
.sound-icon-on{display:none}
.sound-toggle[aria-pressed="true"] .sound-icon-off{display:none}
.sound-toggle[aria-pressed="true"] .sound-icon-on{display:block}

/* ===== Access distribution ===== */
.access{background:var(--stone);padding:110px 0 60px}
.access-head{max-width:var(--maxw);margin:0 auto 64px;padding:0 40px;text-align:center}
.access-head .eyebrow{
  display:block;font-size:.76rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:16px;
}
.access-head h2{
  font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,3.4vw,2.6rem);
  margin:0;color:var(--ink);
}
.access-list{max-width:var(--maxw);margin:0 auto;padding:0 40px}
.access-item{
  position:relative;display:flex;align-items:center;justify-content:space-between;
  gap:32px;padding:38px 4px;border-top:1px solid var(--stone-dark);
  cursor:pointer;overflow:hidden;
}
.access-list .access-item:last-child{border-bottom:1px solid var(--stone-dark)}
.access-index{
  font-family:var(--serif);font-size:.95rem;color:var(--gold);
  min-width:34px;flex:0 0 auto;
}
.access-text{flex:1 1 auto;position:relative;z-index:2}
.access-text h3{
  font-family:var(--serif);font-weight:600;margin:0 0 6px;
  font-size:clamp(1.6rem,3.4vw,2.5rem);color:var(--ink);
  transition:color .35s ease, transform .35s ease;
}
.access-text p{
  margin:0;font-size:.92rem;color:var(--ink-soft);font-weight:300;
  max-width:520px;
}
.access-thumb{
  flex:0 0 auto;width:150px;height:104px;overflow:hidden;position:relative;z-index:2;
  background:var(--stone-dark);
}
.access-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.access-arrow{
  flex:0 0 auto;font-family:var(--serif);font-size:1.6rem;color:var(--ink-soft);
  transition:transform .35s ease, color .35s ease;
}
.access-item:hover .access-text h3{color:var(--aegean)}
.access-item:hover .access-thumb img{transform:scale(1.08)}
.access-item:hover .access-arrow{transform:translateX(8px);color:var(--aegean)}

/* ===== Contact ===== */
.contact{background:var(--white);padding:110px 0 100px}
.contact-page{padding-top:150px}
.contact-head{max-width:var(--maxw);margin:0 auto 56px;padding:0 40px;text-align:center}
.contact-head .eyebrow{
  display:block;font-size:.76rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:16px;
}
.contact-head h2{
  font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,3.4vw,2.6rem);
  margin:0 0 18px;color:var(--ink);
}
.contact-lede{max-width:560px;margin:0 auto;color:var(--ink-soft);font-weight:300;font-size:1rem;line-height:1.7}

.contact-grid{
  max-width:var(--maxw);margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:1.6fr 1fr;gap:64px;align-items:start;
}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:26px 28px}
.contact-form .field.full,.contact-form .full{grid-column:1/-1}
.contact-form label{
  display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:8px;
}
.contact-form input,.contact-form textarea{
  width:100%;border:0;border-bottom:1px solid var(--stone-dark);background:none;
  font-family:var(--sans);font-size:.98rem;color:var(--ink);padding:8px 2px;
  transition:border-color .3s ease;
}
.contact-form textarea{resize:vertical;min-height:90px}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--aegean)}
.btn-send{
  margin-top:6px;background:var(--ink);color:var(--white);border:0;cursor:pointer;
  padding:14px 34px;font-family:var(--sans);font-size:.76rem;letter-spacing:.14em;
  text-transform:uppercase;transition:background .3s ease;
}
.btn-send:hover{background:var(--aegean-dark)}
.btn-send:disabled{opacity:.6;cursor:default}
.form-note{display:none;margin-top:14px;font-size:.85rem}
.form-note.show{display:block}
.form-note.success{color:var(--aegean-dark)}
.form-note.error{color:#a4453a}

.direct-contact{padding-top:6px}
.direct-contact h3{font-family:var(--serif);font-weight:600;font-size:1.3rem;margin:0 0 20px;color:var(--ink)}
.direct-contact a{
  display:block;margin-bottom:12px;font-size:.98rem;color:var(--ink);
  border-bottom:1px solid transparent;transition:border-color .3s ease;
}
.direct-contact a:hover{border-color:var(--ink)}
.direct-contact .insta{color:var(--ink-soft);font-size:.86rem}
.direct-contact .reviews-title{margin:28px 0 12px;font-size:.82rem;color:var(--ink-soft);font-weight:300}
.direct-contact .reviews-btn{
  display:inline-block;border:1px solid var(--ink);padding:10px 20px;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);
}
.direct-contact .reviews-btn:hover{background:var(--ink);color:var(--white)}

/* ===== Location ===== */
.location{background:var(--stone);padding:100px 0 100px}
.location-page{padding-top:150px}
.location-head{max-width:var(--maxw);margin:0 auto 48px;padding:0 40px;text-align:center}
.location-head .eyebrow{
  display:block;font-size:.76rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:16px;
}
.location-head h2{
  font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,3.4vw,2.6rem);
  margin:0;color:var(--ink);
}
.location-grid{
  max-width:var(--maxw);margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:1fr 1.3fr;gap:56px;align-items:center;
}
.location-lede{color:var(--ink-soft);font-weight:300;font-size:1rem;line-height:1.75;margin:0 0 32px}
.location-meta{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:0}
.location-meta dt{
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);align-self:start;padding-top:2px;
}
.location-meta dd{margin:0;font-size:.95rem;color:var(--ink)}
.map-frame{
  width:100%;height:420px;border:0;display:block;
  filter:grayscale(.25) sepia(.12) contrast(1.02);
}

/* ===== Amenities ===== */
.amenities{background:var(--white);padding:110px 0 100px}
.amenities-page{padding-top:150px}
.amenities-head{max-width:var(--maxw);margin:0 auto 56px;padding:0 40px;text-align:center}
.amenities-head .eyebrow{
  display:block;font-size:.76rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:16px;
}
.amenities-head h2{
  font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,3.4vw,2.6rem);
  margin:0;color:var(--ink);
}
.amenities-grid{
  max-width:var(--maxw);margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;
}
.amenities-col{text-align:center}
.amenities-col h3{
  font-family:var(--serif);font-weight:600;font-size:clamp(1.1rem,1.6vw,1.35rem);
  margin:0 0 22px;color:var(--ink);letter-spacing:.01em;
}
.amenities-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.amenities-col li{
  font-size:.95rem;font-weight:300;line-height:1.6;color:var(--ink-soft);
}

/* ===== Discover — local recommendations ===== */
.recommend{background:var(--stone);padding:90px 0 100px}
.recommend-grid{
  max-width:var(--maxw);margin:0 auto;padding:0 40px;
  display:grid;grid-template-columns:repeat(5,1fr);gap:22px;
}
.recommend-card{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  background:var(--white);overflow:hidden;
  transition:transform .35s ease, box-shadow .35s ease;
}
.recommend-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(36,35,32,.14)}
.recommend-img{display:block;aspect-ratio:1/1;overflow:hidden}
.recommend-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.recommend-card:hover .recommend-img img{transform:scale(1.06)}
.recommend-body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:9px;flex:1}
.recommend-name{font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--ink)}
.recommend-desc{font-size:.86rem;font-weight:300;line-height:1.6;color:var(--ink-soft)}
.recommend-link{
  font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);margin-top:auto;padding-top:8px;transition:color .3s ease;
}
.recommend-card:hover .recommend-link{color:var(--ink)}

/* ===== Footer ===== */
.v2-footer{
  background:#ffffff;color:#000000;text-align:center;
  padding:44px 24px 30px;
}
.v2-footer .brand{
  display:block;font-family:var(--serif);letter-spacing:.12em;
  text-transform:uppercase;font-size:1rem;margin-bottom:10px;
}
.v2-footer .note{font-size:.76rem;opacity:.55}

/* ===== Responsive ===== */
@media(max-width:760px){
  .site-header{padding:20px 22px}
  .site-header.scrolled{padding:14px 22px}
  .header-right{gap:14px}
  .lang-switch{gap:8px}
  .menu-toggle{padding:8px 14px;font-size:.68rem}
  .mega-menu-inner{flex-direction:column;gap:0;padding:110px 24px 40px;max-width:100%;align-items:stretch;justify-content:flex-start;overflow-y:auto;height:100%}
  .mega-menu-preview{display:none}
  .mega-menu-list{text-align:center}
  .mega-menu-list a{font-size:1.15rem;padding:13px 0;letter-spacing:.1em;font-weight:500}
  .mega-menu-list a:hover,.mega-menu-list a:focus{font-weight:600;letter-spacing:.14em}
  .access{padding:80px 0 40px}
  .access-head{margin-bottom:44px;padding:0 22px}
  .access-list{padding:0 22px}
  .access-item{padding:26px 0;gap:16px}
  .access-thumb{width:88px;height:64px}
  .access-text p{display:none}
  .access-index{min-width:26px;font-size:.8rem}
  .sense video{object-position:center 62%}
  .sense-villa video{object-position:center 38%}
  [data-sense="discover"] video{object-position:center 34%}
  .sense-sub{font-size:1.05rem}
  .contact{padding:70px 0 60px}
  .contact-page{padding-top:100px}
  .location-page{padding-top:100px}
  .sense-art{background-position:center 28%}
  .art{padding:64px 0 56px}
  .art-head{padding:0 22px;margin-bottom:40px}
  .art-triptych{grid-template-columns:1fr;padding:0 22px;gap:8px}
  .art-triptych img{height:260px}
  .art-caption{margin:14px auto 48px}
  .art-single{padding:0 22px}
  .photo-grid{padding:64px 0 56px}
  .grid-head{padding:0 22px;margin-bottom:40px}
  .grid-images{grid-template-columns:1fr;padding:0 22px;gap:8px}
  .grid-images img{height:280px}
  .lightbox{padding:32px 20px}
  .lightbox-close{top:14px;right:16px;width:38px;height:38px;font-size:1.25rem}
  .lightbox-arrow{width:40px;height:40px;font-size:1.25rem}
  .lightbox-arrow-prev{left:8px}
  .lightbox-arrow-next{right:8px}
  .room-cards{grid-template-columns:1fr;padding:0 22px;gap:28px}
  .room-card-img img{height:340px}
  .room-overlay-inner{padding:80px 22px 56px}
  .coast-carousel-wrap{padding:0 22px}
  .coast-card{flex:0 0 82%}
  .coast-card img,.coast-card video{height:340px}
  .coast-arrow{width:38px;height:38px;font-size:1rem;top:170px}
  .coast-arrow-prev{left:-4px}
  .coast-arrow-next{right:-4px}
  .room-overlay-grid{grid-template-columns:1fr;gap:8px}
  .room-overlay-grid img{height:260px}
  .room-overlay-grid video{height:260px}
  .room-overlay-close{top:14px;right:16px;width:38px;height:38px;font-size:1.25rem}
  .sound-toggle{right:16px;bottom:16px;width:42px;height:42px}
  .contact-head{padding:0 22px;margin-bottom:40px}
  .contact-grid{padding:0 22px;grid-template-columns:1fr;gap:48px}
  .contact-form{grid-template-columns:1fr}
  .contact-form .field{grid-column:1/-1}
  .location{padding:64px 0 60px}
  .location-head{padding:0 22px;margin-bottom:36px}
  .location-grid{padding:0 22px;grid-template-columns:1fr;gap:34px}
  .map-frame{height:300px}
  .amenities{padding:64px 0 60px}
  .amenities-page{padding-top:100px}
  .amenities-head{padding:0 22px;margin-bottom:40px}
  .amenities-grid{padding:0 22px;grid-template-columns:1fr;gap:40px}
  .recommend{padding:64px 0 60px}
  .recommend-grid{padding:0 22px;grid-template-columns:1fr;gap:20px}
}
