/* Dreams Creation Events — design system v1 (shared by all pages). Source of truth: approved homepage. */

a{color:#444B35}a:hover{color:#292D23}
.v3{--ivory:#F5F1E7;--ivory2:#FBF8F1;--stone:#EDE6D9;--beige:#D9CBB7;--olive:#444B35;--olive-m:#777B60;--char:#292D23;--char-d:#20231B;--ink:#25281E;--text:#3C3F33;--muted:#5A5D4C;
--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
--max:1400px;--m:56px;--gap:28px;--sec:120px;--r:10px;--ease:cubic-bezier(.22,.68,.12,1);
--glass:rgba(41,45,35,.44);--glass-b:rgba(245,241,231,.24);--glass-l:rgba(245,241,231,.62);
position:relative;background:var(--ivory);color:var(--text);font-family:var(--sans);font-size:16.5px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:clip}
.v3 *,.v3 *::before,.v3 *::after{box-sizing:border-box}
.v3 img,.v3 video{display:block;max-width:100%}
.v3 h1,.v3 h2,.v3 h3,.v3 p,.v3 figure,.v3 ul,.v3 ol,.v3 dl,.v3 dd,.v3 address{margin:0;padding:0;font-style:normal}
.v3 ul,.v3 ol{list-style:none}
.v3 a{text-decoration:none}
.v3 button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.v3 :focus-visible{outline:2px solid var(--olive);outline-offset:3px}
.v3 .dark :focus-visible{outline-color:var(--beige)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed!important;z-index:100;left:16px;top:16px;width:auto;height:auto;clip:auto;background:var(--olive);color:var(--ivory);padding:12px 18px}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--m)}
.sec{padding:var(--sec) 0}
.bg-stone{background:var(--stone)}.bg-beige{background:var(--beige)}.bg-olive{background:var(--olive)}.bg-char{background:var(--char)}
/* type */
.eb{display:inline-flex;align-items:center;gap:14px;font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--olive-m);margin-bottom:20px}
.eb::before{content:"";width:34px;height:1px;background:currentColor}
.center .eb::after,.eb.center::after{content:"";width:34px;height:1px;background:currentColor}
.dark .eb{color:var(--beige)}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(36px,3.9vw,58px);line-height:1.08;letter-spacing:-.005em;color:var(--ink)}
.h2 em,.h3 em{font-style:italic;color:var(--olive-m)}
.h3{font-family:var(--serif);font-weight:500;font-size:clamp(24px,1.9vw,29px);line-height:1.15;color:var(--ink)}
.dark,.dark p{color:#E5DED0}
.dark .h2,.dark .h3{color:var(--ivory)}
.dark .h2 em,.dark .h3 em{color:var(--beige)}
.lede{font-size:clamp(16.5px,1.2vw,18px);line-height:1.75}
.center{text-align:center}
.center .lede{margin-left:auto;margin-right:auto}
.shead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-bottom:52px}
.shead .lede{max-width:52ch;margin-top:16px}
.chead{max-width:820px;margin:0 auto 56px;text-align:center}
.chead .lede{max-width:60ch;margin-top:18px}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:0 30px;border:1px solid var(--olive);border-radius:2px;background:var(--olive);color:var(--ivory)!important;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease)}
.btn:hover{background:var(--char);border-color:var(--char);transform:translateY(-2px)}
.btn.light{background:var(--ivory);border-color:var(--ivory);color:var(--olive)!important}
.btn.light:hover{background:var(--beige);border-color:var(--beige);color:var(--char)!important}
.btn.ghost{background:transparent;color:var(--olive)!important}
.btn.ghost:hover{background:var(--olive);color:var(--ivory)!important}
.btn.ghost-l{background:transparent;border-color:rgba(245,241,231,.6);color:var(--ivory)!important}
.btn.ghost-l:hover{background:var(--ivory);color:var(--olive)!important}
.btn svg{width:18px;height:18px;flex:none;fill:currentColor}
.ul{position:relative;display:inline-flex;align-items:center;gap:12px;padding:6px 0;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--olive)}
.ul::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:left;transition:transform .6s var(--ease)}
.ul:hover::after{transform:scaleX(.3)}
.ul svg{width:22px;height:12px;transition:transform .5s var(--ease)}
.ul:hover svg{transform:translateX(5px)}
.dark .ul{color:var(--ivory)}
.ic{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
/* glass */
.glass{background:var(--glass);border:1px solid var(--glass-b);-webkit-backdrop-filter:blur(14px) saturate(1.15);backdrop-filter:blur(14px) saturate(1.15);color:var(--ivory)}
.glass-l{background:rgba(245,241,231,.7);border:1px solid rgba(255,255,255,.55);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--ink)}
/* carousel controls */
.ctl{display:flex;align-items:center;gap:10px}
.arr{display:inline-flex;width:50px;height:50px;align-items:center;justify-content:center;border:1px solid rgba(68,75,53,.35);border-radius:50%;color:var(--olive);background:transparent;transition:background .35s,color .35s,border-color .35s,transform .35s var(--ease)}
.arr:hover{background:var(--olive);border-color:var(--olive);color:var(--ivory);transform:scale(1.05)}
.arr svg{width:18px;height:12px}
.dark .arr{border-color:rgba(245,241,231,.35);color:var(--ivory)}
.dark .arr:hover{background:var(--ivory);color:var(--char)}
.dots{display:flex;justify-content:center;gap:8px;margin-top:30px}
.dot{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center}
.dot i{display:block;width:8px;height:8px;border-radius:50%;background:rgba(68,75,53,.28);transition:width .4s var(--ease),background .4s}
.dot.on i{width:26px;border-radius:4px;background:var(--olive)}
.dark .dot i{background:rgba(245,241,231,.3)}.dark .dot.on i{background:var(--beige)}
.track{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;overscroll-behavior-x:contain}
.track::-webkit-scrollbar{display:none}
.track > *{scroll-snap-align:start;flex:none}
.bleed{padding:4px var(--m) 8px;scroll-padding-left:var(--m)}
.prog{flex:1;height:1px;background:rgba(68,75,53,.2);position:relative;overflow:hidden;max-width:260px}
.prog i{position:absolute;inset:0;background:var(--olive);transform-origin:left;transition:transform .3s}
.dark .prog{background:rgba(245,241,231,.22)}.dark .prog i{background:var(--beige)}
/* media */
.fr{position:relative;display:block;overflow:hidden;border-radius:var(--r);background:var(--stone)}
.fr img,.fr video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zoom img,.zoom video{transition:transform 1.3s var(--ease)}
.zoom:hover img,.zoom:hover video,.zoom:focus-visible img{transform:scale(1.06)}
.dark .fr{background:#33382B}
.tile{display:block;width:100%;text-align:left;cursor:zoom-in}
/* reveals */
.anim .rv{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.anim .rv.in{opacity:1;transform:none}
/* 1 header */
.hdr{position:sticky;top:0;z-index:40;background:var(--ivory);border-bottom:1px solid rgba(68,75,53,.12);transition:box-shadow .4s}
.hdr.scrolled{box-shadow:0 12px 30px -24px rgba(41,45,35,.55)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:28px;height:92px;transition:height .45s var(--ease)}
.hdr.scrolled .hdr-in{height:74px}
.logo{display:block;height:70px;transition:height .45s var(--ease)}
.hdr.scrolled .logo{height:56px}
.logo img{height:100%;width:auto}
.nav{display:flex;gap:30px}
.nav a{position:relative;padding:10px 0;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--olive);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav a:hover::after,.nav a.cur::after{transform:scaleX(1);transform-origin:left}
.nav a.cur{color:var(--olive)}
.hdr-r{display:flex;align-items:center;gap:14px}
.ig{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;color:var(--olive);border-radius:50%;transition:background .3s}
.ig:hover{background:var(--stone)}
.ig svg{width:19px;height:19px}
.hdr .btn{min-height:46px;padding:0 22px;font-size:11.5px}
.burger{display:none;width:48px;height:48px;align-items:center;justify-content:center;color:var(--ink)}
.burger svg{width:26px;height:26px}
.menu{position:fixed;inset:0;z-index:60;background:var(--olive);color:var(--ivory);display:flex;flex-direction:column;padding:20px var(--m) 36px;overflow-y:auto}
.menu-top{display:flex;justify-content:space-between;align-items:center;min-height:56px;font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--beige)}
.menu-x{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;color:var(--ivory)}
.menu-x svg{width:24px;height:24px}
.menu ol{margin:28px 0 auto;border-top:1px solid rgba(217,203,183,.25)}
.menu ol a{display:flex;align-items:baseline;gap:18px;padding:13px 0;border-bottom:1px solid rgba(217,203,183,.25);font-family:var(--serif);font-size:34px;line-height:1.15;color:var(--ivory)}
.menu ol a span{font-family:var(--sans);font-size:12px;letter-spacing:.2em;color:var(--beige)}
.menu-foot{display:flex;flex-direction:column;gap:12px;margin-top:32px}
.menu-foot a{color:#E5DED0}
/* 2 hero film: no overlay of any kind */
.hero{position:relative;height:max(560px,min(82vh,54vw));background:var(--char);overflow:hidden}
.hero img,.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
/* 3 intro */
.intro{position:relative;padding:104px 0 112px;text-align:center;overflow:hidden}
.intro .h2{max-width:900px;margin:0 auto;font-size:clamp(38px,4.2vw,62px)}
.intro .lede{max-width:64ch;margin:24px auto 0}
.intro-acts{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px 32px;margin-top:38px}
.orn{display:block;width:220px;height:24px;margin:0 auto 26px;color:var(--olive-m)}
.orn path{stroke-dasharray:240;stroke-dashoffset:240;animation:draw 3.2s var(--ease) .3s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.film-ctl{position:absolute;top:22px;right:var(--m);display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid rgba(68,75,53,.28);border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--olive)}
.film-ctl:hover{background:var(--stone)}
.film-ctl svg{width:12px;height:12px}
/* 4 band */
.band{position:relative;height:clamp(420px,40vw,600px);overflow:hidden;display:flex;align-items:flex-end;justify-content:center;padding-bottom:48px}
.band > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kb 26s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.12) translate(-1.5%,-1%)}}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,0) 45%,rgba(32,35,27,.55) 100%);pointer-events:none}
.band-plate{position:relative;z-index:2;padding:18px 30px;border-radius:999px;text-align:center}
.band-plate small{display:block;font-size:11px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--beige)}
.band-plate b{display:block;margin-top:4px;font-family:var(--serif);font-weight:400;font-size:24px;letter-spacing:.04em}
/* 5 signature carousel (centre mode) */
.sig{scroll-snap-type:x mandatory;padding:4px calc((100% - min(62vw,900px)) / 2) 8px}
.sig > .slide{width:min(62vw,900px);scroll-snap-align:center;position:relative;transition:opacity .6s var(--ease),transform .6s var(--ease)}
.sig > .slide.dim{opacity:.45;transform:scale(.94)}
.sig.jumping > .slide{transition:none}
.slide .fr{aspect-ratio:16 / 10}
.slide-cap{position:absolute;left:20px;bottom:20px;right:20px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;border-radius:8px;pointer-events:none}
.slide-cap b{font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.2}
.slide-cap span{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--beige);white-space:nowrap}
.sig-ctl{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:28px}
.sig-ctl .dots{margin-top:0}
/* 6 story */
.hstory{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:center}
.story-img{grid-column:1 / 7;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:var(--gap);align-items:end}
.story-img .a{grid-column:1 / 5;grid-row:1}.story-img .a .fr{aspect-ratio:4 / 5}
.story-img .b{grid-column:4 / 7;grid-row:1;align-self:end;margin-bottom:-48px;position:relative;z-index:2}.story-img .b .fr{aspect-ratio:3 / 4;border:8px solid var(--stone);box-sizing:content-box}
.story-txt{grid-column:8 / 13}
.story-txt .lede{margin-top:22px}
.points{margin-top:30px;border-top:1px solid rgba(68,75,53,.2)}
.points li{display:flex;gap:18px;align-items:baseline;padding:16px 0;border-bottom:1px solid rgba(68,75,53,.2)}
.points b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:20px;color:var(--olive-m);min-width:28px}
.points span{font-size:15.5px;color:var(--ink)}
.story-txt .ul{margin-top:30px}
/* 7 service cards */
.svc{position:relative;width:clamp(280px,25vw,350px);border-radius:var(--r);overflow:hidden}
.svc .fr{aspect-ratio:3 / 4;border-radius:var(--r)}
.svc .fr::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,0) 40%,rgba(32,35,27,.5) 100%);pointer-events:none}
.svc-panel{position:absolute;left:12px;right:12px;bottom:12px;padding:18px 20px 18px;border-radius:8px;transition:transform .6s var(--ease)}
.svc-panel .n{display:block;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--beige)}
.svc-panel h3{margin-top:4px;font-family:var(--serif);font-weight:500;font-size:24px;line-height:1.15;color:var(--ivory)}
.svc-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.svc-more > div{overflow:hidden}
.svc-more p{padding-top:10px;font-size:14.5px;line-height:1.6;color:#ECE5D7}
.svc-more a{display:inline-flex;align-items:center;gap:10px;margin-top:12px;font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ivory)!important}
.svc-more a svg{width:20px;height:12px}
.svc:hover .svc-more,.svc:focus-within .svc-more{grid-template-rows:1fr}
.svc:hover .fr img{transform:scale(1.06)}
.svc-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:34px}
/* 8 venue */
.venue{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:40px;align-items:start}
.venue-main{grid-column:1 / 8}.venue-main .fr{aspect-ratio:3 / 2}
.venue-side{grid-column:8 / 13;display:flex;flex-direction:column;gap:22px}
.venue-side .lede{margin-top:6px}
.vmini{gap:16px}
.vmini > *{width:calc(50% - 8px)}
.vmini .fr{aspect-ratio:4 / 5}
.vmini figcaption{margin-top:10px;font-size:13.5px;color:#CFC7B6}
.venue-side .ctl{margin-top:4px}
.chip{position:absolute;top:16px;left:16px;padding:8px 14px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
/* 9 floral drift */
.flo{gap:22px;padding:4px 0 8px;scroll-snap-type:none;scroll-behavior:auto}
.flo > *{scroll-snap-align:none}
.fl{position:relative;width:clamp(240px,22vw,320px)}
.fl.w{width:clamp(320px,34vw,480px)}
.fl .fr{aspect-ratio:4 / 5}
.fl.w .fr{aspect-ratio:3 / 2.5}
.fl-cap{position:absolute;left:14px;right:14px;bottom:14px;padding:11px 16px;border-radius:8px;font-size:13.5px;line-height:1.4;opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease);pointer-events:none}
.fl:hover .fl-cap,.fl:focus-within .fl-cap{opacity:1;transform:none}
.flo-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:30px}
.flo-foot p{font-size:14px;color:var(--muted)}
/* 10 portfolio bento */
.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:var(--gap);height:clamp(640px,56vw,820px)}
.pc{position:relative;display:block;border-radius:var(--r);overflow:hidden;background:var(--char);color:var(--ivory)}
.pc .fr{position:absolute;inset:0;border-radius:0}
.pc .fr::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,0) 45%,rgba(32,35,27,.6) 100%)}
.pc.p1{grid-column:1 / 6;grid-row:1 / 3}
.pc.p2{grid-column:6 / 10;grid-row:1}
.pc.p3{grid-column:10 / 13;grid-row:1}
.pc.p4{grid-column:6 / 9;grid-row:2}
.pc.p5{grid-column:9 / 13;grid-row:2}
.pc-panel{position:absolute;left:14px;right:14px;bottom:14px;z-index:2;padding:16px 20px;border-radius:8px;display:flex;justify-content:space-between;align-items:flex-end;gap:14px}
.pc-panel small{display:block;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--beige)}
.pc-panel b{display:block;margin-top:4px;font-family:var(--serif);font-weight:500;font-size:clamp(20px,1.7vw,26px);line-height:1.15}
.pc.p1 .pc-panel b{font-size:clamp(26px,2.3vw,34px)}
.pc-go{flex:none;display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(245,241,231,.4);transition:background .3s,transform .4s var(--ease)}
.pc-go svg{width:16px;height:12px}
.pc:hover .pc-go{background:var(--ivory);color:var(--olive);transform:rotate(-30deg)}
.pc-play{position:absolute;top:14px;right:14px;z-index:2;padding:7px 12px;border-radius:999px;font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.work-foot{display:flex;justify-content:center;margin-top:48px}
/* 11 films */
.film{position:relative;width:clamp(230px,21vw,290px)}
.film .fr{aspect-ratio:9 / 16;background:var(--char)}
.film .fr::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,0) 55%,rgba(32,35,27,.75) 100%);pointer-events:none}
.film-btn{position:absolute;inset:0;z-index:2;width:100%;display:flex;align-items:center;justify-content:center;color:var(--ivory);border-radius:var(--r)}
.film-btn span{display:inline-flex;width:64px;height:64px;align-items:center;justify-content:center;border-radius:50%;transition:opacity .4s,transform .5s var(--ease)}
.film-btn svg{width:16px;height:16px}
.film-btn:hover span{transform:scale(1.08)}
.film.playing .film-btn span{opacity:0;transform:scale(.85)}
.film-btn:focus-visible span{opacity:1}
.film-cap{position:absolute;left:16px;right:16px;bottom:16px;z-index:3;pointer-events:none;color:var(--ivory)}
.film-cap b{display:block;font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.15}
.film-cap small{display:block;margin-top:5px;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--beige)}
.film-ig{position:absolute;z-index:4;top:12px;right:12px;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--ivory)!important}
.film-ig svg{width:17px;height:17px}
/* 11b testimonials: 3 / 2 / 1 per view, one card per step */
.tst{--per:3;align-items:stretch;padding:6px 2px 12px;scroll-snap-type:x mandatory}
.tst > .tcard{width:calc((100% - (var(--per) - 1) * var(--gap)) / var(--per));scroll-snap-align:start;margin:0;padding:34px 32px 30px}
.tcard{position:relative;display:flex;flex-direction:column;border-radius:12px;background:linear-gradient(160deg,rgba(255,255,255,.74),rgba(237,230,217,.62));border:1px solid rgba(68,75,53,.14);box-shadow:0 22px 44px -36px rgba(41,45,35,.5);transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .4s}
.tcard:hover{transform:translateY(-4px);border-color:rgba(68,75,53,.26);box-shadow:0 28px 50px -34px rgba(41,45,35,.55)}
.t-top{display:flex;justify-content:space-between;align-items:center;gap:16px}
.t-stars{display:inline-flex;gap:3px;color:var(--olive-m)}
.t-stars svg{width:15px;height:15px;fill:currentColor}
.t-mark{width:34px;height:24px;color:rgba(119,123,96,.55)}
.t-title{margin-top:20px;font-family:var(--serif);font-weight:500;font-size:clamp(22px,1.7vw,26px);line-height:1.2;color:var(--ink)}
.t-quote{margin:14px 0 0;font-family:var(--serif);font-weight:400;font-size:clamp(18px,1.3vw,20px);line-height:1.6;color:var(--text)}
.t-by{margin-top:auto;padding-top:22px;border-top:1px solid rgba(68,75,53,.16);font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--olive)}
.t-quote + .t-by{margin-top:24px}
.tcard .t-quote{flex:1 0 auto}
.t-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 40px;margin-top:26px}
/* 12 destinations */
.dst{position:relative;width:clamp(260px,23vw,330px);aspect-ratio:3 / 4;border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:24px;color:var(--ivory)!important;background:var(--char);border:1px solid rgba(217,203,183,.16);transition:transform .6s var(--ease),border-color .4s}
.dst > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.dst::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,.42) 0%,rgba(32,35,27,0) 26%,rgba(32,35,27,.08) 48%,rgba(41,45,35,.86) 100%);pointer-events:none}
.dst:hover > img,.dst:focus-visible > img{transform:scale(1.06)}
.dst .dn,.dst .dst-b{z-index:2}
.dst-pic{display:block;margin-top:12px;font-size:11px;color:rgba(245,241,231,.72);letter-spacing:.02em}
.credits{margin-top:26px;font-size:13px;color:#BFB7A6}
.credits summary{cursor:pointer;display:inline-flex;min-height:44px;align-items:center;font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--beige)}
.credits ul{display:grid;gap:6px;margin-top:8px}
.credits a{color:var(--beige);text-decoration:underline}
.dst:hover{transform:translateY(-6px);border-color:rgba(217,203,183,.5)}
.dst .dn{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--beige);position:relative}
.dst-b{position:relative}
.dst-b h3{font-family:var(--serif);font-weight:400;font-size:clamp(34px,2.8vw,44px);line-height:1;color:var(--ivory);text-shadow:0 2px 16px rgba(20,22,16,.35)}
.dst-b p{margin-top:8px;font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--beige)}
.dst-go{display:inline-flex;align-items:center;gap:10px;margin-top:20px;padding:10px 16px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;transition:background .4s}
.dst:hover .dst-go{background:rgba(245,241,231,.22)}
.dst-go svg{width:18px;height:12px}
.dst .dn{text-shadow:0 1px 10px rgba(20,22,16,.5)}
.dst-note{margin-top:22px;font-size:14px;color:#CFC7B6;text-align:center}
/* 13 process */
.tl-wrap{position:relative}
.tl{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.tl-line{position:absolute;left:12.5%;right:12.5%;top:36px;height:1px;background:rgba(217,203,183,.3);overflow:hidden}
.tl-line i{position:absolute;top:0;left:-30%;width:30%;height:1px;background:linear-gradient(90deg,transparent,var(--beige),transparent);animation:sweep 5s linear infinite}
@keyframes sweep{to{left:100%}}
.tl li{position:relative;text-align:center;padding:0 10px}
.tl-n{position:relative;z-index:1;display:inline-flex;width:72px;height:72px;align-items:center;justify-content:center;border-radius:50%;font-family:var(--serif);font-style:italic;font-size:24px;color:var(--ivory);background:rgba(41,45,35,.5);border:1px solid rgba(217,203,183,.45)}
.tl h3{margin-top:24px;font-family:var(--serif);font-weight:400;font-size:32px;color:var(--ivory)}
.tl p{margin:10px auto 0;font-size:15px;max-width:28ch;color:#E5DED0}
/* 14 philosophy cards */
.phil{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.ph-card{display:flex;flex-direction:column;background:var(--ivory2);border-radius:var(--r);overflow:hidden;border:1px solid rgba(68,75,53,.1);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.ph-card:hover{transform:translateY(-6px);box-shadow:0 26px 40px -30px rgba(41,45,35,.45)}
.ph-card .fr{aspect-ratio:4 / 3;border-radius:0}
.ph-card:hover .fr img{transform:scale(1.05)}
.ph-body{padding:26px 28px 30px}
.ph-body p{margin-top:10px;font-size:15.5px}
/* 15 values bar */
.values{overflow:hidden;border-top:1px solid rgba(41,45,35,.12);border-bottom:1px solid rgba(41,45,35,.12)}
.values-track{display:flex;width:max-content;animation:tick 48s linear infinite}
.values:hover .values-track{animation-play-state:paused}
.values-set{display:flex;align-items:center;gap:56px;padding:26px 28px}
.val{display:inline-flex;align-items:center;gap:14px;white-space:nowrap;font-family:var(--serif);font-size:24px;color:var(--ink)}
.val svg{width:26px;height:26px;color:var(--olive)}
@keyframes tick{to{transform:translateX(-50%)}}
/* 16 enquiry guide */
.guide{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:center}
.guide-img{grid-column:1 / 8;position:relative}
.guide-img .fr{aspect-ratio:3 / 2}
.guide-card{position:absolute;right:24px;bottom:24px;max-width:300px;padding:20px 22px;border-radius:8px}
.guide-card b{display:block;font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.2}
.guide-card p{margin-top:6px;font-size:14px;line-height:1.55}
.guide-txt{grid-column:9 / 13}
.check{margin-top:26px}
.check li{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid rgba(68,75,53,.18);font-size:15.5px;color:var(--ink)}
.check svg{flex:none;width:18px;height:18px;margin-top:4px;color:var(--olive)}
.guide-txt .btn{margin-top:30px}
/* 17 final CTA */
.cta{position:relative;overflow:hidden}
.cta-lines{position:absolute;inset:0;width:100%;height:100%;color:rgba(217,203,183,.16);pointer-events:none}
.cta-lines path{animation:drift 18s ease-in-out infinite alternate}
.cta-lines path:nth-child(2){animation-duration:24s}.cta-lines path:nth-child(3){animation-duration:30s}
@keyframes drift{from{transform:translateX(-30px)}to{transform:translateX(30px)}}
.cta-in{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:48px;align-items:center}
.cta-l{grid-column:1 / 7}
.cta-l .lede{margin-top:22px;max-width:46ch}
.cta-acts{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.cta-contact{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:34px;font-size:15px}
.cta-contact a{color:#EDE6D8}
.cta-contact a:hover{color:var(--ivory)}
.cta-form{grid-column:8 / 13;padding:34px 32px;border-radius:12px}
.cta-form h3{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.15;color:var(--ivory)}
.cta-form .note{margin-top:8px;font-size:14px;color:#D9D1C1}
.fg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;margin-top:24px}
.fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.fld.full{grid-column:1 / -1}
.fld label{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--beige)}
.fld label em{font-style:normal;font-weight:400;letter-spacing:.04em;text-transform:none;color:#C9C1B0}
.fld input,.fld select,.fld textarea{color-scheme:dark;width:100%;min-height:46px;padding:9px 0;border:0;border-bottom:1px solid rgba(245,241,231,.4);border-radius:0;background:transparent;font:inherit;font-size:16px;color:var(--ivory)}
.fld select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:22px;background-image:linear-gradient(45deg,transparent 50%,#D9CBB7 50%),linear-gradient(135deg,#D9CBB7 50%,transparent 50%);background-position:calc(100% - 12px) 21px,calc(100% - 7px) 21px;background-size:5px 5px;background-repeat:no-repeat}
.fld select option{color:#25281E}
.fld textarea{min-height:76px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-bottom:2px solid var(--beige);padding-bottom:8px}
.fld.bad input{border-bottom-color:#EBA88C}
.err{font-size:13.5px;color:#F2BCA6}
.f-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.sent{margin-top:18px;padding:14px 16px;border-radius:8px;background:rgba(245,241,231,.1);font-size:14.5px;color:#EEE7D9}
/* 18 footer */
.ftr{background:var(--char-d);color:#D3CBBB;padding:88px 0 36px}
.ftr-g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:44px}
.f-brand{grid-column:1 / 4;display:flex;flex-direction:column;gap:20px}
.f-logo{display:inline-flex;align-self:flex-start;background:var(--ivory);padding:12px 14px;border-radius:6px}
.f-logo img{height:84px;width:auto}
.f-brand p{font-size:15px;max-width:30ch;color:#D3CBBB}
.soc{display:flex;gap:8px}
.soc a{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(217,203,183,.3);color:var(--ivory)}
.soc a:hover{background:var(--ivory);color:var(--char)}
.soc svg{width:17px;height:17px}
.f-col{display:flex;flex-direction:column;gap:9px;min-width:0}
.f-col h3{margin-bottom:10px;font-size:11.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--beige)}
.f-col a,.f-col address{font-size:14.5px;line-height:1.6;color:#D3CBBB}
.f-col a:hover{color:var(--ivory)}
.f-nav{grid-column:4 / 6}.f-svc{grid-column:6 / 9}.f-dst{grid-column:9 / 11}.f-con{grid-column:11 / 13}
.f-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;margin-top:64px;padding-top:26px;border-top:1px solid rgba(217,203,183,.15);font-size:13.5px;color:#B3AB9A}
.f-base nav{display:flex;flex-wrap:wrap;gap:8px 26px}
.f-base a{color:#B3AB9A}.f-base a:hover{color:var(--ivory)}
/* floating WhatsApp (left) */
.fab{position:fixed;z-index:50;left:max(20px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));display:inline-flex;align-items:center;height:56px;padding:0 7px;border-radius:999px;background:rgba(68,75,53,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ivory)!important;border:1px solid rgba(245,241,231,.22);box-shadow:0 16px 32px -16px rgba(32,35,27,.7);opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease),background .3s}
.fab.show{opacity:1;transform:none}
.fab:hover{background:var(--char)}
.fab i{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;flex:none}
.fab svg{width:22px;height:22px;fill:currentColor}
.fab span{max-width:0;overflow:hidden;white-space:nowrap;font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;transition:max-width .6s var(--ease),padding .6s var(--ease)}
.fab:hover span,.fab:focus-visible span{max-width:220px;padding:0 18px 0 4px}
/* lightbox */
.lb{position:fixed;inset:0;z-index:70;display:grid;grid-template-rows:auto 1fr auto;background:rgba(28,31,24,.96);color:var(--ivory)}
.lb-top{display:flex;justify-content:space-between;align-items:center;padding:16px var(--m)}
.lb-count{font-size:12.5px;font-weight:600;letter-spacing:.24em;color:var(--beige)}
.lb-btn{display:inline-flex;width:50px;height:50px;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(245,241,231,.3);color:var(--ivory)}
.lb-btn:hover{background:var(--ivory);color:var(--char)}
.lb-btn svg{width:20px;height:20px}
.lb-stage{display:flex;align-items:center;justify-content:center;gap:22px;min-height:0;padding:0 22px}
.lb-stage img{flex:1;min-width:0;max-width:min(1400px,100%);max-height:100%;object-fit:contain}
.lb-cap{padding:16px var(--m) 26px;text-align:center;font-family:var(--serif);font-style:italic;font-size:21px;color:#E5DED0}
/* responsive */
@media (max-width:1180px){
 .v3{--m:36px;--gap:22px;--sec:104px}
 .nav{gap:20px}.ig{display:none}
 .f-brand{grid-column:1 / 13}.f-nav{grid-column:1 / 4}.f-svc{grid-column:4 / 8}.f-dst{grid-column:8 / 10}.f-con{grid-column:10 / 13}
}
@media (max-width:960px){
 .v3{--sec:88px}
 .nav{display:none}.burger{display:inline-flex}.hdr .btn{display:none}
 .hdr-in{height:80px}.hdr.scrolled .hdr-in{height:68px}.logo{height:60px}.hdr.scrolled .logo{height:50px}
 .film-ctl{position:static;margin:0 auto 26px}
 .sig{padding-left:10vw;padding-right:10vw}.sig > .slide{width:80vw}
 .tst{--per:2}
 .story-img,.story-txt{grid-column:1 / 13}.story-txt{margin-top:48px}
 .venue-main,.venue-side{grid-column:1 / 13}
 .bento{height:auto;grid-template-rows:none}
 .pc{min-height:320px}.pc.p1{grid-column:1 / 13;grid-row:auto;min-height:460px}.pc.p2,.pc.p3,.pc.p4,.pc.p5{grid-column:span 6;grid-row:auto}
 .tl{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:52px}.tl-line{display:none}
 .phil{grid-template-columns:1fr 1fr}.phil .ph-card:last-child{grid-column:1 / -1}
 .guide-img,.guide-txt{grid-column:1 / 13}.guide-txt{margin-top:44px}
 .cta-l,.cta-form{grid-column:1 / 13}
 .f-nav{grid-column:1 / 7}.f-svc{grid-column:7 / 13}.f-dst{grid-column:1 / 7}.f-con{grid-column:7 / 13}
}
@media (max-width:640px){
 .v3{--m:20px;--gap:16px;--sec:76px;font-size:16px}
 .hero{height:max(420px,min(70vh,600px))}
 .intro{padding:72px 0 80px}
 .slide-cap{left:10px;right:10px;bottom:10px;padding:10px 14px}.slide-cap b{font-size:18px}.slide-cap span{display:none}
 .slide .fr{aspect-ratio:4 / 5}
 .svc{width:78vw}
 .vmini > *{width:62vw}
 .fl,.fl.w{width:70vw}.fl.w .fr{aspect-ratio:4 / 5}
 .pc.p2,.pc.p3,.pc.p4,.pc.p5{grid-column:1 / 13}
 .film{width:66vw}
 .dst{width:78vw}
 .tst{--per:1}.tst > .tcard{padding:28px 22px 24px}
 .tl{grid-template-columns:1fr}
 .phil{grid-template-columns:1fr}.phil .ph-card:last-child{grid-column:auto}
 .guide-card{position:static;max-width:none;margin-top:14px;background:var(--olive);border-color:transparent}
 .fg{grid-template-columns:1fr}
 .cta-form{padding:26px 20px}
 .cta-acts .btn,.f-acts .btn{width:100%}
 .f-nav,.f-svc,.f-dst,.f-con{grid-column:1 / 13}
 .fab span{display:none}
 .val{font-size:20px}
}
@media (prefers-reduced-motion:reduce){
 .v3 *{animation:none!important;transition-duration:.01ms!important}
 .orn path{stroke-dashoffset:0}
 .values-track{flex-wrap:wrap;width:auto}
}

/* ===================== DESIGN SYSTEM ADDITIONS (inner pages) ===================== */
/* page hero */
.phero{padding:84px 0 96px;background:var(--ivory)}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:30px;font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--olive)}
.crumbs span[aria-current]{color:var(--olive)}
.crumbs i{width:16px;height:1px;background:currentColor;opacity:.5}
.h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,5.2vw,80px);line-height:1.03;letter-spacing:-.01em;color:var(--ink)}
.h1 em{font-style:italic;color:var(--olive-m)}
.phero .lede{margin-top:26px;max-width:54ch}
.phero-acts{display:flex;flex-wrap:wrap;align-items:center;gap:16px 30px;margin-top:36px}
.phero-split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:center}
.phero-split .ph-txt{grid-column:1 / 7}
.phero-split .ph-img{grid-column:8 / 13;position:relative}
.phero-split .ph-img .fr{aspect-ratio:4 / 5}
.ph-badge{position:absolute;left:-36px;bottom:40px;max-width:260px;padding:18px 22px;border-radius:10px}
.ph-badge b{display:block;font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.2}
.ph-badge p{margin-top:4px;font-size:13.5px;line-height:1.5;color:#E8E1D3}
.phero-c{text-align:center}.phero-c .lede{margin-left:auto;margin-right:auto}.phero-c .crumbs,.phero-c .phero-acts{justify-content:center}
/* generic split */
.sp{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:40px;align-items:center}
.sp .im{grid-column:1 / 7}.sp .tx{grid-column:8 / 13}
.sp.rev .im{grid-column:7 / 13;order:2}.sp.rev .tx{grid-column:1 / 6;order:1}
.sp .im .fr{aspect-ratio:4 / 3}
.sp .tx .lede{margin-top:20px}
.pair{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:var(--gap);align-items:end}
.pair .a{grid-column:1 / 5;grid-row:1}.pair .a .fr{aspect-ratio:3 / 2}
.pair .b{grid-column:4 / 7;grid-row:1;align-self:end;margin-bottom:-56px;position:relative;z-index:2}.pair .b .fr{aspect-ratio:4 / 5;border:8px solid var(--ivory);box-sizing:content-box}
.bg-stone .pair .b .fr{border-color:var(--stone)}
/* numbered principles over a photograph (glass) */
.glassbg{position:relative;overflow:hidden;color:var(--ivory)}
.glassbg > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kb 30s ease-in-out infinite alternate}
.glassbg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,.66),rgba(32,35,27,.82))}
.glassbg > .wrap{position:relative;z-index:2}
.gc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.gc{padding:30px 26px 32px;border-radius:12px;transition:transform .6s var(--ease),background .4s}
.gc:hover{transform:translateY(-6px);background:rgba(41,45,35,.58)}
.gc .num{font-size:22px}
.gc h3{margin-top:18px;font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.1;color:var(--ivory)}
.gc p{margin-top:10px;font-size:15px;line-height:1.65;color:#E8E1D3}
/* two-column approach lists */
.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.duo-card{padding:40px 40px 36px;border-radius:12px;background:var(--ivory2);border:1px solid rgba(68,75,53,.12)}
.duo-card .h3{margin-bottom:6px}
.ticks{margin-top:18px}
.ticks li{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid rgba(68,75,53,.14);font-size:15.5px;color:var(--ink)}
.ticks li:last-child{border-bottom:0}
.ticks svg{flex:none;width:18px;height:18px;margin-top:4px;color:var(--olive)}
.dark .ticks li{color:#EEE7D9;border-color:rgba(217,203,183,.2)}.dark .ticks svg{color:var(--beige)}
/* image gallery row */
.g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.g4 figure .fr{aspect-ratio:4 / 5}
.g4 figcaption{margin-top:12px;font-size:14px;color:var(--muted)}
/* service list (link rows) */
.srow{border-top:1px solid rgba(68,75,53,.2)}
.srow a{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid rgba(68,75,53,.2);color:var(--ink)}
.srow .t{font-family:var(--serif);font-size:clamp(24px,2.2vw,32px);line-height:1.15;transition:transform .5s var(--ease)}
.srow svg{width:24px;height:14px;color:var(--olive);transition:transform .5s var(--ease)}
.srow a:hover .t{transform:translateX(10px);font-style:italic}
.srow a:hover svg{transform:translateX(6px)}
/* CTA band */
.ctab{position:relative;overflow:hidden;text-align:center}
.ctab .h2{max-width:820px;margin:0 auto}
.ctab .lede{max-width:56ch;margin:20px auto 0}
.ctab .cta-acts{justify-content:center}
/* services page */
.qnav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:980px;margin:0 auto}
.qnav a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ivory)!important;transition:background .4s,transform .4s var(--ease)}
.qnav a:hover{background:rgba(245,241,231,.24);transform:translateY(-2px)}
.band-tall{height:clamp(460px,44vw,640px);align-items:center;padding-bottom:0}
.band-tall .band-in{position:relative;z-index:2;text-align:center;color:var(--ivory)}
.band-tall .band-in .eb{color:var(--beige)}.band-tall .band-in .eb::after{content:"";width:34px;height:1px;background:currentColor}
.band-tall .band-in h2{font-family:var(--serif);font-weight:400;font-size:clamp(32px,3.4vw,52px);line-height:1.1;margin-bottom:30px;color:var(--ivory)}
.band-tall::after{background:linear-gradient(180deg,rgba(32,35,27,.45),rgba(32,35,27,.72))}
.svb{scroll-margin-top:110px}
.svb .num{font-size:24px}
.svb .h2{margin-top:10px}
.incl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin-top:22px;border-top:1px solid rgba(68,75,53,.16)}
.incl li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid rgba(68,75,53,.16);font-size:15px;color:var(--ink)}
.incl svg{flex:none;width:16px;height:16px;margin-top:5px;color:var(--olive)}
.svb-acts{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:30px}
.svb .im{position:relative}
.svb .im .chip{top:18px;left:18px}
.combo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
/* light form (contact page) */
.form-l .fld label{color:var(--olive)}
.form-l .fld label em{color:var(--muted)}
.form-l .fld input,.form-l .fld select,.form-l .fld textarea{color-scheme:light;color:var(--ink);border-bottom:1px solid rgba(41,45,35,.32)}
.form-l .fld select{background-image:linear-gradient(45deg,transparent 50%,#444B35 50%),linear-gradient(135deg,#444B35 50%,transparent 50%)}
.form-l .fld input:focus,.form-l .fld select:focus,.form-l .fld textarea:focus{border-bottom:2px solid var(--olive)}
.form-l .fld.bad input,.form-l .bad .consent-box{border-color:#9A3B22}
.form-l .err{color:#9A3B22}
.form-l .fld input::placeholder,.form-l .fld textarea::placeholder{color:#8A8D7C}
.fcard{padding:44px 44px 40px;border-radius:14px;background:var(--ivory2);border:1px solid rgba(68,75,53,.12);box-shadow:0 30px 60px -48px rgba(41,45,35,.5)}
.fcard .h3{font-size:clamp(28px,2.4vw,36px)}
.fcard .note{margin-top:10px;font-size:14.5px;color:var(--muted)}
.fgrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 26px;margin-top:30px}
.fgrid2 .full{grid-column:1 / -1}
.chk-set{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;border:0;padding:0;min-width:0}
.chk-set legend{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--olive);padding:0;margin-bottom:10px}
.chk-set legend em{font-style:normal;font-weight:400;letter-spacing:.04em;text-transform:none;color:var(--muted)}
.pill{position:relative;cursor:pointer}
.pill input{position:absolute;opacity:0;width:1px;height:1px}
.pill span{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:999px;border:1px solid rgba(68,75,53,.3);font-size:13.5px;color:var(--ink);transition:background .3s,color .3s,border-color .3s}
.pill:hover span{border-color:var(--olive)}
.pill input:checked + span{background:var(--olive);border-color:var(--olive);color:var(--ivory)}
.pill input:focus-visible + span{outline:2px solid var(--olive);outline-offset:3px}
.consent{display:flex;gap:12px;align-items:flex-start;margin-top:26px;font-size:14.5px;line-height:1.6;color:var(--text);cursor:pointer}
.consent input{flex:none;width:20px;height:20px;margin-top:2px;accent-color:var(--olive)}
.privacy{margin-top:16px;padding:14px 16px;border-radius:8px;background:var(--stone);font-size:13.5px;line-height:1.6;color:var(--muted)}
.form-acts{display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:26px}
.okmsg{margin-top:18px;padding:16px 18px;border-radius:8px;border:1px solid rgba(68,75,53,.25);background:#EEF0E6;font-size:14.5px;color:var(--ink)}
.ct-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:48px;align-items:start}
.ct-info{grid-column:1 / 5;position:sticky;top:110px}
.ct-form{grid-column:6 / 13}
.ct-item{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:22px 0;border-bottom:1px solid rgba(68,75,53,.16)}
.ct-item:first-of-type{border-top:1px solid rgba(68,75,53,.16)}
.ct-ic{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:50%;background:var(--stone);color:var(--olive)}
.ct-ic svg{width:19px;height:19px}
.ct-item small{display:block;font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ct-item a,.ct-item address{display:block;margin-top:4px;font-size:16px;line-height:1.55;color:var(--ink)}
.ct-item a:hover{color:var(--olive)}
.ct-item .ul{margin-top:10px;font-size:11.5px}
.steps3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.step3{padding-top:26px;border-top:1px solid rgba(68,75,53,.2)}
.step3 h3{margin-top:14px;font-family:var(--serif);font-weight:400;font-size:28px;color:var(--ink)}
.step3 p{margin-top:8px;font-size:15.5px}
/* FAQ */
.faq-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:40px;align-items:start}
.faq-side{grid-column:1 / 4;position:sticky;top:110px}
.faq-main{grid-column:5 / 13}
.ftabs{display:flex;flex-direction:column;gap:4px}
.ftab{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:46px;padding:0 16px;border-radius:8px;text-align:left;font-size:14.5px;color:var(--ink);transition:background .3s,color .3s}
.ftab:hover{background:var(--stone)}
.ftab.on{background:var(--olive);color:var(--ivory)}
.ftab small{font-size:12px;opacity:.7}
.help{margin-top:30px;border-radius:12px;overflow:hidden;background:var(--olive);color:var(--ivory)}
.help .fr{aspect-ratio:3 / 2;border-radius:0}
.help-b{padding:22px 22px 24px}
.help-b b{display:block;font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.15}
.help-b p{margin-top:8px;font-size:14px;color:#E8E1D3}
.help-b .ul{margin-top:14px;color:var(--ivory)}
.fgroup + .fgroup{margin-top:56px}
.fgroup h2{font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.4vw,36px);color:var(--ink);margin-bottom:14px}
.acc{border-top:1px solid rgba(68,75,53,.2)}
.acc-item{border-bottom:1px solid rgba(68,75,53,.2)}
.acc-q{display:flex;justify-content:space-between;align-items:center;gap:24px;width:100%;min-height:68px;padding:18px 0;text-align:left;font-family:var(--serif);font-weight:500;font-size:clamp(20px,1.6vw,24px);line-height:1.3;color:var(--ink)}
.acc-q:hover{color:var(--olive)}
.acc-ic{position:relative;flex:none;width:36px;height:36px;border-radius:50%;border:1px solid rgba(68,75,53,.3);transition:background .3s,transform .5s var(--ease)}
.acc-ic::before,.acc-ic::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--olive);transform:translate(-50%,-50%);transition:transform .5s var(--ease)}
.acc-ic::after{transform:translate(-50%,-50%) rotate(90deg)}
.acc-item.open .acc-ic{background:var(--olive)}
.acc-item.open .acc-ic::before,.acc-item.open .acc-ic::after{background:var(--ivory)}
.acc-item.open .acc-ic::after{transform:translate(-50%,-50%) rotate(0deg)}
.acc-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.acc-item.open .acc-a{grid-template-rows:1fr}
.acc-a > div{overflow:hidden}
.acc-a p{padding:0 56px 24px 0;font-size:16px;line-height:1.75;color:var(--text)}
.acc-a a{color:var(--olive);text-decoration:underline}
/* style guide */
.sw{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap)}
.sw div{border-radius:12px;overflow:hidden;border:1px solid rgba(68,75,53,.14);background:var(--ivory2)}
.sw i{display:block;height:120px}
.sw p{padding:14px 16px;font-size:13px;line-height:1.5}
.sw b{display:block;font-size:14px;color:var(--ink)}
.ds-block{padding:64px 0;border-top:1px solid rgba(68,75,53,.14)}
.ds-block > .eb{margin-bottom:28px}
.ds-row{display:flex;flex-wrap:wrap;align-items:center;gap:20px}
.ds-type > *{padding:14px 0;border-bottom:1px dashed rgba(68,75,53,.2)}
.ds-type small{display:block;font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-style:normal}
.ratios{display:grid;grid-template-columns:3fr 2fr 2fr 1.4fr;gap:var(--gap);align-items:end}
.ratios .fr{display:flex;align-items:center;justify-content:center;background:var(--beige);font-size:13px;font-weight:600;letter-spacing:.14em;color:var(--olive)}
.space{display:flex;align-items:flex-end;gap:16px}
.space div{background:var(--olive-m);border-radius:3px;width:28px}
.space span{display:block;margin-top:8px;font-size:12px;color:var(--muted);text-align:center}
/* inner-page responsive */
@media (max-width:1180px){.gc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ph-badge{left:16px}}
@media (max-width:960px){
 .phero{padding:64px 0 72px}
 .phero-split .ph-txt,.phero-split .ph-img{grid-column:1 / 13}.phero-split .ph-img{margin-top:44px}.phero-split .ph-img .fr{aspect-ratio:3 / 2}
 .sp .im,.sp .tx,.sp.rev .im,.sp.rev .tx{grid-column:1 / 13;order:0}
 .duo,.combo,.steps3{grid-template-columns:1fr}
 .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ct-info,.ct-form{grid-column:1 / 13;position:static}
 .faq-side,.faq-main{grid-column:1 / 13;position:static}
 .ftabs{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:8px;padding-bottom:4px}
 .ftab{flex:none;width:auto;border:1px solid rgba(68,75,53,.25);border-radius:999px;gap:10px}
 .help{display:none}
 .sw{grid-template-columns:repeat(3,minmax(0,1fr))}
 .ratios{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
 .gc-grid{grid-template-columns:1fr}
 .pair .b{margin-bottom:-36px}
 .incl,.fgrid2{grid-template-columns:1fr}
 .fcard,.duo-card{padding:28px 22px}
 .srow a{grid-template-columns:44px 1fr auto}
 .acc-a p{padding-right:0}
 .sw{grid-template-columns:repeat(2,minmax(0,1fr))}
 .form-acts .btn{width:100%}
 .ph-badge{position:static;max-width:none;margin-top:14px;background:var(--olive)}
}

/* ===================== DESIGN SYSTEM v2 — SERVICE PAGES ===================== */
.svnav{background:var(--ivory);border-bottom:1px solid rgba(68,75,53,.12)}
.svnav .wrap{display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;padding-top:14px;padding-bottom:14px}
.svnav .wrap::-webkit-scrollbar{display:none}
.svnav span{flex:none;margin-right:10px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.svnav a{flex:none;display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid rgba(68,75,53,.22);font-size:13px;color:var(--ink);transition:background .3s,border-color .3s,color .3s}
.svnav a:hover{border-color:var(--olive)}
.svnav a[aria-current]{background:var(--olive);border-color:var(--olive);color:var(--ivory)}
/* hero: full-bleed image + glass panel */
.sh-full{position:relative;height:clamp(600px,60vw,860px);overflow:hidden;display:flex;align-items:flex-end;padding-bottom:56px}
.sh-full > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kb 28s ease-in-out infinite alternate}
.sh-full::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,.1) 30%,rgba(32,35,27,.7) 100%)}
.sh-full .wrap{position:relative;z-index:2}
.sh-panel{max-width:720px;padding:40px 44px;border-radius:14px}
.sh-panel .crumbs,.sh-panel .crumbs a{color:rgba(245,241,231,.75)}.sh-panel .crumbs span[aria-current]{color:var(--beige)}
.sh-panel .eb{color:var(--beige)}
.sh-panel .h1{color:var(--ivory);font-size:clamp(40px,4.6vw,70px)}.sh-panel .h1 em{color:var(--beige)}
.sh-panel .lede{color:#ECE5D7;margin-top:20px}
.sh-panel .phero-acts .ul{color:var(--ivory)}
/* hero: panoramic with spatial pins */
.pano{position:relative;margin-top:56px;border-radius:14px;overflow:hidden;aspect-ratio:21 / 9}
.pano img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pin{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;transform:translate(-50%,-50%)}
.pin i{width:9px;height:9px;border-radius:50%;background:var(--beige);box-shadow:0 0 0 0 rgba(217,203,183,.6);animation:pulse 2.8s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(217,203,183,.55)}70%{box-shadow:0 0 0 12px rgba(217,203,183,0)}100%{box-shadow:0 0 0 0 rgba(217,203,183,0)}}
/* hero: dark technical */
.sh-dark{position:relative;min-height:clamp(600px,58vw,820px);display:flex;align-items:center;overflow:hidden;background:var(--char);color:var(--ivory)}
.sh-dark > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75}
.sh-dark::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(32,35,27,.92) 0%,rgba(32,35,27,.6) 48%,rgba(32,35,27,.15) 100%)}
.sh-dark .gridlines{position:absolute;inset:0;z-index:1;width:100%;height:100%;color:rgba(217,203,183,.13);pointer-events:none}
.sh-dark .wrap{position:relative;z-index:2}
.sh-dark .ph-txt{max-width:640px}
.sh-dark .crumbs,.sh-dark .crumbs a{color:rgba(245,241,231,.7)}.sh-dark .crumbs span[aria-current]{color:var(--beige)}
.sh-dark .eb{color:var(--beige)}.sh-dark .h1{color:var(--ivory)}.sh-dark .h1 em{color:var(--beige)}.sh-dark .lede{color:#E6DFD1;margin-top:24px}
.sh-dark .phero-acts .ul{color:var(--ivory)}
.specs{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.specs span{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
/* hero: editorial duo */
.sh-duo{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:center}
.sh-duo .l{grid-column:1 / 4}.sh-duo .c{grid-column:4 / 10;text-align:center;padding:0 12px}.sh-duo .r{grid-column:10 / 13}
.sh-duo .l .fr{aspect-ratio:3 / 4.4;margin-top:80px}.sh-duo .r .fr{aspect-ratio:3 / 4.4;margin-bottom:80px}
.sh-duo .c .crumbs,.sh-duo .c .phero-acts{justify-content:center}.sh-duo .c .lede{margin-left:auto;margin-right:auto}
/* botanical accent */
.bot{position:absolute;width:220px;height:auto;color:rgba(119,123,96,.4);pointer-events:none}
.bot path{stroke-dasharray:600;stroke-dashoffset:600;animation:draw 4s var(--ease) .4s forwards}
/* tiles */
.tiles6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.tile6{padding:30px 28px 28px;border-radius:12px;background:var(--ivory2);border:1px solid rgba(68,75,53,.12);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.tile6:hover{transform:translateY(-5px);box-shadow:0 24px 44px -34px rgba(41,45,35,.5)}
.tile6 svg{width:30px;height:30px;color:var(--olive)}
.tile6 h3{margin-top:18px;font-family:var(--serif);font-weight:500;font-size:24px;color:var(--ink)}
.tile6 p{margin-top:8px;font-size:15px}
.dchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.dchips a{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:999px;border:1px solid rgba(217,203,183,.4);font-size:13.5px;color:var(--ivory)!important;transition:background .3s}
.dchips a:hover{background:rgba(245,241,231,.16)}
.strip3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--gap)}
.strip3 .fr{aspect-ratio:auto;height:clamp(300px,30vw,440px)}
/* décor gallery bento */
.bento2{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(150px,14vw,210px);gap:var(--gap)}
.bento2 figure{position:relative}
.bento2 .fr{height:100%}
.bento2 figcaption{position:absolute;left:14px;bottom:14px;padding:8px 14px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s var(--ease)}
.bento2 figure:hover figcaption,.bento2 figure:focus-within figcaption{opacity:1;transform:none}
.b-a{grid-column:1 / 8;grid-row:span 3}.b-b{grid-column:8 / 13;grid-row:span 2}.b-c{grid-column:8 / 13;grid-row:span 2}.b-d{grid-column:1 / 5;grid-row:span 2}.b-e{grid-column:5 / 8;grid-row:span 1}.b-f{grid-column:5 / 8;grid-row:span 1}
/* colour stories */
.stories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.story{position:relative;border-radius:14px;overflow:hidden;min-height:440px;display:flex;align-items:flex-end;color:var(--ivory)}
.story > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.story:hover > img{transform:scale(1.05)}
.story::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,0) 30%,rgba(32,35,27,.82) 100%)}
.story-b{position:relative;z-index:2;margin:18px;padding:24px 26px;border-radius:12px;width:100%}
.story-b h3{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1;color:var(--ivory)}
.story-b p{margin-top:8px;font-size:14.5px;color:#E8E1D3}
.sw-row{display:flex;gap:8px;margin-top:16px}
.sw-row i{width:34px;height:34px;border-radius:50%;border:2px solid rgba(245,241,231,.6)}
.sw-row small{align-self:center;margin-left:8px;font-size:12px;color:#E8E1D3}
/* sequence */
.seq{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.seq::before{content:"";position:absolute;left:12%;right:12%;top:calc(-28px);height:1px;background:rgba(68,75,53,.25)}
.seq figure{position:relative}
.seq .fr{aspect-ratio:3 / 4}
.seq .n{position:absolute;top:-44px;left:50%;transform:translateX(-50%);display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:var(--ivory);border:1px solid rgba(68,75,53,.35);font-family:var(--serif);font-style:italic;font-size:16px;color:var(--olive)}
.seq figcaption{margin-top:14px}
.seq figcaption b{display:block;font-family:var(--serif);font-weight:500;font-size:22px;color:var(--ink)}
.seq figcaption span{font-size:14.5px;color:var(--muted)}
/* generic carousel items */
.hc{width:clamp(250px,24vw,340px)}
.hc .fr{aspect-ratio:4 / 5}
.hc figcaption{margin-top:12px;font-size:14px;color:var(--muted)}
.dark .hc figcaption{color:#CFC7B6}
.hc-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:28px}
/* tabs */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px}
.tab{display:inline-flex;align-items:center;min-height:46px;padding:0 20px;border-radius:999px;border:1px solid rgba(68,75,53,.28);font-size:14px;color:var(--ink);transition:background .3s,color .3s,border-color .3s}
.tab:hover{border-color:var(--olive)}
.tab[aria-selected="true"]{background:var(--olive);border-color:var(--olive);color:var(--ivory)}
.tpanel{animation:fadeIn .6s var(--ease)}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* orbit: how the curator connects services */
.orbit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:980px;margin:0 auto;position:relative}
.orbit .node{padding:22px;border-radius:12px;text-align:center;transition:transform .5s var(--ease)}
.orbit .node:hover{transform:translateY(-4px)}
.orbit .node b{display:block;font-family:var(--serif);font-weight:500;font-size:20px;line-height:1.2;color:var(--ivory)}
.orbit .node span{display:block;margin-top:6px;font-size:13.5px;color:#E2DBCC}
.orbit .core{grid-column:2;grid-row:2;display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1 / 1;border-radius:50%;background:var(--beige);color:var(--char);text-align:center;padding:24px;box-shadow:0 0 0 14px rgba(217,203,183,.12),0 0 0 28px rgba(217,203,183,.06)}
.orbit .core b{font-family:var(--serif);font-weight:500;font-size:28px;color:var(--char)}
.orbit .core span{margin-top:6px;font-size:13px;color:#4A4D3F}
.n1{grid-column:1;grid-row:1}.n2{grid-column:3;grid-row:1}.n3{grid-column:1;grid-row:3}.n4{grid-column:3;grid-row:3}.n5{grid-column:2;grid-row:3}
/* capabilities */
.caps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(217,203,183,.22);border-left:1px solid rgba(217,203,183,.22)}
.cap{padding:30px 26px 32px;border-right:1px solid rgba(217,203,183,.22);border-bottom:1px solid rgba(217,203,183,.22);transition:background .4s}
.cap:hover{background:rgba(245,241,231,.05)}
.cap svg{width:32px;height:32px;color:var(--beige)}
.cap h3{margin-top:18px;font-family:var(--serif);font-weight:400;font-size:25px;color:var(--ivory)}
.cap p{margin-top:8px;font-size:14.5px;color:#D8D0C0}
.flow{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--gap);align-items:stretch}
.flow .duo-card{height:100%}
.flow-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--olive-m);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.flow-mid svg{width:60px;height:24px}
/* related services */
.rel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.rel a{position:relative;display:block;border-radius:var(--r);overflow:hidden;aspect-ratio:4 / 3;color:var(--ivory)!important}
.rel a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease)}
.rel a:hover img{transform:scale(1.06)}
.rel a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,0) 40%,rgba(32,35,27,.6) 100%)}
.rel-b{position:absolute;left:14px;right:14px;bottom:14px;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border-radius:8px}
.rel-b small{display:block;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--beige)}
.rel-b b{display:block;margin-top:3px;font-family:var(--serif);font-weight:500;font-size:22px;line-height:1.15}
.rel-b svg{flex:none;width:20px;height:12px}
/* service-page responsive */
@media (max-width:1180px){.caps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:960px){
 .sh-panel{padding:30px 26px}
 .sh-duo .l,.sh-duo .r{display:none}.sh-duo .c{grid-column:1 / 13}
 .tiles6,.rel{grid-template-columns:repeat(2,minmax(0,1fr))}
 .strip3{grid-template-columns:1fr 1fr}.strip3 figure:first-child{grid-column:1 / -1}
 .bento2{grid-auto-rows:clamp(140px,26vw,220px)}.b-a{grid-column:1 / 13;grid-row:span 2}.b-b,.b-c{grid-column:span 6;grid-row:span 2}.b-d{grid-column:1 / 13;grid-row:span 2}.b-e,.b-f{grid-column:span 6;grid-row:span 1}
 .stories{grid-template-columns:1fr}
 .seq{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:64px}.seq::before{display:none}
 .orbit{grid-template-columns:1fr 1fr}.orbit .core{grid-column:1 / -1;grid-row:1;aspect-ratio:auto;border-radius:14px;padding:30px}
 .n1,.n2,.n3,.n4,.n5{grid-column:auto;grid-row:auto}
 .flow{grid-template-columns:1fr}.flow-mid{flex-direction:row}.flow-mid svg{transform:rotate(90deg)}
 .pano{aspect-ratio:16 / 10}
}
@media (max-width:640px){
 .sh-full{height:auto;min-height:640px;padding-top:240px;padding-bottom:20px}
 .sh-panel{padding:24px 20px}
 .tiles6,.rel,.caps{grid-template-columns:1fr}
 .seq{grid-template-columns:1fr}
 .pin{font-size:10px;padding:8px 12px}
 .hc{width:72vw}
 .story{min-height:400px}
 .bot{display:none}
}

