/* =========================================================
   PANGEA · "Lido" — sun-bleached 1970s Riviera heritage
   Playfair Display + Jost · collage / scrapbook layout
   ========================================================= */

:root{
  --sand:#E8DCC4;        /* primary background — sun-baked sand */
  --cream:#FFF7E9;       /* cards / overlays — sunlit cream */
  --terra:#C05B3F;       /* primary accent / CTA — faded terracotta */
  --teal:#2A6E78;        /* secondary accent — aegean */
  --char:#2C2A29;        /* type — warm charcoal */
  --coral:#F29D7E;       /* hover / soft chips — faded coral */
  --sand-deep:#DBCBA9;   /* darker sand for section breaks */

  --maxw:1200px;
  --gutter:clamp(1.1rem, 4vw, 3.5rem);
  --radius:3px;
  --shadow-card:0 10px 30px -10px rgba(44,42,41,.32), 0 2px 8px -4px rgba(44,42,41,.25);
  --shadow-lift:0 28px 56px -18px rgba(44,42,41,.42), 0 6px 14px -6px rgba(44,42,41,.3);

  --serif:"Playfair Display", Georgia, serif;
  --sans:"Jost", system-ui, sans-serif;

  /* faded film grade — applied to photos, lifts to vivid on hover */
  --grade-faded:saturate(.72) contrast(.94) brightness(1.05) sepia(.16);
  --grade-vivid:saturate(1.06) contrast(1.02) brightness(1.0) sepia(0);
}

