@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');

:root{
  --plum:#5A189A;--plum-2:#7B2CBF;--plum-dark:#24102f;--ink:#17131b;
  --lime:#A7C957;--lime-2:#C8E76F;--paper:#fffdf9;--cream:#f7f2ec;--white:#fff;
  --muted:#6e6674;--line:rgba(90,24,154,.14);--shadow:0 30px 80px rgba(47,17,64,.16);
  --radius:30px;--header-h:88px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;overflow-x:hidden}body.menu-open{overflow:hidden}a{text-decoration:none;color:inherit}img,video{max-width:100%;display:block}button,input,select,textarea{font:inherit}.container{width:min(1220px,calc(100% - 44px));margin:auto}.section{padding:120px 0;position:relative;overflow:hidden}.section>.container{position:relative;z-index:2}

/* typography */
h1,h2,h3{font-family:'Playfair Display',serif;line-height:.93;margin:0;letter-spacing:-.045em}h1{font-size:clamp(4rem,8.4vw,8.6rem)}h2{font-size:clamp(3rem,6vw,6.3rem)}h3{font-size:clamp(1.45rem,2.2vw,2.2rem)}h1 em,h2 em,h3 em{font-style:italic;color:var(--lime);font-weight:600}p{font-size:1.02rem;line-height:1.75;color:var(--muted)}.section-heading{max-width:960px}.section-heading p{max-width:680px}.title-play em{display:inline-block;position:relative}.title-play em:after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.08em;background:currentColor;opacity:.28;transform-origin:left;transform:scaleX(0);transition:transform .9s cubic-bezier(.2,.8,.2,1)}.in.title-play em:after{transform:scaleX(1)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid rgba(90,24,154,.14);border-radius:999px;background:rgba(255,255,255,.78);color:var(--plum);font-size:.76rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;margin-bottom:20px;backdrop-filter:blur(10px)}.eyebrow i{color:var(--lime)}.dark .eyebrow,.panel .eyebrow,.page-hero .eyebrow,.hero .eyebrow,.info-banner .eyebrow{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}.dark .eyebrow i,.panel .eyebrow i,.page-hero .eyebrow i,.hero .eyebrow i,.info-banner .eyebrow i{color:var(--lime-2)}