/* ===================== DESIGN SYSTEM v3 — DISCOVERY PAGES ===================== */
.fchips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:40px}
.fchip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(68,75,53,.28);font-size:13.5px;color:var(--ink);transition:background .3s,color .3s,border-color .3s}
.fchip small{font-size:11.5px;opacity:.65}
.fchip:hover{border-color:var(--olive)}
.fchip[aria-pressed="true"]{background:var(--olive);border-color:var(--olive);color:var(--ivory)}
.pgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(190px,17vw,260px);grid-auto-flow:dense;gap:var(--gap)}
.pgrid .pi{position:relative;display:block;width:100%;height:100%;border-radius:var(--r);overflow:hidden;cursor:zoom-in;background:var(--stone);animation:fadeIn .6s var(--ease)}
.pgrid .pi.w2{grid-column:span 2}.pgrid .pi.h2{grid-row:span 2}
.pgrid .pi img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease)}
.pgrid .pi:hover img,.pgrid .pi:focus-visible img{transform:scale(1.06)}
.pi-cap{position:absolute;left:12px;right:12px;bottom:12px;padding:10px 14px;border-radius:8px;text-align:left;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s var(--ease);pointer-events:none}
.pi-cap b{display:block;font-family:var(--serif);font-weight:500;font-size:18px;line-height:1.2}
.pi-cap small{display:block;margin-top:2px;font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--beige)}
.pi:hover .pi-cap,.pi:focus-visible .pi-cap{opacity:1;transform:none}
.gcount{margin-top:22px;text-align:center;font-size:14px;color:var(--muted)}
/* video dialog */
.vd{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;background:rgba(24,26,20,.96);color:var(--ivory)}
.vd-top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px var(--m)}
.vd-top b{font-family:var(--serif);font-weight:400;font-size:22px}
.vd-stage{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 22px 26px}
.vd-stage video{max-width:min(1280px,100%);max-height:100%;width:auto;height:auto;border-radius:8px;background:#000}
/* film tiles */
.ftile{position:relative;display:block;width:100%;border-radius:14px;overflow:hidden;color:var(--ivory);text-align:left;cursor:pointer}
.ftile .fr{aspect-ratio:16 / 9;border-radius:0}
.ftile .fr::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,.05) 40%,rgba(32,35,27,.75) 100%)}
.ftile-play{position:absolute;left:50%;top:50%;z-index:2;display:inline-flex;width:88px;height:88px;align-items:center;justify-content:center;border-radius:50%;transform:translate(-50%,-50%);transition:transform .5s var(--ease)}
.ftile:hover .ftile-play,.ftile:focus-visible .ftile-play{transform:translate(-50%,-50%) scale(1.08)}
.ftile-play svg{width:22px;height:22px;margin-left:4px}
.ftile-b{position:absolute;left:28px;right:28px;bottom:24px;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:18px}
.ftile-b b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,40px);line-height:1.1}
.ftile-b small{display:block;margin-top:6px;font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--beige)}
.ftile-b span{flex:none;padding:8px 14px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.12em}
.films2{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);align-items:end}
.films2 .main{grid-column:1 / 9}.films2 .side{grid-column:9 / 13}
.films2 .side .fr{aspect-ratio:4 / 5}
.clip{position:relative;width:clamp(220px,19vw,270px)}
.clip .fr{aspect-ratio:9 / 16;background:var(--char)}
.clip .fr::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,35,27,0) 55%,rgba(32,35,27,.75) 100%);pointer-events:none}
.clip-btn{position:absolute;inset:0;z-index:2;width:100%;display:flex;align-items:center;justify-content:center;border-radius:var(--r);color:var(--ivory)}
.clip-btn span{display:inline-flex;width:58px;height:58px;align-items:center;justify-content:center;border-radius:50%;transition:transform .5s var(--ease)}
.clip-btn:hover span{transform:scale(1.08)}
.clip-btn svg{width:15px;height:15px}
.clip-cap{position:absolute;left:14px;right:14px;bottom:14px;z-index:3;pointer-events:none;color:var(--ivory)}
.clip-cap b{display:block;font-family:var(--serif);font-weight:500;font-size:19px;line-height:1.15}
.clip-cap small{display:block;margin-top:4px;font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--beige)}
/* venue directory */
.vsearch{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px 24px;padding:26px 28px;border-radius:14px;background:var(--ivory2);border:1px solid rgba(68,75,53,.12);margin-bottom:36px}
.vgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.vcard{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;background:var(--ivory2);border:1px solid rgba(68,75,53,.12);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.vcard:hover{transform:translateY(-5px);box-shadow:0 28px 50px -38px rgba(41,45,35,.55)}
.vcard .fr{aspect-ratio:16 / 10;border-radius:0}
.vcard:hover .fr img{transform:scale(1.05)}
.vnophoto{position:relative;aspect-ratio:16 / 10;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;color:var(--ivory);background:radial-gradient(120% 90% at 25% 15%,rgba(119,123,96,.55),rgba(41,45,35,0) 60%),linear-gradient(160deg,#3A4030,#292D23);overflow:hidden}
.vnophoto b{position:relative;font-family:var(--serif);font-weight:400;font-size:clamp(30px,2.6vw,40px);line-height:1.05}
.vnophoto small{position:relative;margin-top:10px;font-size:12px;color:#CFC7B6}
.vnophoto svg{position:absolute;right:-20px;top:-10px;width:62%;color:rgba(217,203,183,.22)}
.vcard-b{display:flex;flex-direction:column;flex:1;padding:26px 28px 28px}
.vtag{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.vtag span:first-child{color:var(--olive)}
.vcard-b h3{margin-top:12px;font-family:var(--serif);font-weight:500;font-size:clamp(26px,2.2vw,32px);line-height:1.1;color:var(--ink)}
.vcard-b > p{margin-top:10px;font-size:15.5px}
.vcard-b .ticks{margin-top:12px}
.vcard-b .ticks li{font-size:14.5px;padding:9px 0}
.vcard-acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:auto;padding-top:20px}
.empty{padding:48px;border-radius:14px;border:1px dashed rgba(68,75,53,.35);text-align:center;color:var(--muted)}
.disclaimer{margin-top:22px;font-size:13.5px;line-height:1.6;color:var(--muted)}
/* venue detail */
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(68,75,53,.18);border-bottom:1px solid rgba(68,75,53,.18)}
.facts div{padding:22px 20px 22px 0}
.facts div + div{padding-left:20px;border-left:1px solid rgba(68,75,53,.18)}
.facts dt{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.facts dd{margin-top:6px;font-family:var(--serif);font-size:21px;line-height:1.3;color:var(--ink)}
.spaces{border-top:1px solid rgba(217,203,183,.25)}
.spaces li{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:20px;padding:16px 0;border-bottom:1px solid rgba(217,203,183,.25)}
.spaces b{font-family:var(--serif);font-weight:500;font-size:21px;color:var(--ivory)}
.spaces span{font-size:15px;color:#DCD4C4}
.sources{margin-top:18px;font-size:13px;line-height:1.7;color:var(--muted)}
.sources a{color:var(--olive);text-decoration:underline;word-break:break-word}
.credit{margin-top:10px;font-size:12px;line-height:1.5;color:var(--muted)}
.credit a{color:inherit;text-decoration:underline}
.dark .credit{color:#B8B09F}
/* destination grid */
.dgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.dgrid .dst{width:auto}
.dgrid .dst.big{grid-column:span 2;aspect-ratio:auto}
.hl3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.hl{padding:28px 26px;border-radius:12px;background:var(--ivory2);border:1px solid rgba(68,75,53,.12)}
.hl .num{font-size:20px}
.hl h3{margin-top:12px;font-family:var(--serif);font-weight:500;font-size:24px;color:var(--ink)}
.hl p{margin-top:8px;font-size:15px}
@media (max-width:960px){
 .pgrid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(160px,34vw,260px)}
 .films2 .main,.films2 .side{grid-column:1 / 13}
 .vsearch{grid-template-columns:1fr 1fr}.vsearch .fld:first-child{grid-column:1 / -1}
 .vgrid{grid-template-columns:1fr}
 .facts{grid-template-columns:1fr 1fr}.facts div:nth-child(3){padding-left:0;border-left:0}
 .dgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.dgrid .dst.big{grid-column:span 2}
 .hl3{grid-template-columns:1fr}
}
@media (max-width:640px){
 .pgrid .pi.w2{grid-column:span 2}
 .vsearch{grid-template-columns:1fr}
 .spaces li{grid-template-columns:1fr;gap:4px}
 .facts{grid-template-columns:1fr}.facts div + div{padding-left:0;border-left:0;border-top:1px solid rgba(68,75,53,.18)}
 .dgrid{grid-template-columns:1fr}.dgrid .dst.big{grid-column:auto;aspect-ratio:3 / 4}
 .ftile-play{width:64px;height:64px}
 .clip{width:64vw}
}