*{box-sizing:border-box;margin:0;padding:0}
html{ -webkit-text-size-adjust:100%; }
html:not(.lenis){ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html:not(.lenis){ scroll-behavior:auto; } }
html.lenis{ scroll-behavior:auto !important; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-stopped{ overflow:hidden; }

body{
  font-family:var(--sans);
  color:var(--char);
  background:var(--sand);
  line-height:1.62;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
em{font-style:italic}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.skip{position:fixed;top:-100px;left:1rem;z-index:200;background:var(--char);color:var(--cream);padding:.7rem 1.1rem;border-radius:var(--radius)}
.skip:focus{top:1rem}

:focus-visible{outline:2.5px solid var(--teal);outline-offset:3px}

/* ---------- film grain + vignette overlays ---------- */
.grain{
  position:fixed;inset:0;z-index:150;pointer-events:none;opacity:.06;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.vignette{
  position:fixed;inset:0;z-index:140;pointer-events:none;
  box-shadow:inset 0 0 180px 40px rgba(120,96,60,.18);
}

/* ---------- typography ---------- */
.kicker{
  font-family:var(--sans);font-weight:500;font-size:.74rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--terra);margin-bottom:1.1rem;
}
.kicker--light{color:var(--cream)}
.kicker--center{text-align:center}

.display{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(2.4rem, 6.2vw, 5rem);
  line-height:1.02;letter-spacing:-.01em;color:var(--char);
}
.display em{font-weight:500;color:var(--terra)}
.display--sm{font-size:clamp(1.9rem,4vw,3rem)}

.lede{font-size:clamp(1.06rem,1.5vw,1.28rem);line-height:1.6;margin-top:1.4rem;max-width:46ch;color:#46423f}
.body{font-size:1rem;margin-top:1rem;max-width:52ch;color:#4c4744}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--sans);font-weight:500;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;
  padding:1rem 1.9rem;border-radius:var(--radius);cursor:pointer;border:1.5px solid transparent;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), background .3s, color .3s, box-shadow .3s;
  min-height:48px;
}
.btn--cta{background:var(--terra);color:var(--cream);box-shadow:0 8px 20px -8px rgba(192,91,63,.6)}
.btn--cta:hover{background:#a94a31;transform:translateY(-2px);box-shadow:0 14px 28px -10px rgba(192,91,63,.7)}
.btn--ghost{border-color:currentColor;background:transparent}
.btn--ghost:hover{background:rgba(255,247,233,.14);transform:translateY(-2px)}
.btn--block{width:100%;margin-top:.4rem}

/* ---------- loader ---------- */
.loader{
  position:fixed;inset:0;z-index:300;background:var(--sand);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;
  transition:opacity .7s ease, visibility .7s;
}
.loader.is-done{opacity:0;visibility:hidden}
.loader__sun{
  width:64px;height:64px;border-radius:50%;
  background:radial-gradient(circle at 50% 45%, var(--coral), var(--terra));
  box-shadow:0 0 0 0 rgba(192,91,63,.4);animation:pulse 1.6s ease-in-out infinite;
}
.loader__word{font-family:var(--serif);font-weight:600;letter-spacing:.5em;font-size:1.1rem;color:var(--char);padding-left:.5em}
@keyframes pulse{0%,100%{transform:scale(.92);box-shadow:0 0 0 0 rgba(192,91,63,.35)}50%{transform:scale(1.05);box-shadow:0 0 0 18px rgba(192,91,63,0)}}
@media (prefers-reduced-motion:reduce){.loader{display:none}}

/* ---------- top bar ---------- */
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:120;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem var(--gutter);
  transition:background .4s, box-shadow .4s, padding .4s;
}
.topbar.is-stuck{background:rgba(232,220,196,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(44,42,41,.1);padding-top:.7rem;padding-bottom:.7rem}
.topbar__brand{font-family:var(--serif);font-weight:600;font-size:1.5rem;letter-spacing:.06em;color:var(--cream);transition:color .4s}
.topbar.is-stuck .topbar__brand{color:var(--char)}
.topbar__nav{display:flex;gap:1.7rem}
.topbar__nav a{font-size:.82rem;letter-spacing:.08em;color:var(--cream);opacity:.9;transition:color .4s,opacity .2s}
.topbar__nav a:hover{opacity:1}
.topbar.is-stuck .topbar__nav a{color:var(--char)}
.topbar__cta{padding:.6rem 1.2rem;min-height:40px}
@media (max-width:860px){.topbar__nav{display:none}}

/* ============ HERO ============ */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--cream);overflow:hidden}
.hero__frame{position:absolute;inset:0;z-index:0}
.hero__img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1) brightness(.96) sepia(.12)}
.hero__wash{position:absolute;inset:0;
  background:linear-gradient(to top, rgba(40,30,18,.78) 0%, rgba(40,30,18,.28) 42%, rgba(40,30,18,.12) 70%, rgba(40,30,18,.32) 100%);
}
.hero__sun{position:absolute;top:11%;right:8%;width:clamp(120px,22vw,300px);color:rgba(255,247,233,.5);z-index:1;mix-blend-mode:overlay}
.hero__content{position:relative;z-index:2;padding:0 var(--gutter) clamp(3.5rem,8vh,7rem);max-width:var(--maxw);margin:0 auto;width:100%}
.hero__title{font-family:var(--serif);font-weight:700;font-size:clamp(4rem,16vw,12rem);line-height:.9;letter-spacing:.02em;text-shadow:0 2px 30px rgba(0,0,0,.3)}
.hero__sub{margin-top:1.2rem;font-size:clamp(1.05rem,1.8vw,1.4rem);max-width:40ch;line-height:1.5;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.hero__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.2rem}
.hero__specline{margin-top:2.2rem;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;opacity:.82}
.hero__scroll{position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);z-index:2;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;opacity:.7;writing-mode:vertical-rl;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}
@media (prefers-reduced-motion:reduce){.hero__scroll{animation:none}}

/* ============ SPREAD (scrapbook spreads) ============ */
.spread{position:relative;max-width:var(--maxw);margin:0 auto;padding:clamp(4.5rem,11vh,9rem) var(--gutter)}