/* top layer / transparent header */
.topbar{position:absolute;top:0;left:0;width:100%;z-index:1002;background:transparent;color:#fff;font-size:.78rem;border-bottom:1px solid rgba(255,255,255,.16)}.topbar .container{min-height:38px;display:flex;justify-content:space-between;align-items:center;gap:24px}.topbar-info{display:flex;gap:20px;flex-wrap:wrap}.topbar a{transition:.25s}.topbar a:hover{color:var(--lime)}
.header{position:absolute;top:38px;left:0;width:100%;z-index:1001;background:transparent;color:#fff;transition:.35s background,.35s box-shadow,.35s transform,.35s top}.header.is-scrolled{position:fixed;top:0;background:rgba(29,12,39,.88);backdrop-filter:blur(18px);box-shadow:0 14px 40px rgba(17,7,24,.18)}.nav{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-weight:800}.brand-mark{width:48px;height:48px;border:1px solid rgba(255,255,255,.34);border-radius:50%;display:grid;place-items:center;font-family:'Playfair Display';font-size:1.3rem;color:var(--lime);background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}.brand span{line-height:1.05}.brand span small{display:block;font-family:'DM Sans';font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;opacity:.72;margin-top:5px}.navlinks{display:flex;align-items:center;gap:9px}.navlinks a{display:inline-flex;align-items:center;gap:8px;padding:10px 11px;border-radius:999px;font-size:.84rem;font-weight:700;transition:.28s background,.28s color,.28s transform}.navlinks a i{font-size:.78rem;color:var(--lime)}.navlinks a:hover,.navlinks a.active{background:rgba(255,255,255,.12);transform:translateY(-2px)}.nav-cta{display:inline-flex;align-items:center;gap:9px;padding:12px 16px;border:1px solid rgba(255,255,255,.3);border-radius:999px;font-size:.84rem;font-weight:800;background:rgba(255,255,255,.08);transition:.3s}.nav-cta:hover{background:var(--lime);color:#202a12;border-color:var(--lime)}.menu-btn{display:none;width:48px;height:48px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:1.05rem}.scroll-progress{position:fixed;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,var(--lime),#fff,var(--lime));z-index:2000;box-shadow:0 0 14px rgba(167,201,87,.55)}

/* hero */
.hero{min-height:100svh;display:flex;align-items:flex-end;padding:180px 0 62px;position:relative;overflow:hidden;background:#1d1025;color:#fff}.hero-media{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;z-index:0;will-change:transform}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,9,27,.82) 0%,rgba(20,9,27,.48) 48%,rgba(20,9,27,.25) 100%);z-index:1}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 42%,transparent 0 18%,rgba(54,18,69,.22) 54%,rgba(22,8,29,.12));z-index:1}.hero .container{position:relative;z-index:3}.hero-copy{width:min(1000px,100%)}.hero h1{max-width:950px;text-shadow:0 8px 35px rgba(0,0,0,.36)}.hero p{max-width:680px;color:rgba(255,255,255,.83);font-size:1.1rem}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.hero-scroll{margin-top:52px;display:flex;align-items:center;gap:12px;font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.74)}.scroll-line{position:relative;width:86px;height:1px;background:rgba(255,255,255,.28);overflow:hidden}.scroll-line:after{content:"";position:absolute;top:0;width:32px;height:1px;background:var(--lime);animation:sweep 1.7s linear infinite}@keyframes sweep{from{left:-32px}to{left:100%}}
.btn{display:inline-flex;align-items:center;gap:11px;padding:15px 22px;border-radius:999px;background:var(--plum);color:#fff;font-weight:800;position:relative;overflow:hidden;isolation:isolate;transition:.35s transform,.35s box-shadow,.35s color}.btn:before{content:"";position:absolute;width:160%;aspect-ratio:1;border-radius:50%;background:var(--lime);left:-30%;bottom:-230%;z-index:-1;transition:.55s transform;transform:scale(.2)}.btn:hover{transform:translateY(-4px);box-shadow:0 15px 34px rgba(90,24,154,.28);color:#1f2910}.btn:hover:before{transform:translateY(-48%) scale(1)}.btn.alt{background:var(--lime);color:#202a12}.btn.alt:before{background:#fff}

.marquee{position:relative;z-index:5;background:var(--lime);padding:14px 0;overflow:hidden;transform:rotate(-.8deg);margin-top:-4px}.marquee-track{display:flex;width:max-content;gap:44px;animation:marquee 26s linear infinite;font-weight:900;text-transform:uppercase;letter-spacing:.11em}.marquee span:before{content:"✦";margin-right:44px;color:var(--plum)}@keyframes marquee{to{transform:translateX(-50%)}}

/* Maman-inspired scroll story */
.story-scroll{background:var(--plum-dark);color:#fff;position:relative}.story-stage{min-height:360vh;position:relative}.story-sticky{position:sticky;top:0;min-height:100svh;display:flex;align-items:center;overflow:hidden}.story-sticky:before,.story-sticky:after{content:"";position:absolute;border-radius:50%;filter:blur(1px);opacity:.18}.story-sticky:before{width:520px;height:520px;background:var(--plum-2);right:-140px;top:-100px}.story-sticky:after{width:300px;height:300px;background:var(--lime);left:-120px;bottom:-80px}.story-side{position:absolute;left:32px;top:50%;transform:translateY(-50%);z-index:4;display:grid;gap:10px;justify-items:center}.story-count{font-family:'Playfair Display';font-size:1.8rem;color:var(--lime)}.story-rule{height:130px;width:1px;background:rgba(255,255,255,.24);position:relative;overflow:hidden}.story-rule:after{content:"";position:absolute;left:0;top:0;width:100%;height:var(--story-progress,0%);background:var(--lime)}.story-label{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6)}.story-panel{position:absolute;inset:0;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:80px;width:min(1160px,calc(100% - 110px));margin:auto;left:0;right:0;opacity:0;transform:translateY(60px);pointer-events:none;transition:opacity .65s ease,transform .75s cubic-bezier(.2,.8,.2,1)}.story-panel.active{opacity:1;transform:translateY(0);pointer-events:auto}.story-copy .kicker{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--lime);font-weight:800}.story-copy h2{font-size:clamp(3.4rem,7vw,7.2rem);margin:18px 0}.story-copy p{color:rgba(255,255,255,.68);max-width:580px}.story-visual{position:relative;height:min(68vh,660px);border-radius:34px;overflow:hidden;box-shadow:0 36px 90px rgba(0,0,0,.28)}.story-visual img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:1.2s transform}.story-panel.active .story-visual img{transform:scale(1)}.story-index{position:absolute;right:18px;bottom:10px;font-family:'Playfair Display';font-size:clamp(6rem,15vw,14rem);line-height:.75;color:rgba(255,255,255,.09);z-index:0}

/* layouts */
.grid-2{display:grid;grid-template-columns:1.04fr .96fr;gap:72px;align-items:center}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.image-stack{position:relative;min-height:650px}.image-stack img{position:absolute;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}.image-stack .a{width:74%;height:530px;left:0;top:24px}.image-stack .b{width:49%;height:290px;right:0;bottom:4px;border:8px solid var(--paper)}.image-stack:after{content:"BEAUTY";position:absolute;right:-2%;top:4%;font-family:'Playfair Display';font-size:clamp(3rem,7vw,7rem);color:rgba(90,24,154,.07);transform:rotate(90deg);transform-origin:right top}.orbit{position:absolute;width:156px;height:156px;border:1px solid rgba(90,24,154,.2);border-radius:50%;right:2%;top:4%;animation:spin 12s linear infinite}.orbit:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:var(--lime);left:50%;top:-8px}@keyframes spin{to{transform:rotate(360deg)}}
.card{position:relative;overflow:hidden;background:#fff;border:1px solid rgba(90,24,154,.08);border-radius:28px;padding:30px;box-shadow:0 14px 40px rgba(39,20,48,.06);transition:.45s transform,.45s box-shadow,.45s border-color}.card:after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;background:var(--lime);opacity:.08;right:-60px;bottom:-70px;transition:.45s transform}.card:hover{transform:translateY(-10px) rotate(-.3deg);box-shadow:var(--shadow);border-color:rgba(167,201,87,.65)}.card:hover:after{transform:scale(1.5)}.card .icon{width:58px;height:58px;border-radius:18px;background:rgba(90,24,154,.09);color:var(--plum);display:grid;place-items:center;font-size:1.25rem;margin-bottom:24px;transition:.35s}.card:hover .icon{transform:rotate(-8deg) scale(1.08);background:var(--lime);color:#202710}.card p{font-size:.95rem}.service-card{min-height:470px;color:#fff;display:flex;align-items:flex-end;padding:30px;border-radius:30px;position:relative;overflow:hidden;background:#25152d}.service-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:1s transform}.service-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(24,9,32,.94),rgba(24,9,32,.06) 72%)}.service-card .content{position:relative;z-index:2}.service-card .num{color:var(--lime);font-weight:900;margin-bottom:9px}.service-card p{color:rgba(255,255,255,.78);max-height:0;opacity:0;overflow:hidden;transition:.55s}.service-card:hover img{transform:scale(1.1)}.service-card:hover p{max-height:140px;opacity:1}.service-card:hover{transform:translateY(-8px)}
.dark{background:var(--plum-dark);color:#fff}.dark p{color:rgba(255,255,255,.72)}.cream{background:var(--cream)}.cream:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;border:1px solid rgba(90,24,154,.1);right:-160px;top:-100px;box-shadow:0 0 0 70px rgba(90,24,154,.025),0 0 0 140px rgba(90,24,154,.018)}.panel{background:linear-gradient(145deg,#31133f,#1f0d29);color:#fff;border-radius:36px;padding:48px;position:relative;overflow:hidden;min-height:100%}.panel p{color:rgba(255,255,255,.72)}.panel:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:var(--lime);filter:blur(1px);opacity:.10;right:-90px;top:-100px;animation:floaty 7s ease-in-out infinite alternate}@keyframes floaty{to{transform:translate(-25px,35px) scale(1.12)}}
.values .card:nth-child(even){transform:translateY(28px)}.values .card:nth-child(even):hover{transform:translateY(17px)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.15);border-radius:28px;overflow:hidden}.stat{padding:28px 18px;text-align:center;background:rgba(255,255,255,.06)}.stat strong{font-family:'Playfair Display';font-size:2.2rem;color:var(--lime);display:block}.stat span{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#fff}.process{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.step{padding:32px 25px;border-top:1px solid rgba(90,24,154,.18);position:relative}.step:before{content:"";position:absolute;top:-7px;left:24px;width:13px;height:13px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 6px var(--paper)}.step:after{content:"";position:absolute;left:30px;top:0;width:1px;height:0;background:linear-gradient(var(--lime),transparent);transition:1s height}.step.in:after{height:72%}.step strong{color:var(--plum);font-size:.76rem;letter-spacing:.12em}.step h3{margin:14px 0}.step p{font-size:.92rem}.faq{display:grid;grid-template-columns:.82fr 1.18fr;gap:72px;align-items:start}.faq-item{border-bottom:1px solid rgba(90,24,154,.14)}.faq-q{width:100%;border:0;background:none;text-align:left;padding:24px 0;display:flex;justify-content:space-between;gap:20px;font-weight:800;color:var(--ink);cursor:pointer}.faq-q i{transition:.35s}.faq-a{max-height:0;overflow:hidden;transition:.5s}.faq-item.open .faq-a{max-height:260px}.faq-item.open .faq-q i{transform:rotate(45deg);color:var(--lime)}
.info-banner{margin:0 auto;width:min(1220px,calc(100% - 44px));border-radius:38px;background:linear-gradient(135deg,var(--plum),#8426ca);color:#fff;padding:54px;display:grid;grid-template-columns:1.2fr .8fr;gap:34px;align-items:center;position:relative;overflow:hidden}.info-banner:after{content:"";position:absolute;width:340px;height:340px;border:1px solid rgba(255,255,255,.18);border-radius:50%;right:-90px;bottom:-220px;box-shadow:0 0 0 60px rgba(255,255,255,.03)}.info-banner p{color:rgba(255,255,255,.8)}.info-pills{display:flex;gap:10px;flex-wrap:wrap}.pill{padding:11px 14px;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:.82rem;font-weight:700;background:rgba(255,255,255,.07)}

/* page heroes */
.page-hero{min-height:72svh;padding:190px 0 90px;background:linear-gradient(135deg,#24102f,#4a1761);color:#fff;display:flex;align-items:flex-end;position:relative;overflow:hidden}.page-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 20%,rgba(167,201,87,.23),transparent 30%),radial-gradient(circle at 10% 90%,rgba(123,44,191,.36),transparent 36%)}.page-hero:after{content:"";position:absolute;right:-8%;top:10%;width:44vw;height:44vw;border-radius:50%;border:1px solid rgba(255,255,255,.12);box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018);animation:slowspin 22s linear infinite}@keyframes slowspin{to{transform:rotate(360deg)}}.page-hero .container{position:relative;z-index:2}.page-hero h1{max-width:1050px;text-shadow:0 8px 34px rgba(0,0,0,.24)}.page-hero p{max-width:700px;color:rgba(255,255,255,.74)}.crumb{display:flex;gap:8px;font-size:.78rem;color:var(--lime);text-transform:uppercase;letter-spacing:.12em;margin-bottom:18px}

/* contact / locations */
.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:52px;align-items:start}.contact-list{display:grid;gap:10px;margin-top:30px}.contact-row{display:flex;gap:15px;align-items:flex-start;padding:15px 0;border-bottom:1px solid var(--line)}.contact-row>i{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(90,24,154,.09);color:var(--plum);flex:none}.contact-row strong{font-size:.84rem;text-transform:uppercase;letter-spacing:.08em}.contact-row p{margin:3px 0 0}.form{background:#fff;padding:24px;border-radius:30px;box-shadow:var(--shadow);min-height:810px}.ghl-form-wrap{position:relative;min-height:760px;overflow:hidden;border-radius:24px;background:#fff}.ghl-form-wrap iframe{display:block;width:100%!important;min-height:748px!important}.map-wrap{position:relative;border-radius:34px;overflow:hidden;min-height:520px;box-shadow:var(--shadow);border:1px solid rgba(90,24,154,.08)}.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.92) contrast(1.02)}.map-badge{position:absolute;left:20px;bottom:20px;z-index:2;background:rgba(36,16,47,.9);color:#fff;padding:15px 18px;border-radius:18px;backdrop-filter:blur(10px);box-shadow:0 14px 36px rgba(0,0,0,.2)}.map-badge strong{display:block;font-family:'Playfair Display';font-size:1.25rem}.map-badge span{font-size:.78rem;color:rgba(255,255,255,.7)}.location-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.location-card{border-radius:28px;padding:34px;background:#fff;border:1px solid var(--line);box-shadow:0 14px 42px rgba(39,20,48,.06);transition:.35s}.location-card:hover{transform:translateY(-8px)}.location-card>i{font-size:1.5rem;color:var(--plum);margin-bottom:22px}

/* generic gallery/video */
.gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:115px;gap:16px}.gallery figure{margin:0;overflow:hidden;border-radius:26px;position:relative}.gallery figure:nth-child(1){grid-column:span 7;grid-row:span 4}.gallery figure:nth-child(2){grid-column:span 5;grid-row:span 3}.gallery figure:nth-child(3){grid-column:span 5;grid-row:span 3}.gallery figure:nth-child(4){grid-column:span 7;grid-row:span 4}.gallery figure img{width:100%;height:100%;object-fit:cover;transition:.8s transform}.gallery figure:hover img{transform:scale(1.08)}.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.video-card{border-radius:30px;overflow:hidden;background:#1d1025;color:#fff;box-shadow:var(--shadow)}.video-card img,.video-card video{width:100%;aspect-ratio:16/10;object-fit:cover}.video-card .content{padding:26px}.video-card p{color:rgba(255,255,255,.7)}

/* footer */
.footer{background:#160a1d;color:#fff;padding:80px 0 26px;position:relative;overflow:hidden}.footer:before{content:"TERRAMAR";position:absolute;right:-1%;bottom:42px;font-family:'Playfair Display';font-size:clamp(6rem,15vw,15rem);line-height:.8;color:rgba(255,255,255,.025);pointer-events:none}.footer-grid{display:grid;grid-template-columns:1.2fr .9fr 1fr 1fr;gap:50px;position:relative;z-index:2}.footer p{color:rgba(255,255,255,.6)}.footer h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--lime);margin:0 0 22px}.footer-links{display:grid;gap:11px}.footer-links a,.footer-links span{color:rgba(255,255,255,.72);font-size:.9rem;transition:.25s}.footer-links a:hover{color:var(--lime);transform:translateX(3px)}.footer-links a i{width:18px;color:var(--lime)}.copyright{margin-top:55px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:20px;color:rgba(255,255,255,.48);font-size:.76rem;position:relative;z-index:2}.back-to-top{position:fixed;right:22px;bottom:22px;width:50px;height:50px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(36,16,47,.88);color:#fff;display:grid;place-items:center;z-index:1000;opacity:0;visibility:hidden;transform:translateY(15px);transition:.3s;box-shadow:0 12px 30px rgba(0,0,0,.16);backdrop-filter:blur(10px)}.back-to-top.show{opacity:1;visibility:visible;transform:none}.back-to-top:hover{background:var(--lime);color:#202a12}

/* reveal / motion */
.reveal{opacity:0;transform:translateY(42px);filter:blur(5px);transition:opacity .85s ease,transform .9s cubic-bezier(.18,.75,.22,1),filter .8s}.reveal.in{opacity:1;transform:none;filter:none}.reveal-left{opacity:0;transform:translateX(-70px);transition:.9s cubic-bezier(.18,.75,.22,1)}.reveal-left.in{opacity:1;transform:none}.reveal-right{opacity:0;transform:translateX(70px);transition:.9s cubic-bezier(.18,.75,.22,1)}.reveal-right.in{opacity:1;transform:none}.reveal:nth-child(2){transition-delay:.07s}.reveal:nth-child(3){transition-delay:.12s}.reveal:nth-child(4){transition-delay:.18s}.cursor,.cursor-dot{position:fixed;pointer-events:none;z-index:3000;left:0;top:0;transform:translate(-50%,-50%);border-radius:50%}.cursor{width:34px;height:34px;border:1px solid rgba(167,201,87,.7);transition:.18s width,.18s height,.18s background;mix-blend-mode:difference}.cursor-dot{width:5px;height:5px;background:var(--lime)}body.cursor-hover .cursor{width:62px;height:62px;background:rgba(167,201,87,.12)}

@media(max-width:1080px){.navlinks{gap:2px}.navlinks a{padding:9px 7px;font-size:.78rem}.nav-cta{display:none}.grid-4{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1.2fr 1fr 1fr}.footer-grid>div:last-child{grid-column:span 3}.story-panel{gap:44px}}
@media(max-width:860px){.topbar .container>span:last-child{display:none}.topbar-info span:nth-child(2){display:none}.header{top:38px}.menu-btn{display:grid;place-items:center}.navlinks{position:fixed;inset:0;min-height:100svh;background:rgba(28,11,37,.98);backdrop-filter:blur(18px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:100px 30px;gap:8px;transform:translateX(100%);transition:.45s cubic-bezier(.2,.8,.2,1);z-index:-1}.navlinks.open{transform:none}.navlinks a{width:100%;font-family:'Playfair Display';font-size:clamp(2rem,9vw,4rem);border-radius:0;padding:10px 0}.navlinks a i{width:28px;font-size:1rem}.grid-2,.faq,.contact-grid{grid-template-columns:1fr;gap:42px}.grid-3{grid-template-columns:1fr 1fr}.process{grid-template-columns:1fr 1fr}.story-side{left:14px}.story-panel{grid-template-columns:1fr;width:min(720px,calc(100% - 70px));gap:30px}.story-visual{height:40vh;order:-1}.story-copy h2{font-size:clamp(3rem,10vw,5rem)}.story-stage{min-height:400vh}.section{padding:92px 0}.page-hero{min-height:64svh;padding-top:180px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:last-child{grid-column:auto}.gallery{grid-auto-rows:90px}.video-grid{grid-template-columns:1fr}.info-banner{grid-template-columns:1fr}.values .card:nth-child(even){transform:none}}
@media(max-width:620px){.container{width:min(100% - 28px,1220px)}.topbar{font-size:.72rem}.topbar-info{gap:10px}.topbar-info span:nth-child(3){display:none}.nav{height:76px}.brand-mark{width:42px;height:42px}.brand span{font-size:.88rem}.brand span small{font-size:.5rem}.hero{padding:150px 0 42px}.hero h1{font-size:clamp(3.6rem,17vw,5.8rem)}.hero p{font-size:1rem}.hero-scroll{margin-top:36px}.section{padding:78px 0}h2{font-size:clamp(2.7rem,13vw,4.4rem)}.grid-3,.grid-4,.process,.location-grid{grid-template-columns:1fr}.service-card{min-height:410px}.service-card p{max-height:140px;opacity:1}.image-stack{min-height:500px}.image-stack .a{width:82%;height:410px}.image-stack .b{width:54%;height:230px}.panel{padding:32px}.stats{grid-template-columns:repeat(2,1fr)}.story-side{display:none}.story-panel{width:calc(100% - 28px)}.story-visual{height:36vh}.story-index{font-size:7rem}.story-stage{min-height:420vh}.info-banner{width:calc(100% - 28px);padding:34px 25px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:last-child{grid-column:auto}.copyright{flex-direction:column}.gallery{display:grid;grid-template-columns:1fr;grid-auto-rows:310px}.gallery figure:nth-child(n){grid-column:auto;grid-row:auto}.map-wrap{min-height:400px}.form{padding:12px;min-height:800px}.back-to-top{right:14px;bottom:14px}.page-hero h1{font-size:clamp(3.4rem,16vw,5.6rem)}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal,.reveal-left,.reveal-right{opacity:1;transform:none;filter:none}}

/* v3: presentation-style home + working service story + animated footer title */
.footer{padding-top:0}
.footer:before{display:none}
.footer-title-marquee{position:relative;z-index:1;width:100%;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.08);padding:26px 0 18px;margin-bottom:62px}
.footer-title-track{display:flex;align-items:center;width:max-content;will-change:transform;animation:footerTitleLoop 24s linear infinite}
.footer-title-track span{display:block;flex:none;font-family:'Playfair Display',serif;font-weight:700;font-size:clamp(5rem,12vw,12rem);line-height:.82;letter-spacing:-.055em;color:rgba(255,255,255,.095);white-space:nowrap;padding-right:.42em}
.footer-title-track span:after{content:'✦';font-family:'DM Sans',sans-serif;font-size:.18em;vertical-align:middle;margin-left:.42em;color:var(--lime);opacity:.85}
@keyframes footerTitleLoop{to{transform:translateX(-50%)}}
.footer:hover .footer-title-track{animation-play-state:running}

.story-scroll{min-height:100svh;display:flex;align-items:center;overflow:hidden}
.story-stage{height:100svh;min-height:0;width:100%;position:relative}
.story-sticky{position:relative;top:auto;height:100svh;min-height:0}
.story-panel{height:100%;padding:96px 0 54px}
.story-rule:after{height:var(--story-progress,20%)}
.story-controls{position:absolute;z-index:8;left:50%;bottom:28px;transform:translateX(-50%);display:none;align-items:center;gap:12px}
.story-controls button{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:12px 16px;display:inline-flex;align-items:center;gap:9px;font-weight:800;backdrop-filter:blur(10px)}
.story-controls button:disabled{opacity:.35}
.story-dots{display:flex;align-items:center;gap:7px}
.story-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.28);transition:.3s transform,.3s background}
.story-dot.active{background:var(--lime);transform:scale(1.6)}

@media (min-width:861px){
  html{scroll-snap-type:y proximity;scroll-padding-top:0}
  .home-page main>.hero,.home-page main>.story-scroll,.home-page main>.section{scroll-snap-align:start;scroll-snap-stop:always}
  .home-page main>.section{min-height:100svh;display:flex;align-items:center;padding-top:96px;padding-bottom:96px}
  .home-page .info-banner{margin-top:auto;margin-bottom:auto}
}

@media(max-width:860px){
  html{scroll-snap-type:none}
  .story-scroll{min-height:auto;padding:86px 0 30px}
  .story-stage{height:auto;min-height:760px}
  .story-sticky{height:auto;min-height:760px;display:block}
  .story-panel{height:auto;min-height:690px;align-content:center;padding:0 0 96px;inset:0}
  .story-controls{display:flex}
  .story-label{display:none}
  .story-rule{height:100px}
}

@media(max-width:620px){
  .story-scroll{padding:72px 0 20px}
  .story-stage,.story-sticky{min-height:720px}
  .story-panel{min-height:650px;width:calc(100% - 28px);display:grid;grid-template-columns:1fr;gap:18px;padding:0 0 88px}
  .story-visual{height:250px;order:-1;border-radius:24px}
  .story-copy h2{font-size:clamp(2.75rem,12vw,4.2rem);margin:12px 0}
  .story-copy p{font-size:.94rem;line-height:1.55;margin:10px 0 18px}
  .story-copy .btn{padding:12px 17px;font-size:.88rem}
  .story-index{font-size:5.5rem;bottom:86px}
  .story-controls{bottom:22px;width:calc(100% - 28px);justify-content:space-between}
  .story-controls button{padding:11px 13px;font-size:.78rem}
  .story-controls button span{display:none}
  .footer-title-marquee{padding:20px 0 14px;margin-bottom:48px}
  .footer-title-track span{font-size:clamp(4.6rem,24vw,7rem)}
}

/* v4: stronger interaction, video banners, flip cards, WhatsApp, and locked service storytelling */
.page-hero{background:#1d1025;isolation:isolate}
.page-hero-media{position:absolute;inset:-3%;width:106%;height:106%;object-fit:cover;z-index:0;filter:saturate(1.08) contrast(1.03);will-change:transform}
.page-hero:before{z-index:1;background:linear-gradient(90deg,rgba(21,8,28,.84) 0%,rgba(42,15,53,.62) 48%,rgba(22,9,29,.42) 100%),radial-gradient(circle at 78% 20%,rgba(167,201,87,.18),transparent 30%)}
.page-hero:after{z-index:1;mix-blend-mode:screen;opacity:.55}
.page-hero .container{z-index:3}

/* A more graphic button hover: diagonal lime sweep + icon motion */
.btn,.nav-cta{position:relative;isolation:isolate;overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,color .35s,border-color .35s}
.btn:before,.nav-cta:before{content:"";position:absolute;z-index:-1;inset:-2px;transform:translateX(-115%) skewX(-18deg);background:linear-gradient(110deg,var(--lime),#d8f291);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.btn:hover:before,.nav-cta:hover:before{transform:translateX(0) skewX(0)}
.btn:hover,.nav-cta:hover{color:#1d2611!important;border-color:var(--lime)!important;transform:translateY(-4px);box-shadow:0 18px 34px rgba(54,20,70,.22)}
.btn i,.nav-cta i{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.btn:hover i,.nav-cta:hover i{transform:translateX(5px) rotate(-8deg) scale(1.08)}
.btn.alt:hover{color:#1d2611!important}

.whatsapp-float{position:fixed;left:22px;bottom:22px;z-index:1001;display:flex;align-items:center;gap:10px;height:54px;min-width:54px;padding:0 18px;border-radius:999px;background:#25D366;color:#fff;font-weight:800;box-shadow:0 14px 35px rgba(0,0,0,.22);transition:transform .3s,box-shadow .3s,filter .3s}
.whatsapp-float i{font-size:1.65rem;transition:transform .35s}
.whatsapp-float span{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width .35s,opacity .25s}
.whatsapp-float:hover{transform:translateY(-5px) scale(1.03);box-shadow:0 20px 42px rgba(0,0,0,.27);filter:saturate(1.12)}
.whatsapp-float:hover span{max-width:100px;opacity:1}
.whatsapp-float:hover i{transform:rotate(-10deg) scale(1.1)}

/* Flip cards */
.flip-grid{perspective:1400px}
.flip-card{min-height:250px;perspective:1200px;cursor:pointer;outline:none}
.flip-card-inner{position:relative;width:100%;height:100%;min-height:250px;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.2,.78,.2,1)}
.flip-card:hover .flip-card-inner,.flip-card:focus .flip-card-inner,.flip-card.is-flipped .flip-card-inner{transform:rotateY(180deg)}
.flip-card-face{position:absolute;inset:0;padding:28px;border-radius:24px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;box-shadow:0 14px 40px rgba(61,27,74,.10)}
.flip-card-front{background:#fff;border:1px solid rgba(90,24,154,.10)}
.flip-card-front:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:-45px;bottom:-55px;background:rgba(167,201,87,.18);transition:transform .45s}
.flip-card:hover .flip-card-front:after{transform:scale(1.4)}
.flip-card-back{transform:rotateY(180deg);background:linear-gradient(135deg,var(--plum-dark),var(--plum));color:#fff;display:flex;flex-direction:column;justify-content:center}
.flip-card-back>i{font-size:2rem;color:var(--lime);margin-bottom:18px}
.flip-card-back p{color:rgba(255,255,255,.76)}
.flip-hint{display:flex;align-items:center;gap:7px;margin-top:18px;font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--plum)}

/* Keep the story section visually pinned while its service sequence is active. */
.story-scroll{position:relative;overscroll-behavior:contain}
.story-scroll.story-locked{scroll-snap-align:start!important}
.story-panel{transition:opacity .48s ease,visibility .48s ease,transform .65s cubic-bezier(.2,.8,.2,1)}
.story-panel:not(.active){transform:translateY(24px) scale(.985)}
.story-panel.active{transform:none}

@media(max-width:860px){
  .whatsapp-float{left:14px;bottom:14px;width:52px;min-width:52px;height:52px;padding:0;justify-content:center}
  .whatsapp-float span{display:none}
  .back-to-top{bottom:14px}
  .flip-card{min-height:235px}
  .flip-card-inner{min-height:235px}
  .flip-hint{display:none}
}
@media(hover:none){
  .flip-card:hover .flip-card-inner{transform:none}
  .flip-card.is-flipped .flip-card-inner{transform:rotateY(180deg)}
}


/* v5: official brand assets, mirrored hero, product catalog */
.brand{min-width:150px}
.header-logo{display:block;width:clamp(145px,13vw,205px);height:auto;max-height:72px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.14))}
.footer .brand{display:inline-flex;min-width:0;margin-bottom:18px}
.footer-logo{display:block;width:min(280px,82%);height:auto;max-height:135px;object-fit:contain}
.hero-media{transform:scaleX(-1) scale(1.08)}

.product-catalog-section{background:linear-gradient(180deg,#fff 0%,#f8f3fa 46%,#fff 100%);overflow:clip}
.product-catalog-intro{max-width:860px;margin-bottom:36px}
.product-category-nav{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 16px;scrollbar-width:none;position:sticky;top:92px;z-index:12;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);border-radius:18px}
.product-category-nav::-webkit-scrollbar{display:none}
.product-category-btn,.product-subcategory-btn{border:1px solid rgba(90,24,154,.14);background:#fff;color:var(--plum-dark);font:inherit;font-weight:800;cursor:pointer;transition:.3s ease}
.product-category-btn{min-width:max-content;padding:15px 18px;border-radius:16px;display:inline-flex;align-items:center;gap:9px;box-shadow:0 8px 24px rgba(52,18,68,.06)}
.product-category-btn:hover,.product-category-btn.active{background:var(--plum);color:#fff;transform:translateY(-3px);box-shadow:0 14px 30px rgba(90,24,154,.2)}
.product-category-btn.active i{color:var(--lime)}
.product-category-panel{display:none;padding-top:22px}.product-category-panel.active{display:block;animation:catalogIn .45s ease both}
@keyframes catalogIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.product-subcategory-nav{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:28px}
.product-subcategory-btn{padding:10px 14px;border-radius:999px;font-size:.82rem}
.product-subcategory-btn:hover,.product-subcategory-btn.active{background:var(--lime);border-color:var(--lime);color:#263313;transform:translateY(-2px)}
.product-subcategory-block{display:none}.product-subcategory-block.active{display:block}
.product-subheading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:12px 0 20px}.product-subheading h3{font-family:'Playfair Display',serif;font-size:clamp(2rem,4vw,3.5rem);margin:0}.product-subheading span{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--plum)}
.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.product-card{background:#fff;border:1px solid rgba(90,24,154,.09);border-radius:24px;overflow:hidden;box-shadow:0 12px 32px rgba(52,18,68,.08);transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .38s}
.product-card:hover{transform:translateY(-8px) rotateX(1deg);box-shadow:0 24px 50px rgba(52,18,68,.16)}
.product-media{display:block;width:100%;height:320px;border:0;padding:0;background:#f7f4f8;position:relative;overflow:hidden;cursor:zoom-in}
.product-media img{width:100%;height:100%;object-fit:contain;padding:16px;transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .4s}
.product-card:hover .product-media img{transform:scale(1.09) rotate(1deg);filter:saturate(1.08)}
.product-zoom-icon{position:absolute;right:15px;bottom:15px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(90,24,154,.9);color:#fff;transform:translateY(8px);opacity:0;transition:.3s}
.product-card:hover .product-zoom-icon,.product-media:focus .product-zoom-icon{opacity:1;transform:none}
.product-body{padding:20px}.product-type{display:block;color:var(--plum);font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;margin-bottom:9px}.product-body h4{font-family:'DM Sans',sans-serif;font-size:1rem;line-height:1.35;margin:0 0 16px;color:#25142d;min-height:2.7em}.product-price{font-family:'Playfair Display',serif;font-size:1.55rem;color:var(--plum-dark)}
.product-source-note{margin:34px 0 0;padding:16px 18px;border-left:4px solid var(--lime);background:rgba(167,201,87,.12);border-radius:0 12px 12px 0;font-size:.84rem;color:#51435a}
.product-lightbox{position:fixed;inset:0;z-index:3000;background:rgba(18,8,23,.92);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.3s;padding:30px}.product-lightbox.open{opacity:1;visibility:visible}.product-lightbox figure{margin:0;max-width:min(900px,88vw);max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:14px}.product-lightbox figure img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:18px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.35)}.product-lightbox figcaption{color:#fff;font-weight:800;text-align:center}.product-lightbox button{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:50px;height:50px;border-radius:50%;cursor:pointer;backdrop-filter:blur(8px);transition:.25s}.product-lightbox button:hover{background:var(--lime);color:#1c2711;transform:scale(1.08)}.product-lightbox-close{top:22px;right:22px}.product-lightbox-prev{left:22px;top:50%}.product-lightbox-next{right:22px;top:50%}.lightbox-open{overflow:hidden}

@media(max-width:1050px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.product-category-nav{top:82px}}
@media(max-width:760px){.header-logo{width:150px;max-height:60px}.footer-logo{width:min(240px,75%)}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.product-media{height:250px}.product-category-nav{position:relative;top:auto}.product-subheading{align-items:start;flex-direction:column}.product-lightbox{padding:20px}.product-lightbox-prev{left:10px}.product-lightbox-next{right:10px}.product-lightbox-close{top:12px;right:12px}}
@media(max-width:470px){.product-grid{grid-template-columns:1fr}.product-media{height:340px}.product-body h4{min-height:0}.product-category-btn{padding:12px 14px}.product-lightbox-prev,.product-lightbox-next{top:auto;bottom:18px}.product-lightbox-prev{left:calc(50% - 62px)}.product-lightbox-next{right:calc(50% - 62px)}}


/* v7 refinements */
.header-logo,.footer-logo{width:200px!important;max-width:200px!important;height:auto!important;max-height:none!important;object-fit:contain}
@media(max-width:620px){.header-logo,.footer-logo{width:200px!important;max-width:200px!important}.brand{max-width:210px}}
.page-hero{background-image:linear-gradient(90deg,rgba(24,8,30,.82),rgba(48,17,59,.58),rgba(20,8,25,.46)),url("https://assets.cdn.filesafe.space/1lTZAvGcN8tpy77R9DPv/media/6a988745a1f3f48f4ba2a1cb.png")!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.page-hero:before{background:linear-gradient(90deg,rgba(20,7,26,.42),rgba(90,24,154,.12),transparent)!important}
.section-heading{max-width:850px;margin-bottom:40px}.section-heading>p,.section-description{max-width:760px;color:var(--muted);font-size:1.02rem}.dark .section-heading>p{color:rgba(255,255,255,.72)}
.centered-copy{max-width:880px!important;text-align:center}.centered-copy>div{max-width:780px;margin:auto}.centered-copy .eyebrow{margin-left:auto;margin-right:auto}
.product-preview-section{overflow:hidden;background:linear-gradient(135deg,#f9f4fb 0%,#fff 52%,#f1f8df 100%)}.preview-carousel{overflow:hidden;margin-top:22px}.preview-track{display:flex;gap:20px;width:max-content;animation:previewMarquee 38s linear infinite}.preview-carousel:hover .preview-track{animation-play-state:paused}@keyframes previewMarquee{to{transform:translateX(calc(-50% - 10px))}}.preview-product{width:250px;flex:none}.preview-product a{display:block;color:inherit}.preview-image{height:310px;border-radius:28px;overflow:hidden;position:relative;background:#fff;box-shadow:0 18px 44px rgba(72,27,92,.12)}.preview-image img{width:100%;height:100%;object-fit:cover;transition:.5s transform}.preview-image span{position:absolute;right:14px;top:14px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:var(--plum-dark);transform:scale(.8);opacity:0;transition:.3s}.preview-product:hover .preview-image img{transform:scale(1.08) rotate(1deg)}.preview-product:hover .preview-image span{opacity:1;transform:none}.preview-product small{display:block;margin-top:15px;color:var(--plum);font-weight:800;text-transform:uppercase;letter-spacing:.12em}.preview-product h3{font-size:1.15rem;margin:5px 0 3px;line-height:1.25}.preview-product strong{color:var(--plum);font-size:1.05rem}.preview-actions{margin-top:32px}
.product-card{position:relative;background:linear-gradient(180deg,#fff 0%,#fff 72%,#f7f0fb 100%);border:1px solid rgba(90,24,154,.16)!important}.product-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--plum),var(--lime));z-index:3}.product-body{position:relative;padding:20px 18px 22px!important}.product-body:after{content:"PRODUCT";position:absolute;right:14px;bottom:12px;font-size:.62rem;letter-spacing:.18em;color:rgba(90,24,154,.18);font-weight:900}.product-type{display:inline-flex;padding:6px 9px;border-radius:999px;background:rgba(167,201,87,.18);color:var(--plum)!important}.product-price{display:inline-block;margin-top:10px;padding:7px 11px;border-radius:10px;background:var(--plum);color:#fff!important}
.product-gallery{margin-top:34px}.product-portfolio-item{position:relative;overflow:hidden;border-radius:24px;background:#fff;box-shadow:0 15px 40px rgba(50,17,66,.12)}.product-portfolio-item .product-media{height:100%;min-height:280px}.product-portfolio-item figcaption{position:absolute;left:15px;right:15px;bottom:15px;padding:10px 14px;background:rgba(28,9,36,.76);backdrop-filter:blur(10px);color:#fff;border-radius:14px;font-weight:700;pointer-events:none}
.coming-soon-section{min-height:80svh;display:flex;align-items:center;background:radial-gradient(circle at 20% 10%,rgba(167,201,87,.24),transparent 30%),linear-gradient(135deg,#f7f1fb,#fff)}.coming-soon-wrap{text-align:center;max-width:900px;margin:auto}.coming-soon-wrap .eyebrow{margin-left:auto;margin-right:auto}.coming-soon-wrap p{max-width:700px;margin:18px auto 30px}.coming-orbit{width:min(520px,82vw);aspect-ratio:1;margin:25px auto 40px;position:relative;border:1px solid rgba(90,24,154,.15);border-radius:50%;animation:slowspin 22s linear infinite}.coming-orbit:before,.coming-orbit:after{content:"";position:absolute;border:1px dashed rgba(90,24,154,.18);border-radius:50%;inset:12%;}.coming-orbit:after{inset:26%;border-style:solid}.coming-core{position:absolute;inset:33%;border-radius:50%;display:grid;place-items:center;background:var(--plum);color:#fff;box-shadow:0 20px 60px rgba(90,24,154,.3);animation:counterspin 22s linear infinite}.coming-core i{font-size:2rem;color:var(--lime);margin-bottom:-18px}.coming-core strong{font-family:'Playfair Display';font-size:clamp(1.4rem,3vw,2.4rem);line-height:.9}.orbit-word{position:absolute;font-size:.72rem;font-weight:900;letter-spacing:.18em;color:var(--plum);animation:counterspin 22s linear infinite}.orbit-word.a{top:-8px;left:45%}.orbit-word.b{right:-20px;top:48%}.orbit-word.c{bottom:-8px;left:43%}.orbit-word.d{left:-22px;top:48%}@keyframes counterspin{to{transform:rotate(-360deg)}}
.city-cloud{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.city-cloud span{display:inline-flex;align-items:center;gap:9px;padding:12px 16px;border-radius:999px;background:#fff;border:1px solid rgba(90,24,154,.13);box-shadow:0 8px 20px rgba(65,23,82,.06);font-weight:700;transition:.3s}.city-cloud span:hover{transform:translateY(-4px);background:var(--plum);color:#fff}.city-cloud i{color:var(--lime)}
.contact-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}.contact-facts>div{padding:18px;border-radius:20px;background:linear-gradient(135deg,rgba(90,24,154,.07),rgba(167,201,87,.12));border:1px solid rgba(90,24,154,.11)}.contact-facts i{color:var(--plum);font-size:1.2rem}.contact-facts strong,.contact-facts span{display:block}.contact-facts strong{margin:8px 0 3px}.contact-facts span{font-size:.86rem;color:var(--muted)}
@media(max-width:620px){.preview-product{width:210px}.preview-image{height:265px}.contact-facts{grid-template-columns:1fr}.coming-orbit{width:76vw}}


/* v8 request refinements */
.header-logo{display:none!important}
.topbar,.header{transition:transform .35s ease, opacity .35s ease, top .35s ease, background .35s ease, box-shadow .35s ease}
.topbar.is-hidden,.header.is-hidden{transform:translateY(-140%);opacity:0;pointer-events:none}
.header{top:38px;background:transparent!important;box-shadow:none!important}.header.is-scrolled{position:fixed;top:38px;background:transparent!important;backdrop-filter:none;box-shadow:none!important}
.nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px}.navlinks{grid-column:2;justify-self:center}.nav-cta{grid-column:3;justify-self:end}.menu-btn{grid-column:3;justify-self:end}
@media(max-width:860px){.nav{display:flex;justify-content:space-between}.navlinks{grid-column:auto}.nav-cta{display:none}}

.hero,.page-hero{isolation:isolate}
.hero .container,.page-hero .container{position:relative;z-index:3}
.hero-corner-logo{position:absolute;right:0;bottom:-28px;width:250px;max-width:min(28vw,250px);height:auto;filter:drop-shadow(0 18px 40px rgba(22,8,29,.35));animation:logoWobble 3.2s ease-in-out infinite;transform-origin:75% 100%;z-index:5;pointer-events:none}
.banner-corner-logo{right:0;bottom:-8px}
@keyframes logoWobble{0%,100%{transform:rotate(0deg) translateY(0)}20%{transform:rotate(3deg) translateY(-4px)}40%{transform:rotate(-3deg) translateY(0)}60%{transform:rotate(2deg) translateY(-3px)}80%{transform:rotate(-2deg) translateY(1px)}}
@media(max-width:860px){.hero-corner-logo{width:185px;max-width:42vw;right:8px;bottom:-10px}.banner-corner-logo{bottom:-4px}}
@media(max-width:520px){.hero-corner-logo{width:150px;max-width:44vw}}

.page-hero{background-image:linear-gradient(90deg,rgba(24,8,30,.82),rgba(48,17,59,.58),rgba(20,8,25,.46)),url("https://assets.cdn.filesafe.space/1lTZAvGcN8tpy77R9DPv/media/6a988d18738fb3768dfa2c44.png")!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.page-hero:before{background:linear-gradient(90deg,rgba(20,7,26,.5),rgba(90,24,154,.14),transparent)!important}

.hero-media{transform:scaleX(-1) scale(1.08)}
.product-preview-section .container{width:min(1320px,calc(100% - 44px))}.preview-carousel{width:100vw;margin-left:calc(50% - 50vw);padding-inline:22px}.preview-track{gap:24px}.preview-product{width:270px}.preview-image{height:330px}.preview-product a{padding-inline:0}.preview-actions{display:flex;justify-content:center}
@media(max-width:620px){.preview-carousel{padding-inline:14px}.preview-product{width:220px}.preview-image{height:280px}}

.product-catalog-section{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff7fb 0%,#fbf7ff 38%,#f6ffe8 100%)}
.product-catalog-section:before,.product-catalog-section:after{content:"";position:absolute;border-radius:50%;filter:blur(0);opacity:.7;pointer-events:none}
.product-catalog-section:before{width:460px;height:460px;left:-120px;top:120px;background:radial-gradient(circle,rgba(123,44,191,.18) 0%,rgba(123,44,191,0) 68%);animation:floatBlob 10s ease-in-out infinite}
.product-catalog-section:after{width:420px;height:420px;right:-110px;bottom:90px;background:radial-gradient(circle,rgba(167,201,87,.28) 0%,rgba(167,201,87,0) 68%);animation:floatBlob 12s ease-in-out infinite reverse}
.product-catalog-section .container{position:relative;z-index:2}
.product-catalog-intro,.services-overview-heading{position:relative}
.product-catalog-intro:before,.services-overview-heading:before{content:"";position:absolute;right:0;top:-18px;width:110px;height:110px;background:radial-gradient(circle at 30% 30%,rgba(167,201,87,.34) 0 15%,transparent 16% 100%);opacity:.45;animation:driftDots 8s linear infinite}
.product-grid{position:relative}.product-grid:before{content:"";position:absolute;inset:-16px;border:1px dashed rgba(90,24,154,.08);border-radius:28px;pointer-events:none}
.product-card{background:linear-gradient(180deg,#fff 0%,#fff 64%,#f8f2fb 100%)!important;border:1px solid rgba(90,24,154,.17)!important;box-shadow:0 16px 36px rgba(52,18,68,.09)!important}.product-card:after{content:"";position:absolute;right:-34px;top:-34px;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle,rgba(167,201,87,.22) 0%,rgba(167,201,87,0) 72%);transition:.35s}.product-card:hover:after{transform:scale(1.18)}.product-media{background:linear-gradient(180deg,#fff,#f8f5fb)!important}.product-body{padding:22px 18px 24px!important}.product-body h4{font-size:1.03rem}.product-price{box-shadow:0 10px 24px rgba(90,24,154,.18)}
@keyframes floatBlob{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(16px,-22px,0)}}@keyframes driftDots{0%{transform:translateX(0) rotate(0)}100%{transform:translateX(-10px) rotate(360deg)}}

.home-page .values, .home-page .section.about-home{display:none!important}
.footer-logo{width:200px!important;max-width:200px!important;height:auto!important}


/* v9 interaction overhaul */
.home-page{scroll-snap-type:y proximity}
.home-slide{min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero-slide{transition:transform .8s cubic-bezier(.2,.8,.2,1),opacity .8s}
.welcome-slide{transition:transform .8s cubic-bezier(.2,.8,.2,1),opacity .8s}
.hero-slide.slide-out-left{transform:translateX(-100%);opacity:.15}
.welcome-slide{transform:translateX(18%);opacity:.15}
.welcome-slide.slide-in{transform:translateX(0);opacity:1}
.welcome-slide .image-stack{min-height:720px}
.welcome-slide .image-stack .a{width:79%;height:590px}
.welcome-slide .image-stack .b{width:54%;height:330px}
.story-stage{min-height:500vh!important}
.story-sticky{height:100svh;min-height:100svh}
.story-panel{pointer-events:none}.story-panel.active{pointer-events:auto}
.story-visual img{object-fit:cover}
.mission-vision-section{background-image:linear-gradient(rgba(31,10,39,.88),rgba(31,10,39,.88)),url("https://assets.cdn.filesafe.space/1lTZAvGcN8tpy77R9DPv/media/6a988745a1f3f48f4ba2a1cb.png");background-size:cover;background-position:center;background-attachment:fixed}
.process-section{background:linear-gradient(180deg,#fff,#faf5ff)}
.process-interactive{position:relative}
.process-interactive:before{content:"";position:absolute;left:4%;right:4%;top:50%;height:2px;background:linear-gradient(90deg,var(--plum),var(--lime),var(--plum));transform:scaleX(.2);transform-origin:left;transition:transform 1.2s ease}
.process-section:has(.process-interactive.in) .process-interactive:before,.process-interactive:hover:before{transform:scaleX(1)}
.process-interactive .step{position:relative;transition:.45s transform,.45s box-shadow,.45s background;overflow:hidden}
.process-interactive .step:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:rgba(167,201,87,.15);right:-55px;bottom:-55px;transition:.45s transform}
.process-interactive .step:hover{transform:translateY(-12px) rotate(-1deg);box-shadow:0 24px 55px rgba(76,29,96,.16);background:#fff}
.process-interactive .step:hover:after{transform:scale(1.6)}
.about-map{min-height:460px;border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}.about-map iframe{width:100%;height:100%;min-height:460px;border:0}
.about-services-preview .container{overflow:hidden}
.about-services-preview .grid-3,.about-services-preview .grid-4{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:18px}
.about-service-preview{min-width:min(420px,78vw);height:520px;position:relative;overflow:hidden;border-radius:28px;scroll-snap-align:start;background:var(--plum-dark);color:#fff;box-shadow:0 20px 50px rgba(45,15,58,.18)}
.about-service-preview img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:.7s transform,.7s filter}
.about-service-preview:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(31,10,39,.92));z-index:1}
.about-service-preview .content,.about-service-preview h3,.about-service-preview p,.about-service-preview .num{position:relative;z-index:2}
.about-service-preview .content{position:absolute;left:24px;right:24px;bottom:24px}
.about-service-preview:hover img{transform:scale(1.09);filter:saturate(1.25)}
.portfolio-all-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:36px}
.portfolio-product{margin:0;border-radius:28px;overflow:hidden;min-height:420px;background:#fff;box-shadow:0 18px 48px rgba(50,17,66,.11);position:relative}
.portfolio-product .product-media{height:100%;min-height:420px;background:#fff}
.portfolio-product .product-media img{width:100%;height:100%;object-fit:contain;padding:24px;transition:.55s transform,.55s filter}
.portfolio-product:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(90,24,154,.16),rgba(167,201,87,.18));opacity:0;transition:.4s;z-index:2;pointer-events:none}
.portfolio-product:hover:before{opacity:1}.portfolio-product:hover img{transform:scale(1.08);filter:saturate(1.2)}
.video-soon-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}
.video-soon-stage{min-height:560px;position:relative;perspective:1100px}
.video-frame{position:absolute;width:62%;height:62%;border-radius:28px;background:linear-gradient(135deg,var(--plum),var(--plum-dark));color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;box-shadow:0 28px 70px rgba(62,19,82,.22);border:1px solid rgba(255,255,255,.12);animation:floatCard 5s ease-in-out infinite}
.video-frame i{font-size:2.2rem;color:var(--lime)}.video-frame span{font-weight:900;letter-spacing:.18em}
.frame-a{left:0;top:0;transform:rotate(-6deg)}.frame-b{right:0;top:80px;transform:rotate(6deg);animation-delay:-1.5s}.frame-c{left:18%;bottom:0;transform:rotate(-2deg);animation-delay:-3s}
.coming-label{position:absolute;right:2%;bottom:7%;font-family:'Playfair Display';font-size:clamp(3rem,7vw,7rem);line-height:.8;color:var(--plum);mix-blend-mode:multiply;transform:rotate(-7deg)}
@keyframes floatCard{0%,100%{translate:0 0}50%{translate:0 -16px}}
.mobile-menu-logo,.mobile-menu-close{display:none}
.section-bg-title,.background-title,.section-watermark{white-space:nowrap;overflow:visible!important;max-width:none!important}
.footer-title-marquee{overflow:hidden}.footer-title-track span{white-space:nowrap}
@media(max-width:900px){.portfolio-all-products{grid-template-columns:repeat(2,minmax(0,1fr))}.video-soon-grid{grid-template-columns:1fr}.video-soon-stage{min-height:500px}}
@media(max-width:860px){
  .navlinks{display:flex!important;position:fixed;inset:0;transform:translateX(100%)!important;opacity:1;visibility:visible;background:rgba(29,12,39,.98);z-index:3000;align-items:center!important;justify-content:center!important;padding:100px 28px 40px!important}
  .navlinks.open{transform:translateX(0)!important}
  .mobile-menu-logo{display:block;width:210px;max-width:60vw;margin:0 auto 26px;object-fit:contain}
  .mobile-menu-close{display:grid;place-items:center;position:absolute;top:24px;right:24px;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;font-size:1.3rem;z-index:5}
  .menu-btn{display:grid!important;z-index:3001}
  .story-stage{min-height:auto!important}.story-sticky{position:relative;min-height:auto;height:auto;padding:70px 0}.story-panel{position:relative;display:none!important;inset:auto;opacity:1;transform:none;width:calc(100% - 28px);grid-template-columns:1fr}.story-panel.active{display:grid!important}
  .story-controls{position:relative;margin-top:24px}
  .welcome-slide{transform:none;opacity:1}.hero-slide.slide-out-left{transform:none;opacity:1}
  .mission-vision-section{background-attachment:scroll}
}
@media(max-width:620px){.portfolio-all-products{grid-template-columns:1fr}.portfolio-product,.portfolio-product .product-media{min-height:360px}.video-soon-stage{min-height:430px}.video-frame{width:68%;height:56%}}


/* v10 scroll sequencing + background text cleanup */
html,body{scroll-behavior:smooth}
.home-page{scroll-snap-type:none!important}

/* Remove decorative background words that were being clipped. */
.image-stack:after,.section-bg-title,.background-title,.section-watermark,.footer:before{display:none!important;content:none!important}

/* HERO -> WELCOME: one sticky presentation, then normal vertical flow. */
.intro-scroll{height:230vh;position:relative;background:var(--paper);margin:0;padding:0}
.intro-sticky{position:sticky;top:0;height:100svh;min-height:100svh;overflow:hidden;background:var(--paper)}
.intro-sticky>.hero-slide,.intro-sticky>.welcome-slide{position:absolute!important;inset:0;width:100%;height:100svh;min-height:100svh;margin:0;will-change:transform,opacity}
.intro-sticky>.hero-slide{z-index:2;transform:translate3d(0,0,0);opacity:1}
.intro-sticky>.welcome-slide{z-index:3;transform:translate3d(100%,0,0);opacity:1;background:var(--paper);padding:78px 0;display:flex!important;align-items:center!important}
.intro-sticky>.welcome-slide .container{width:min(1220px,calc(100% - 44px));margin:auto}
.intro-sticky>.welcome-slide .reveal{opacity:1!important;transform:none!important}
.intro-sticky>.welcome-slide .image-stack{min-height:min(72vh,720px)}
.intro-sticky>.welcome-slide .image-stack .a{height:min(62vh,610px);width:82%;top:0}
.intro-sticky>.welcome-slide .image-stack .b{height:min(36vh,350px);width:56%;bottom:0}

/* SERVICES: exactly one sticky sequence, no blank spacer after the fifth service. */
.story-scroll{position:relative;margin:0!important;padding:0!important;background:var(--plum-dark);overflow:clip}
.story-stage{height:500vh!important;min-height:0!important;margin:0!important;padding:0!important;position:relative}
.story-sticky{position:sticky!important;top:0!important;height:100svh!important;min-height:100svh!important;margin:0!important;padding:0!important;overflow:hidden}
.story-panel{height:100svh;min-height:100svh;align-content:center}
.story-scroll + .marquee{margin-top:0!important}

/* Keep the animated service visuals centered while each slide is active. */
.story-panel.active .story-copy{animation:serviceCopyIn .7s cubic-bezier(.2,.8,.2,1) both}
.story-panel.active .story-visual{animation:serviceVisualIn .8s cubic-bezier(.2,.8,.2,1) both}
@keyframes serviceCopyIn{from{opacity:0;transform:translateX(-36px)}to{opacity:1;transform:none}}
@keyframes serviceVisualIn{from{opacity:0;transform:translateX(42px) scale(.97)}to{opacity:1;transform:none}}

@media(max-width:860px){
  .intro-scroll{height:auto!important}
  .intro-sticky{position:relative;height:auto;min-height:0;overflow:visible}
  .intro-sticky>.hero-slide,.intro-sticky>.welcome-slide{position:relative!important;inset:auto!important;height:auto!important;min-height:100svh!important;transform:none!important;opacity:1!important}
  .intro-sticky>.welcome-slide{padding:78px 0!important}
  .story-stage{height:auto!important;min-height:auto!important}
  .story-sticky{position:relative!important;height:auto!important;min-height:auto!important;padding:70px 0!important}
  .story-panel{height:auto!important;min-height:0!important}
}


/* v11 updates */
/* About history imagery */
.about-history .image-stack img{object-fit:cover}

/* Locations contact panel */
.location-contact-list{display:grid;gap:14px;margin-top:22px}.location-contact-list>a,.location-contact-list>div{display:flex;gap:14px;align-items:flex-start;padding:15px 16px;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:inherit;transition:.3s}.location-contact-list>a:hover{transform:translateX(6px);background:rgba(167,201,87,.16)}.location-contact-list i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:var(--plum-dark);flex:none}.location-contact-list span{display:grid;gap:3px;line-height:1.35}.location-contact-list strong{color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.11em}

/* Coming soon image frames */
.video-frame.has-image{background-image:linear-gradient(rgba(49,16,63,.2),rgba(49,16,63,.72)),var(--frame-image)!important;background-size:cover!important;background-position:center!important;overflow:hidden}.video-frame.has-image:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 20%,rgba(167,201,87,.22));transition:.45s}.video-frame.has-image:hover:before{transform:translateX(18px)}.video-frame.has-image i,.video-frame.has-image span{position:relative;z-index:2;text-shadow:0 3px 18px rgba(0,0,0,.35)}

/* Footer product preview */
.footer-product-preview{grid-column:3/5;margin-top:4px;align-self:start}.footer-preview-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.footer-preview-head>span{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--lime);font-weight:800}.footer-preview-head>a{font-size:.78rem;color:rgba(255,255,255,.72);transition:.25s}.footer-preview-head>a:hover{color:var(--lime)}.footer-preview-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.footer-preview-item{position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.1)}.footer-preview-item img{width:100%;height:100%;object-fit:cover;transition:.4s}.footer-preview-item span{position:absolute;inset:auto 5px 5px;padding:4px 6px;border-radius:8px;background:rgba(25,9,31,.78);color:#fff;font-size:.55rem;text-align:center;opacity:0;transform:translateY(5px);transition:.3s}.footer-preview-item:hover img{transform:scale(1.12)}.footer-preview-item:hover span{opacity:1;transform:none}

/* Portfolio 20-per-page pagination */
.portfolio-product[hidden]{display:none!important}.portfolio-pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:46px}.portfolio-pagination>button,.portfolio-page-numbers button{width:46px;height:46px;border-radius:50%;border:1px solid rgba(90,24,154,.17);background:#fff;color:var(--plum);font-weight:800;cursor:pointer;transition:.3s}.portfolio-page-numbers{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.portfolio-page-numbers button:hover,.portfolio-page-numbers button.active,.portfolio-pagination>button:hover{background:var(--plum);color:#fff;transform:translateY(-3px)}.portfolio-pagination button:disabled{opacity:.35;cursor:not-allowed;transform:none}

/* Mobile footer centering */
@media(max-width:860px){.footer-product-preview{grid-column:1/-1}.footer-preview-grid{grid-template-columns:repeat(6,1fr)}}
@media(max-width:620px){.footer,.footer-grid,.footer-links,.copyright{text-align:center}.footer-grid{justify-items:center}.footer-grid>div{width:100%;display:flex;flex-direction:column;align-items:center}.footer-links{justify-items:center}.footer p{max-width:420px;margin-left:auto;margin-right:auto}.footer .brand{justify-content:center}.footer .btn{align-self:center}.copyright{align-items:center}.footer-product-preview{grid-column:1!important}.footer-preview-head{width:100%;justify-content:center;flex-direction:column;gap:6px}.footer-preview-grid{width:100%;grid-template-columns:repeat(3,1fr);max-width:360px}.footer-preview-item span{opacity:1;transform:none}.footer-title-marquee{text-align:left}}


/* v12: deterministic scroll presentation + refined mobile menu + process journey */
@media(min-width:861px){
  .intro-scroll{height:100svh!important;min-height:100svh!important;position:relative!important;margin:0!important;padding:0!important;overflow:hidden!important}
  .intro-sticky{position:relative!important;top:auto!important;height:100svh!important;min-height:100svh!important;overflow:hidden!important}
  .intro-sticky>.hero-slide,.intro-sticky>.welcome-slide{position:absolute!important;inset:0!important;width:100%!important;height:100svh!important;min-height:100svh!important;margin:0!important}
  .intro-sticky>.hero-slide{transform:translate3d(0,0,0)!important;opacity:1!important;transition:transform .85s cubic-bezier(.2,.8,.2,1),opacity .85s!important}
  .intro-sticky>.welcome-slide{transform:translate3d(100%,0,0)!important;opacity:1!important;transition:transform .85s cubic-bezier(.2,.8,.2,1)!important;padding:52px 0!important;display:flex!important;align-items:center!important}
  .intro-scroll.show-welcome .hero-slide{transform:translate3d(-100%,0,0)!important;opacity:.25!important}
  .intro-scroll.show-welcome .welcome-slide{transform:translate3d(0,0,0)!important}
  .intro-sticky>.welcome-slide .container{height:auto!important;max-height:92svh!important;align-items:center!important}
  .intro-sticky>.welcome-slide .image-stack{min-height:min(66vh,650px)!important}
  .intro-sticky>.welcome-slide .image-stack .a{height:min(57vh,560px)!important}
  .intro-sticky>.welcome-slide .image-stack .b{height:min(32vh,310px)!important}

  .story-scroll{height:100svh!important;min-height:100svh!important;position:relative!important;margin:0!important;padding:0!important;overflow:hidden!important}
  .story-stage{height:100svh!important;min-height:100svh!important;position:relative!important;margin:0!important;padding:0!important}
  .story-sticky{position:relative!important;top:auto!important;height:100svh!important;min-height:100svh!important;margin:0!important;padding:0!important;overflow:hidden!important}
  .story-panel{height:100svh!important;min-height:100svh!important;align-content:center!important}
}

/* no blank visual spacer around the presentation sections */
.intro-scroll + .story-scroll,.story-scroll + .section{margin-top:0!important}

/* Interactive journey inspired by the referenced demo site's process treatment */
.journey-section{background:linear-gradient(180deg,#fffdf9 0%,#f9f3fb 100%)}
.journey-track{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:56px;padding-top:56px}
.journey-line{position:absolute;left:7%;right:7%;top:26px;height:3px;background:rgba(90,24,154,.12);border-radius:999px;overflow:hidden}
.journey-line span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--plum),var(--lime),var(--plum));transform:scaleX(0);transform-origin:left;transition:transform 1.15s cubic-bezier(.2,.8,.2,1)}
.journey-track.in .journey-line span{transform:scaleX(1)}
.journey-card{position:relative}
.journey-card button{width:100%;min-height:285px;text-align:left;padding:30px 26px 26px;border:1px solid rgba(90,24,154,.12);border-radius:26px;background:#fff;color:var(--ink);box-shadow:0 16px 38px rgba(57,20,72,.08);position:relative;overflow:hidden;cursor:pointer;transition:.45s transform,.45s box-shadow,.45s border-color,.45s background}
.journey-card button:before{content:"";position:absolute;inset:auto -35px -55px auto;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(167,201,87,.28),rgba(167,201,87,0) 68%);transition:.45s transform}
.journey-card button:after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(90,24,154,.97),rgba(58,19,75,.98));opacity:0;transition:.4s opacity;z-index:0}
.journey-card button>*{position:relative;z-index:2;transition:.4s color,.4s transform}
.journey-card:hover button,.journey-card.active button,.journey-card button:focus-visible{transform:translateY(-14px);box-shadow:0 28px 65px rgba(70,23,90,.18);border-color:rgba(90,24,154,.28)}
.journey-card:hover button:after,.journey-card.active button:after,.journey-card button:focus-visible:after{opacity:1}
.journey-card:hover button>*,.journey-card.active button>*,.journey-card button:focus-visible>*{color:#fff}
.journey-card:hover button:before,.journey-card.active button:before{transform:scale(1.5)}
.journey-num{display:inline-block;color:var(--plum);font-size:.72rem;font-weight:900;letter-spacing:.18em;margin-bottom:26px}
.journey-dot{position:absolute!important;top:-47px;left:50%;width:18px;height:18px;border-radius:50%;background:var(--lime);border:5px solid #fff;box-shadow:0 0 0 2px var(--plum);transform:translateX(-50%);z-index:4!important}
.journey-card h3{font-size:clamp(1.7rem,2.6vw,2.5rem);margin-bottom:14px}
.journey-card p{margin:0 0 22px;line-height:1.55}
.journey-card small{display:block;color:var(--plum);font-weight:800;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase}
.journey-card:nth-child(3){transform:translateY(24px)}
.journey-card:nth-child(5){transform:translateY(24px)}

/* Mobile menu must be fully hidden until opened and then occupy the whole viewport. */
@media(max-width:860px){
  .navlinks{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;min-height:100dvh!important;padding:88px 28px 34px!important;background:rgba(22,8,29,.985)!important;backdrop-filter:blur(18px)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:6px!important;transform:translate3d(100%,0,0)!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;z-index:4000!important;overflow-y:auto!important;transition:transform .42s cubic-bezier(.2,.8,.2,1),opacity .3s ease,visibility 0s linear .42s!important}
  .navlinks.open{transform:translate3d(0,0,0)!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;transition-delay:0s!important}
  .mobile-menu-logo{display:block!important;width:190px!important;max-width:58vw!important;margin:0 auto 18px!important;object-fit:contain!important;flex:none!important}
  .mobile-menu-close{display:grid!important;place-items:center!important;position:fixed!important;top:20px!important;right:20px!important;width:48px!important;height:48px!important;border-radius:50%!important;border:1px solid rgba(255,255,255,.32)!important;background:rgba(255,255,255,.08)!important;color:#fff!important;font-size:1.1rem!important;z-index:4100!important}
  .navlinks a{width:min(420px,100%)!important;font-family:'DM Sans',sans-serif!important;font-size:1.18rem!important;line-height:1.2!important;padding:13px 18px!important;border-radius:14px!important;justify-content:flex-start!important;color:#fff!important}
  .navlinks a i{width:24px!important;font-size:.95rem!important}
  .navlinks a:hover,.navlinks a.active{background:rgba(167,201,87,.15)!important;transform:none!important}
  .menu-btn{position:relative!important;z-index:3000!important}

  .journey-track{grid-template-columns:1fr;gap:16px;padding-top:0;margin-top:36px}
  .journey-line{left:18px;right:auto;top:18px;bottom:18px;width:3px;height:auto}
  .journey-line span{width:100%;height:100%;transform:scaleY(0);transform-origin:top}
  .journey-track.in .journey-line span{transform:scaleY(1)}
  .journey-card,.journey-card:nth-child(3),.journey-card:nth-child(5){transform:none;padding-left:36px}
  .journey-dot{top:32px;left:-27px;transform:none}
  .journey-card button{min-height:0;padding:24px}
}

/* Updated video cards */
.video-frame.has-image{background-image:linear-gradient(180deg,rgba(57,13,77,.08),rgba(33,7,44,.52)),var(--frame-image)!important;background-size:cover!important;background-position:center!important}

/* Contact page simplified footer */
.contact-simple-footer{padding-bottom:30px!important}
.contact-footer-inner{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:58px}
.contact-footer-brand{justify-content:center;margin-bottom:20px}
.contact-footer-inner p{max-width:650px;margin:0 auto;color:rgba(255,255,255,.68)}
.contact-simple-footer .copyright{width:100%;justify-content:center;text-align:center;margin-top:38px}
.contact-simple-footer .copyright span:last-child{display:none}


/* v13 refinements */
/* Welcome background color details */
.home-page .welcome-section, .home-page section:has(.image-stack) {position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#fffafc 48%,#f6ffe9 100%)}
.home-page .welcome-section:before, .home-page section:has(.image-stack):before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;left:-150px;top:-120px;background:radial-gradient(circle,rgba(90,24,154,.16),rgba(90,24,154,0) 68%);animation:floatBlob 11s ease-in-out infinite}
.home-page .welcome-section:after, .home-page section:has(.image-stack):after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-120px;bottom:-120px;background:radial-gradient(circle,rgba(167,201,87,.24),rgba(167,201,87,0) 68%);animation:floatBlob 13s ease-in-out infinite reverse}
.home-page .welcome-section>.container, .home-page section:has(.image-stack)>.container{position:relative;z-index:2}
/* Why choose us background details */
.home-page .why-section, .home-page section:has(.flip-grid){position:relative;overflow:hidden;background:linear-gradient(180deg,#fffdf9 0%,#faf5ff 100%)}
.home-page .why-section:before, .home-page section:has(.flip-grid):before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 12% 18%,rgba(167,201,87,.16) 0 6px,transparent 7px),radial-gradient(circle at 88% 76%,rgba(90,24,154,.12) 0 8px,transparent 9px);background-size:120px 120px,160px 160px;opacity:.65;animation:bgDrift 18s linear infinite}
.home-page .why-section>.container, .home-page section:has(.flip-grid)>.container{position:relative;z-index:2}
@keyframes bgDrift{to{background-position:120px 60px,-120px -80px}}
/* Mobile hero logo */
@media(max-width:860px){.home-page .hero-corner-logo{top:14px!important;right:14px!important;bottom:auto!important;width:150px!important;max-width:42vw!important}.page-hero .banner-corner-logo{top:14px!important;right:14px!important;bottom:auto!important;width:150px!important}}
/* Mobile 2-column products and portfolio */
@media(max-width:620px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.product-media{height:210px!important}.product-body{padding:14px 12px 16px!important}.product-body h4{font-size:.88rem!important;line-height:1.25!important}.product-price{font-size:1.05rem!important;padding:5px 8px!important}.product-type{font-size:.56rem!important}.product-gallery,.gallery.product-gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:auto!important;gap:12px!important}.product-portfolio-item{min-width:0!important}.product-portfolio-item .product-media{min-height:240px!important;height:240px!important}.product-portfolio-item figcaption{font-size:.72rem!important;padding:8px 9px!important;left:8px!important;right:8px!important;bottom:8px!important}}
@media(max-width:390px){.product-media{height:180px!important}.product-portfolio-item .product-media{height:210px!important;min-height:210px!important}}
/* ensure header/topbar hide with hero transition */
body.hero-left .header, body.hero-left .topbar{transform:translateY(-150%)!important;opacity:0!important;pointer-events:none!important}


/* v14 mobile logo placement */
@media(max-width:860px){
  .page-hero .banner-corner-logo{
    top:-135px!important;
    right:8px!important;
    bottom:auto!important;
    width:138px!important;
    max-width:38vw!important;
    z-index:6!important;
  }
}
@media(max-width:520px){
  .page-hero .banner-corner-logo{
    top:-128px!important;
    right:6px!important;
    width:126px!important;
    max-width:36vw!important;
  }
}


/* v15: unify mobile hero logo with inner-page banner logo positioning */
@media(max-width:860px){
  .home-page .hero .hero-corner-logo{
    top:-135px!important;
    right:8px!important;
    bottom:auto!important;
    width:138px!important;
    max-width:38vw!important;
    z-index:6!important;
  }
}
@media(max-width:520px){
  .home-page .hero .hero-corner-logo{
    top:-128px!important;
    right:6px!important;
    bottom:auto!important;
    width:126px!important;
    max-width:36vw!important;
  }
}

/* v16: synchronized intro header + resolution/zoom resilience */
body.intro-hero-hidden .header,
body.intro-hero-hidden .topbar{
  transform:translateY(-150%)!important;
  opacity:0!important;
  pointer-events:none!important;
}

/* Prevent flexible/grid children from forcing horizontal overflow at narrow widths or browser zoom. */
.container,.grid-2,.grid-3,.grid-4,.contact-grid,.footer-grid,.story-panel,
.product-grid,.portfolio-all-products,.location-grid,.process,.journey-track{min-width:0}
.grid-2>*,.grid-3>*,.grid-4>*,.contact-grid>*,.footer-grid>*,.story-panel>*,
.product-grid>*,.portfolio-all-products>*,.location-grid>*,.process>*,.journey-track>*{min-width:0;max-width:100%}
img,video,iframe,svg{max-width:100%}
iframe{width:100%}

@media(max-width:1080px){
  .container{width:min(100% - 36px,1220px)}
}

@media(max-width:860px){
  .header,.topbar{max-width:100vw}
  .nav{min-width:0}
  .menu-btn{flex:0 0 auto}
  .hero,.page-hero{width:100%;max-width:100vw}
  .hero-copy,.page-hero .container>div{min-width:0;max-width:100%}
  .hero h1,.page-hero h1{overflow-wrap:anywhere}
  .hero-actions{max-width:100%}
  .hero-actions .btn{white-space:normal;text-align:center;justify-content:center}
  .story-panel{max-width:calc(100vw - 48px)}
}

@media(max-width:620px){
  .container{width:calc(100% - 28px);max-width:1220px}
  h1,.hero h1,.page-hero h1{font-size:clamp(2.65rem,14vw,4.65rem);line-height:.96}
  h2{font-size:clamp(2.35rem,12vw,4rem);line-height:.98}
  h3{overflow-wrap:anywhere}
  p{overflow-wrap:anywhere}
  .hero{padding-left:0;padding-right:0}
  .page-hero{padding-left:0;padding-right:0}
  .hero-actions{display:grid;grid-template-columns:1fr;width:100%;max-width:360px}
  .hero-actions .btn{width:100%}
  .footer-grid{grid-template-columns:1fr!important}
  .footer-grid>div:last-child{grid-column:auto!important}
  .story-panel{width:calc(100% - 44px)!important;max-width:none!important}
}

@media(max-width:460px){
  .container{width:calc(100% - 22px)}
  .section{padding-left:0;padding-right:0}
  .navlinks{padding-left:18px!important;padding-right:18px!important}
  .navlinks a{width:100%!important;font-size:1.05rem!important}
  .hero h1,.page-hero h1{font-size:clamp(2.35rem,13.2vw,3.75rem)}
  .hero p,.page-hero p{font-size:.96rem;line-height:1.62}
  .eyebrow{max-width:100%;white-space:normal;line-height:1.35}
  .product-grid,.product-gallery,.gallery.product-gallery{gap:9px!important}
  .product-body{padding-left:9px!important;padding-right:9px!important}
  .product-body h4{font-size:.8rem!important;overflow-wrap:anywhere}
}

@media(max-width:340px){
  .container{width:calc(100% - 16px)}
  .product-grid,.product-gallery,.gallery.product-gallery{grid-template-columns:1fr!important}
  .product-media{height:230px!important}
  .product-portfolio-item .product-media{height:250px!important;min-height:250px!important}
  .hero h1,.page-hero h1{font-size:2.2rem}
  .btn{padding:13px 16px}
}

/* v17: small hero title + mobile hero logo position refinement */
.home-page .hero h1{
  font-size:clamp(3.55rem,7.4vw,7.65rem);
}
@media(max-width:860px){
  .home-page .hero h1{
    font-size:clamp(2.55rem,12.8vw,4.35rem);
  }
  .home-page .hero .hero-corner-logo{
    top:-145px!important;
  }
}
@media(max-width:520px){
  .home-page .hero h1{
    font-size:clamp(2.3rem,12vw,3.55rem);
  }
  .home-page .hero .hero-corner-logo{
    top:-138px!important;
  }
}
@media(max-width:340px){
  .home-page .hero h1{font-size:2.08rem}
}

/* Home visit guidance process */
.visit-process-section{background:linear-gradient(135deg,#fbf6fc 0%,#f7eef8 52%,#fff 100%);overflow:hidden}.visit-process-shell{position:relative;display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.65fr);gap:52px;align-items:center;padding:48px;border-radius:34px;background:rgba(255,255,255,.76);border:1px solid rgba(90,24,154,.09);box-shadow:0 24px 70px rgba(70,28,82,.09);backdrop-filter:blur(12px)}.visit-process-shell:before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(167,201,87,.13);right:-130px;top:-150px}.visit-process-intro{position:relative;z-index:1}.visit-process-intro h2{margin:12px 0 18px}.visit-process-intro p{margin-bottom:26px}.visit-process-steps{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;z-index:1}.visit-process-steps:before{content:"";position:absolute;left:8%;right:8%;top:24px;border-top:2px dotted rgba(90,24,154,.16)}.visit-step{position:relative;text-align:center;padding:0 8px}.visit-number{position:relative;z-index:2;width:48px;height:48px;margin:0 auto 20px;border-radius:50%;display:grid;place-items:center;background:#f2e5f5;color:var(--plum);font-weight:900;font-size:1.05rem;box-shadow:0 8px 24px rgba(90,24,154,.08)}.visit-icon{position:relative;width:76px;height:76px;margin:0 auto 18px;display:grid;place-items:center;color:#a16aad;font-size:2.25rem}.visit-icon .visit-star{position:absolute;font-size:.8rem;right:7px;bottom:10px}.visit-step h3{font-size:1.02rem;line-height:1.25;margin-bottom:10px}.visit-step p{font-size:.86rem;line-height:1.65;margin:0;color:var(--muted)}.product-note{display:block;margin-top:8px;font-size:.82rem;color:var(--muted);font-weight:700}.featured-hair-oil .product-media{background:linear-gradient(145deg,#fff8d9,#fff)}
@media(max-width:1100px){.visit-process-shell{grid-template-columns:1fr;padding:38px}.visit-process-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:38px}.visit-process-steps:before{display:none}}
@media(max-width:620px){.visit-process-shell{padding:28px 20px;border-radius:26px}.visit-process-steps{grid-template-columns:1fr;gap:28px}.visit-step{padding:22px 16px;border-radius:22px;background:rgba(255,255,255,.72);border:1px solid rgba(90,24,154,.07)}.visit-number{margin-bottom:8px}.visit-icon{margin-bottom:8px}}


/* terramar v2 visit + reservation refinements */

.visit-process-section .container{width:min(1400px,calc(100% - 44px))}
.visit-process-shell{grid-template-columns:minmax(360px,.96fr) minmax(0,1.74fr);gap:68px;padding:60px 58px;border-radius:38px}
.visit-process-intro{max-width:430px}
.visit-process-intro h2{font-size:clamp(4.2rem,7vw,6.8rem);line-height:.9;max-width:420px}
.visit-process-intro p{max-width:400px;font-size:1.06rem;line-height:1.9}
.visit-process-steps{gap:30px;align-items:start}
.visit-step{padding:0 10px}
.visit-step h3{font-size:1.18rem;line-height:1.22}
.visit-step p{font-size:.93rem;line-height:1.7}
.visit-icon{width:84px;height:84px;font-size:2.35rem;animation:visitIconFloat 3.2s ease-in-out infinite}
.visit-step:nth-child(1) .visit-icon{animation-delay:0s}
.visit-step:nth-child(2) .visit-icon{animation-delay:.28s}
.visit-step:nth-child(3) .visit-icon{animation-delay:.56s}
.visit-step:nth-child(4) .visit-icon{animation-delay:.84s}
.visit-icon .visit-star{animation:visitStarTwinkle 2s ease-in-out infinite .35s}
@keyframes visitIconFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes visitStarTwinkle{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.65}}

.visit-reserve-section{background:linear-gradient(180deg,#fffdf9 0%,#fbf6fc 100%)}
.visit-reserve-card{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:0;border-radius:30px;overflow:hidden;background:#fff;border:1px solid rgba(90,24,154,.1);box-shadow:0 24px 68px rgba(57,20,72,.09)}
.visit-reserve-media{min-height:430px;background:#f3edf6}
.visit-reserve-media img{width:100%;height:100%;object-fit:cover}
.visit-reserve-copy{padding:46px 48px 42px;display:flex;flex-direction:column;justify-content:center}
.visit-reserve-head{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;margin-bottom:18px}
.visit-reserve-badge{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:rgba(189,144,216,.18);color:var(--plum);font-size:1.9rem;box-shadow:inset 0 0 0 1px rgba(90,24,154,.08)}
.visit-reserve-copy h2{margin:8px 0 0;font-size:clamp(2.7rem,4vw,4.2rem);line-height:.96}
.visit-reserve-copy p{margin:0 0 26px;font-size:1.03rem;line-height:1.82;color:var(--muted);max-width:540px}
.visit-reserve-copy .btn{align-self:flex-start}
.visit-reserve-note{display:flex;align-items:center;gap:10px;margin-top:16px;color:#90739e;font-size:.96rem;font-weight:600}
.visit-reserve-note i{color:#bfa5c7}

.product-packshot-card .product-packshot-media{background:linear-gradient(180deg,#fffdf1 0%,#fff8d7 100%)!important}
.product-packshot-card .product-packshot-media:before{content:"";position:absolute;inset:18px;border-radius:22px;background:#fff;box-shadow:inset 0 0 0 1px rgba(90,24,154,.08),0 18px 34px rgba(52,18,68,.06)}
.product-packshot-card .product-packshot-media img{position:relative;z-index:1;padding:28px 32px 20px!important;transform:scale(.92)}
.product-packshot-card:hover .product-packshot-media img{transform:scale(.99) rotate(.6deg)}
.product-packshot-card .product-note{display:inline-block;padding:6px 10px;border-radius:999px;background:rgba(90,24,154,.08);color:var(--muted);font-size:.74rem;letter-spacing:.03em}

@media(max-width:1200px){
  .visit-process-section .container{width:min(100% - 36px,1400px)}
  .visit-process-shell{gap:42px;padding:46px 42px;grid-template-columns:minmax(300px,.92fr) minmax(0,1.5fr)}
  .visit-process-intro h2{font-size:clamp(3.6rem,6vw,5.8rem)}
}
@media(max-width:1050px){
  .visit-reserve-card{grid-template-columns:1fr}
  .visit-reserve-media{min-height:320px}
}
@media(max-width:860px){
  .visit-process-shell{grid-template-columns:1fr;padding:36px 28px}
  .visit-process-intro{max-width:none}
  .visit-process-intro h2{max-width:none;font-size:clamp(3.2rem,12vw,5rem)}
  .visit-process-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
  .visit-process-steps:before{display:none}
  .visit-reserve-copy{padding:34px 28px}
  .visit-reserve-head{grid-template-columns:1fr;gap:14px}
}
@media(max-width:620px){
  .visit-process-section .container{width:calc(100% - 22px)}
  .visit-process-shell{padding:26px 18px;border-radius:28px}
  .visit-process-intro h2{font-size:clamp(2.9rem,14vw,4.4rem);line-height:.94}
  .visit-process-intro p{font-size:.98rem;line-height:1.75}
  .visit-process-steps{grid-template-columns:1fr;gap:18px}
  .visit-step{padding:20px 16px;border-radius:22px;background:rgba(255,255,255,.74);border:1px solid rgba(90,24,154,.08)}
  .visit-icon{width:78px;height:78px;font-size:2.1rem}
  .visit-reserve-media{min-height:260px}
  .visit-reserve-copy{padding:28px 20px 24px}
  .visit-reserve-badge{width:62px;height:62px;font-size:1.55rem}
  .visit-reserve-copy h2{font-size:clamp(2.4rem,11vw,3.4rem)}
  .visit-reserve-copy p{font-size:.98rem;line-height:1.72}
  .visit-reserve-note{align-items:flex-start;font-size:.9rem}
}


/* terramar v3 full-width section fit refinements */

/* Make the Visit Works and Welcome You blocks fill the section width better */
.visit-process-section,
.visit-reserve-section{padding-inline:clamp(10px,1.6vw,24px)}
.visit-process-section .container,
.visit-reserve-section .container{width:min(1680px,calc(100% - 8px));max-width:none}
.visit-process-shell,
.visit-reserve-card{width:100%;max-width:none;margin:0 auto}

.visit-process-shell{grid-template-columns:minmax(360px,.92fr) minmax(0,1.88fr);gap:72px;padding:62px 64px}
.visit-process-steps{grid-template-columns:repeat(4,minmax(180px,1fr));gap:34px}
.visit-step{min-width:0}
.visit-step h3,.visit-step p{max-width:100%;overflow-wrap:anywhere}

.visit-reserve-card{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.visit-reserve-copy{min-width:0;padding:50px 52px 46px}
.visit-reserve-copy h2{font-size:clamp(2.5rem,3.7vw,4.15rem);overflow-wrap:anywhere}
.visit-reserve-copy p{max-width:100%}

@media(max-width:1400px){
  .visit-process-section .container,
  .visit-reserve-section .container{width:min(100% - 18px,1540px)}
  .visit-process-shell{padding:54px 48px;gap:48px}
}
@media(max-width:1050px){
  .visit-process-section .container,
  .visit-reserve-section .container{width:min(100% - 20px,1220px)}
  .visit-process-shell{grid-template-columns:1fr;padding:38px 30px}
  .visit-process-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
  .visit-reserve-card{grid-template-columns:1fr}
  .visit-reserve-copy{padding:34px 30px}
}
@media(max-width:620px){
  .visit-process-section,
  .visit-reserve-section{padding-inline:0}
  .visit-process-section .container,
  .visit-reserve-section .container{width:calc(100% - 14px)}
  .visit-process-shell{padding:24px 16px}
  .visit-process-steps{grid-template-columns:1fr;gap:18px}
  .visit-reserve-copy{padding:26px 18px 22px}
}


/* terramar v4 title wrapping + section spacing refinements */

/* Refine the Visit Works title so it reads in 2–3 lines instead of looking overly stretched */
.visit-process-intro h2{
  max-width:560px!important;
  font-size:clamp(3rem,5vw,4.85rem)!important;
  line-height:.98!important;
  letter-spacing:-.02em;
  text-wrap:balance;
}
.visit-process-intro h2 em{display:inline}
.visit-process-intro{align-self:center}

/* Make the reservation section feel fuller while reducing empty gaps between nearby sections */
.journey-section{padding-bottom:84px!important}
.visit-reserve-section{
  padding-top:56px!important;
  padding-bottom:56px!important;
}
.visit-reserve-card{
  min-height:460px;
}
.visit-reserve-media{min-height:460px!important}
.visit-reserve-copy{padding-top:44px!important;padding-bottom:40px!important}
.visit-reserve-section + .section{padding-top:72px!important}

@media(max-width:1050px){
  .visit-process-intro h2{
    max-width:520px!important;
    font-size:clamp(2.8rem,7.4vw,4.2rem)!important;
  }
  .journey-section{padding-bottom:76px!important}
  .visit-reserve-section{padding-top:44px!important;padding-bottom:44px!important}
  .visit-reserve-card{min-height:0}
  .visit-reserve-media{min-height:320px!important}
  .visit-reserve-section + .section{padding-top:64px!important}
}

@media(max-width:620px){
  .visit-process-intro h2{
    max-width:100%!important;
    font-size:clamp(2.55rem,10.8vw,3.65rem)!important;
    line-height:1.02!important;
  }
  .journey-section{padding-bottom:64px!important}
  .visit-reserve-section{padding-top:32px!important;padding-bottom:32px!important}
  .visit-reserve-copy{padding-top:24px!important;padding-bottom:22px!important}
  .visit-reserve-section + .section{padding-top:52px!important}
}


/* terramar v5 reserve section fuller layout */

/* Make the reservation block feel like a full, fully-adapted section instead of a short cut card */
.visit-reserve-section{
  padding-top:48px!important;
  padding-bottom:48px!important;
}
.visit-reserve-section .container{
  width:min(1460px,calc(100% - 44px))!important;
  max-width:none!important;
}
.visit-reserve-card{
  width:100%!important;
  max-width:none!important;
  min-height:540px!important;
  grid-template-columns:minmax(0,1.04fr) minmax(420px,.96fr)!important;
  align-items:stretch!important;
  border-radius:34px!important;
  overflow:hidden!important;
}
.visit-reserve-media{
  min-height:540px!important;
  height:100%!important;
}
.visit-reserve-copy{
  min-height:540px!important;
  padding:52px 54px 50px!important;
  justify-content:center!important;
}
.visit-reserve-copy h2{
  max-width:520px!important;
  line-height:.98!important;
  text-wrap:balance;
}
.visit-reserve-copy p{
  max-width:560px!important;
}
.visit-reserve-copy .btn{
  margin-top:4px;
}
.visit-reserve-note{
  margin-top:18px!important;
}

@media(max-width:1200px){
  .visit-reserve-section .container{width:min(100% - 30px,1320px)!important}
  .visit-reserve-card{min-height:500px!important;grid-template-columns:minmax(0,1fr) minmax(380px,.92fr)!important}
  .visit-reserve-media,.visit-reserve-copy{min-height:500px!important}
  .visit-reserve-copy{padding:42px 38px 40px!important}
}
@media(max-width:980px){
  .visit-reserve-section{padding-top:34px!important;padding-bottom:34px!important}
  .visit-reserve-section .container{width:calc(100% - 22px)!important}
  .visit-reserve-card{grid-template-columns:1fr!important;min-height:0!important}
  .visit-reserve-media{min-height:340px!important}
  .visit-reserve-copy{min-height:0!important;padding:30px 24px 28px!important}
  .visit-reserve-copy h2{max-width:none!important}
  .visit-reserve-copy p{max-width:none!important}
}
@media(max-width:620px){
  .visit-reserve-section .container{width:calc(100% - 14px)!important}
  .visit-reserve-media{min-height:270px!important}
  .visit-reserve-copy{padding:24px 18px 22px!important}
}


/* terramar v6 tighter spacing around reserve section */

/* Reduce the vertical space above and below the “We’re Ready to Welcome You.” section */
.journey-section{padding-bottom:58px!important}
.visit-reserve-section{padding-top:18px!important;padding-bottom:18px!important}
.visit-reserve-section + .section{padding-top:48px!important}

@media(max-width:980px){
  .journey-section{padding-bottom:44px!important}
  .visit-reserve-section{padding-top:14px!important;padding-bottom:14px!important}
  .visit-reserve-section + .section{padding-top:38px!important}
}

@media(max-width:620px){
  .journey-section{padding-bottom:36px!important}
  .visit-reserve-section{padding-top:10px!important;padding-bottom:10px!important}
  .visit-reserve-section + .section{padding-top:30px!important}
}


/* terramar v7 remove full-screen spacing from custom home sections */

/* The home template makes every section 100vh and vertically centered.
   Exempt the custom sections so they do not leave large empty space above/below. */
.home-page main>.visit-process-section,
.home-page main>.visit-reserve-section,
.home-page main>.visit-reserve-section + .section{
  min-height:auto!important;
  display:block!important;
  align-items:initial!important;
}

.home-page main>.visit-reserve-section{
  padding-top:12px!important;
  padding-bottom:12px!important;
}
.home-page main>.visit-reserve-section + .section{
  padding-top:42px!important;
}

@media(max-width:980px){
  .home-page main>.visit-reserve-section{padding-top:10px!important;padding-bottom:10px!important}
  .home-page main>.visit-reserve-section + .section{padding-top:34px!important}
}

@media(max-width:620px){
  .home-page main>.visit-reserve-section{padding-top:8px!important;padding-bottom:8px!important}
  .home-page main>.visit-reserve-section + .section{padding-top:28px!important}
}


/* Social links: topbar, footer and Contact */
.topbar-actions{display:flex;align-items:center;gap:14px;flex:none}
.site-social-links{display:flex;align-items:center;gap:8px}
.site-social-links a{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;text-decoration:none;transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease}
.topbar-socials a{width:27px;height:27px;border:1px solid rgba(255,255,255,.3);color:#fff;background:rgba(255,255,255,.08)}
.topbar-socials a:hover{transform:translateY(-2px);background:var(--lime);border-color:var(--lime);color:var(--plum-dark)}
.footer-socials{margin-top:18px}
.footer-socials a{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:#fff}
.footer-socials a:hover{transform:translateY(-3px);background:var(--lime);border-color:var(--lime);color:var(--plum-dark)}
.contact-footer-inner .footer-socials{justify-content:center;margin-top:22px}
.contact-social-row{transition:transform .25s ease,color .25s ease,border-color .25s ease}
.contact-social-row:hover{transform:translateX(5px);color:var(--plum);border-color:rgba(90,24,154,.26)}
.contact-social-row>i{font-size:1rem}
@media(max-width:860px){.topbar-badge{display:none}.topbar-actions{margin-left:auto}.topbar-socials{gap:6px}.topbar-socials a{width:26px;height:26px}}
@media(max-width:620px){.topbar .container{gap:10px}.topbar-info{flex:1;min-width:0}.topbar-info span:first-child{white-space:nowrap}.topbar-actions{gap:0}.topbar-socials a{width:25px;height:25px;font-size:.7rem}.footer-socials{justify-content:center}}