/* ---- generic postcard / photo treatment ---- */
.postcard{position:relative}
.photo{
  position:relative;background:var(--cream);padding:.7rem .7rem 1.1rem;border-radius:var(--radius);
  box-shadow:var(--shadow-card);
  transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s;
  will-change:transform;
}
.photo img{
  width:100%;height:100%;object-fit:cover;border-radius:1px;
  filter:var(--grade-faded);transition:filter .6s ease;
}
.photo .stamp{
  position:absolute;left:.9rem;bottom:.28rem;
  font-family:var(--sans);font-weight:500;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--char);opacity:.55;transition:opacity .4s,color .4s;
}
/* postcard hover — tilt to flat, color-grade to vivid, long afternoon shadow, stamp brightens */
.tilt-l .photo{transform:rotate(-2.6deg)}
.tilt-r .photo{transform:rotate(2.4deg)}
@media (hover:hover){
  .tilt-l:hover .photo,.tilt-r:hover .photo{transform:rotate(0deg) scale(1.018);box-shadow:var(--shadow-lift)}
  .postcard:hover .photo img{filter:var(--grade-vivid)}
  .postcard:hover .stamp{opacity:1;color:var(--terra)}
}
.photo--portrait{aspect-ratio:auto}

/* ---- experience spread ---- */
.spread--experience{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(1.5rem,4vw,4rem);align-items:center}
.postcard--lg{align-self:stretch}
.postcard--lg .photo img{aspect-ratio:4/3}
.postcard--sm{position:absolute;right:var(--gutter);bottom:6%;width:min(28vw,300px);z-index:3}
.postcard--sm .photo img{aspect-ratio:5/4}
.spread__text{grid-column:2}

/* ---- specs ---- */
.specs{background:var(--sand-deep);border-top:1px solid rgba(44,42,41,.1);border-bottom:1px solid rgba(44,42,41,.1)}
.specs{padding:clamp(3rem,7vh,5rem) var(--gutter)}
.specs .kicker{text-align:center}
.specs__grid{list-style:none;max-width:var(--maxw);margin:1.5rem auto 0;display:grid;grid-template-columns:repeat(6,1fr);gap:1.5rem;text-align:center}
.spec{display:flex;flex-direction:column;align-items:center}
.spec__val{font-family:var(--serif);font-weight:600;font-size:clamp(2rem,4vw,3.2rem);line-height:1;color:var(--teal)}
.spec__unit{font-family:var(--serif);font-size:1rem;color:var(--terra);margin-top:.2rem;min-height:1rem}
.spec__label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;margin-top:.7rem;opacity:.7}
@media (max-width:780px){.specs__grid{grid-template-columns:repeat(3,1fr);gap:2rem 1rem}}
@media (max-width:380px){.specs__grid{grid-template-columns:repeat(2,1fr)}}

/* ---- why ---- */
.spread--why{display:grid;grid-template-columns:1.15fr .85fr;grid-template-areas:"head photo" "list photo";gap:clamp(1.5rem,4vw,3.5rem) clamp(2rem,5vw,4.5rem);align-items:start}
.why__head{grid-area:head}
.postcard--why{grid-area:photo;position:sticky;top:13vh}
.postcard--why .photo img{aspect-ratio:3/4}
.why__list{grid-area:list;list-style:none;counter-reset:why}
.why__item{padding:1.5rem 0;border-top:1px solid rgba(44,42,41,.16);position:relative}
.why__item:last-child{border-bottom:1px solid rgba(44,42,41,.16)}
.why__num{font-family:var(--serif);font-style:italic;color:var(--terra);font-size:1.1rem;margin-right:.7rem}
.why__item h3{display:inline;font-family:var(--serif);font-weight:600;font-size:1.5rem}
.why__item p{margin-top:.5rem;color:#4c4744;max-width:48ch}
@media (max-width:880px){.spread--why{grid-template-columns:1fr;grid-template-areas:"head" "photo" "list"}.postcard--why{position:static;max-width:420px}.postcard--why .photo img{aspect-ratio:4/3}}

/* ---- deck + deckmap ---- */
.deck__head{max-width:48ch;margin-bottom:3rem}
.deckmap{display:grid;grid-template-columns:1.55fr 1fr;gap:2rem;align-items:center}
.deckmap__stage{position:relative;background:var(--cream);padding:1rem;border-radius:var(--radius);box-shadow:var(--shadow-card)}
.deckmap__base{width:100%;border-radius:1px;filter:var(--grade-faded)}
.hot{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border:none;background:transparent;cursor:pointer;display:grid;place-items:center;padding:0}
.hot__dot{width:18px;height:18px;border-radius:50%;background:var(--terra);box-shadow:0 0 0 0 rgba(192,91,63,.5);position:relative;transition:transform .3s}
.hot__dot::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1.5px solid rgba(192,91,63,.55);animation:ring 2.4s ease-out infinite}
@keyframes ring{0%{transform:scale(.7);opacity:.9}100%{transform:scale(1.8);opacity:0}}
@media (prefers-reduced-motion:reduce){.hot__dot::after{animation:none;opacity:.5}}
.hot:hover .hot__dot,.hot:focus-visible .hot__dot,.hot.is-active .hot__dot{transform:scale(1.35);background:var(--teal)}
.hot.is-active .hot__dot::after{border-color:rgba(42,110,120,.6)}

.deckmap__panel{}
.deckmap__card{background:var(--cream);padding:.7rem .7rem 1rem;border-radius:var(--radius);box-shadow:var(--shadow-card)}
.deckmap__card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:1px;filter:var(--grade-vivid)}
.deckmap__card figcaption{padding:.9rem .3rem 0}
.deckmap__card h3{font-family:var(--serif);font-weight:600;font-size:1.4rem;color:var(--teal)}
.deckmap__card p{font-size:.95rem;margin-top:.3rem;color:#4c4744}

.deck__list{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:3rem}
.deck__list h3{font-family:var(--serif);font-weight:600;font-size:1.2rem;color:var(--terra);margin-bottom:.4rem}
.deck__list p{font-size:.92rem;color:#4c4744}
@media (max-width:980px){.deckmap{grid-template-columns:1fr}.deck__list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.deck__list{grid-template-columns:1fr}}

/* ---- toys ---- */
.spread--toys{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;position:relative;min-height:60vh}
.postcard--toys{grid-row:1;grid-column:1}
.postcard--toys .photo img{aspect-ratio:4/5}
.postcard--toys2{position:absolute;left:24%;bottom:8%;width:min(24vw,260px);z-index:3}
.postcard--toys2 .photo img{aspect-ratio:1/1}
.toys__text{grid-column:2}
.toys__chips{list-style:none;display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
.toys__chips li{background:var(--cream);border:1px solid rgba(192,91,63,.25);color:var(--char);padding:.55rem 1.1rem;border-radius:100px;font-size:.85rem;transition:background .25s,color .25s,border-color .25s}
.toys__chips li:hover{background:var(--coral);border-color:var(--coral);color:var(--char)}
@media (max-width:780px){.spread--toys{grid-template-columns:1fr;min-height:0}.postcard--toys2{position:static;width:60%;margin-top:-12%;margin-left:auto}.toys__text{grid-column:1}}

/* ---- interior ---- */
.interior__head{max-width:52ch;margin-bottom:3rem}
.interior__collage{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.2rem,3vw,2.5rem) clamp(1rem,2.5vw,2rem)}
.room{display:flex;flex-direction:column}
.room:nth-child(1){grid-column:1/7}
.room:nth-child(2){grid-column:7/13;margin-top:3.5rem}
.room:nth-child(3){grid-column:1/6;margin-top:1rem}
.room:nth-child(4){grid-column:6/13;margin-top:-1rem}
.room .photo img{aspect-ratio:4/3}
.room__cap{margin-top:1.1rem;padding:0 .3rem}
.room__cap h3{font-family:var(--serif);font-weight:600;font-size:1.4rem;color:var(--terra)}
.room__cap p{font-size:.95rem;margin-top:.35rem;color:#4c4744;max-width:44ch}
@media (max-width:780px){.interior__collage{display:flex;flex-direction:column;gap:2.5rem}.room{margin:0 !important}.room:nth-child(even){align-self:flex-end}.room{width:88%}}

/* ---- pricing ---- */
.spread--pricing{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.price__card{background:var(--char);color:var(--cream);padding:clamp(1.8rem,4vw,3rem);border-radius:var(--radius);box-shadow:var(--shadow-lift)}
.price__card .kicker{color:var(--coral)}
.price__card .display{color:var(--cream)}
.price__rate{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.4rem);margin-top:1.5rem;font-weight:500}
.price__rate em{color:var(--coral);font-style:italic;font-weight:600}
.price__rate span{font-family:var(--sans);font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.price__note{font-size:.85rem;opacity:.7;margin-top:.4rem}
.price__addons{margin:1.8rem 0;border-top:1px solid rgba(255,247,233,.2);padding-top:1.4rem}
.price__addons p{font-size:.95rem;opacity:.9;margin-bottom:1rem}
.price__addons strong{color:var(--coral);font-weight:600}
.price__lists{display:grid;gap:2rem}
.price__colhead{font-family:var(--serif);font-weight:600;font-size:1.4rem;margin-bottom:1rem;display:flex;align-items:center;gap:.6rem}
.price__colhead--yes{color:var(--teal)}
.price__colhead--no{color:var(--terra)}
.price__colhead::before{content:"";width:24px;height:2px;background:currentColor}
.price__list{list-style:none}
.price__list li{padding:.6rem 0 .6rem 1.7rem;border-bottom:1px solid rgba(44,42,41,.12);position:relative;font-size:.96rem}
.price__list li::before{content:"✓";position:absolute;left:0;color:var(--teal);font-weight:700}
.price__list--no li::before{content:"–";color:var(--terra)}
@media (max-width:880px){.spread--pricing{grid-template-columns:1fr}}

/* ---- crew + culinary + testimonials ---- */
.crew__head{margin-bottom:3rem}
.crew__cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem)}
.crewcard{display:flex;flex-direction:column}
.crewcard .photo img{aspect-ratio:3/4}
.crewcard__body{margin-top:1.2rem;padding:0 .3rem}
.crewcard__role{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terra)}
.crewcard__body h3{font-family:var(--serif);font-weight:600;font-size:1.8rem;margin:.2rem 0 .6rem}
.crewcard__body p{color:#4c4744;max-width:46ch}
.crewcard__creds{font-size:.82rem;color:var(--teal);margin-top:.7rem;font-weight:500}
@media (max-width:680px){.crew__cards{grid-template-columns:1fr;gap:3rem}}

.culinary{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;margin-top:5rem}
.postcard--culinary .photo img{aspect-ratio:4/3}
.culinary__text .display--sm{margin-bottom:.4rem}
@media (max-width:780px){.culinary{grid-template-columns:1fr}}

.testi{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;margin-top:5rem}
.testi__item{background:var(--cream);padding:1.8rem;border-radius:var(--radius);box-shadow:var(--shadow-card);position:relative}
.testi__item::before{content:"”";position:absolute;top:-.2rem;left:1rem;font-family:var(--serif);font-size:4rem;color:var(--coral);opacity:.6;line-height:1}
.testi__item p{font-family:var(--serif);font-style:italic;font-size:1.08rem;line-height:1.5;margin-top:1.5rem}
.testi__item cite{display:block;margin-top:1rem;font-style:normal;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
@media (max-width:880px){.testi{grid-template-columns:1fr}}

/* ---- gallery ---- */
.gal__head{margin-bottom:2.5rem}
.gal__grid{columns:3;column-gap:clamp(.8rem,2vw,1.4rem)}
.gal__item{break-inside:avoid;margin-bottom:clamp(.8rem,2vw,1.4rem);width:100%;border:none;background:var(--cream);padding:.5rem;border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:pointer;display:block;transition:transform .4s,box-shadow .4s}
.gal__item img{width:100%;border-radius:1px;filter:var(--grade-faded);transition:filter .5s}
.gal__item:nth-child(3n){transform:rotate(1.4deg)}
.gal__item:nth-child(3n+1){transform:rotate(-1.2deg)}
@media (hover:hover){.gal__item:hover{transform:rotate(0) scale(1.02);box-shadow:var(--shadow-lift);z-index:2;position:relative}.gal__item:hover img{filter:var(--grade-vivid)}}
@media (max-width:880px){.gal__grid{columns:2}}
@media (max-width:480px){.gal__grid{columns:1}}

/* ---- enquiry ---- */
.spread--enquire{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.enq__photo .photo img{aspect-ratio:3/4}
.enq__panel{background:var(--cream);padding:clamp(1.8rem,4vw,3rem);border-radius:var(--radius);box-shadow:var(--shadow-card)}
.enq__form{margin-top:1.8rem}
.field{margin-bottom:1.1rem}
.field--row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label{display:block;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:.4rem}
.field input,.field select,.field textarea{
  width:100%;font-family:var(--sans);font-size:1rem;color:var(--char);
  background:var(--sand);border:1.5px solid rgba(44,42,41,.18);border-radius:var(--radius);
  padding:.8rem .9rem;transition:border-color .25s,background .25s;min-height:48px;
}
.field textarea{min-height:auto;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--terra);background:#fff}
.field input.is-invalid,.field [aria-invalid="true"]{border-color:var(--terra);background:#fbeae4}
.field__err{display:block;font-size:.78rem;color:var(--terra);margin-top:.35rem;min-height:1em}
.enq__reassure{font-size:.85rem;color:#4c4744;margin-top:1rem}
.enq__response{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-top:.5rem}
.enq__success{margin-top:1.2rem;background:var(--teal);color:var(--cream);padding:1.1rem 1.3rem;border-radius:var(--radius);font-size:1rem}
@media (max-width:880px){.spread--enquire{grid-template-columns:1fr}.enq__photo{max-width:360px}.field--row{grid-template-columns:1fr}}

/* ---- footer ---- */
.footer{background:var(--char);color:var(--cream);text-align:center;padding:clamp(3rem,7vh,5rem) var(--gutter)}
.footer__brand{font-family:var(--serif);font-weight:600;font-size:2.4rem;letter-spacing:.1em;margin-bottom:1.4rem}
.footer__line{font-size:.92rem;opacity:.85;margin:.3rem 0}
.footer__line a{color:var(--coral)}
.footer__credits{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;opacity:.6}

/* ============ LIGHTBOX ============ */
.lightbox{position:fixed;inset:0;z-index:250;background:rgba(40,30,18,.94);display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,4rem)}
.lightbox[hidden]{display:none}
.lightbox__fig{max-width:92vw;max-height:88vh}
.lightbox__fig img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:2px;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);background:var(--cream);padding:.6rem}
.lightbox__close{position:absolute;top:1.2rem;right:1.4rem;width:48px;height:48px;border:none;background:rgba(255,247,233,.12);color:var(--cream);font-size:2rem;line-height:1;border-radius:50%;cursor:pointer;transition:background .25s}
.lightbox__close:hover{background:rgba(255,247,233,.25)}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;border:none;background:rgba(255,247,233,.12);color:var(--cream);font-size:2.2rem;line-height:1;border-radius:50%;cursor:pointer;transition:background .25s}
.lightbox__nav:hover{background:rgba(255,247,233,.25)}
.lightbox__nav--prev{left:1.4rem}
.lightbox__nav--next{right:1.4rem}
@media (max-width:600px){.lightbox__nav{width:46px;height:46px;font-size:1.8rem}.lightbox__nav--prev{left:.5rem}.lightbox__nav--next{right:.5rem}}

/* ============ REVEAL (JS-gated start states) ============ */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1)}
.js .reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1 !important;transform:none !important;transition:none}
  .tilt-l .photo,.tilt-r .photo{transform:none !important}
  .photo img{filter:var(--grade-vivid)}
}
