
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Manrope:wght@400;500;600;700&display=swap');
:root{--ivory:#f8f3ea;--cream:#eee4d4;--wine:#5e1e29;--wine2:#2a1116;--gold:#b78b50;--ink:#171214;--muted:#746c65;--line:rgba(23,18,20,.16);--serif:"Cormorant Garamond",Georgia,serif;--sans:"Manrope",Arial,sans-serif;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);overflow-x:hidden}a{text-decoration:none;color:inherit}.wrap{width:min(1320px,calc(100% - 72px));margin:auto}.eyebrow{font:700 9px/1 var(--sans);letter-spacing:.25em;text-transform:uppercase}.gold{color:var(--gold)}
.progress{position:fixed;z-index:120;top:0;left:0;width:100%;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left}
.nav{position:fixed;z-index:90;left:0;right:0;top:0;padding:23px 0;color:#fff;transition:.5s var(--ease)}.nav.stick{padding:14px 0;background:rgba(248,243,234,.84);backdrop-filter:blur(18px);color:var(--ink);border-bottom:1px solid rgba(23,18,20,.08)}.nav-row{display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;font:700 9px var(--sans);letter-spacing:.18em;text-transform:uppercase}.seal{width:35px;height:35px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font:500 14px var(--serif);letter-spacing:0}.nav-links{display:flex;align-items:center;gap:28px}.nav-links a{font:700 8px var(--sans);letter-spacing:.2em;text-transform:uppercase}.nav-btn{padding:12px 16px;border:1px solid currentColor}.hamb{display:none;border:0;background:none;color:inherit;font-size:22px}
.mobile-menu{position:fixed;z-index:150;inset:0;background:var(--wine2);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transform:translateX(100%);transition:transform .55s var(--ease);visibility:hidden}
.mobile-menu.open{transform:translateX(0);visibility:visible}
.mobile-close{position:absolute;top:26px;right:28px;background:none;border:0;color:#fff;font-size:30px;line-height:1;cursor:pointer;width:44px;height:44px}
.mobile-links{display:flex;flex-direction:column;align-items:center;gap:26px}
.mobile-links a{font:500 34px var(--serif);color:#f2e6d6;letter-spacing:0}
.mobile-links a:hover{color:var(--gold)}
.hero{height:100svh;min-height:700px;position:relative;background:var(--wine2);color:#fff;overflow:hidden}.hero-photo{position:absolute;inset:-6%}.hero-photo img{filter:brightness(.62) saturate(.7);transform:scale(1.1);animation:heroZoom 2.5s var(--ease) forwards}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(34,12,17,.78),rgba(34,12,17,.12) 72%),linear-gradient(0deg,rgba(34,12,17,.78),transparent 56%)}.hero-frame{position:absolute;inset:28px;border:1px solid rgba(255,255,255,.18)}.hero-ornament{position:absolute;z-index:3;top:50%;right:5.5%;transform:translateY(-50%) rotate(90deg);display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.72);font:700 7px var(--sans);letter-spacing:.25em}.hero-ornament span{display:block;width:55px;height:1px;background:rgba(255,255,255,.35)}.hero-ornament b{font:500 17px var(--serif);letter-spacing:0;transform:rotate(-90deg);color:#e4c58e}.hero-content{position:absolute;left:0;right:0;bottom:12vh}.hero-title{font:500 clamp(72px,11vw,156px)/.73 var(--serif);letter-spacing:-.045em;margin:24px 0 30px}.hero-title span{display:block;overflow:hidden}.hero-title i{display:block;font-style:normal;transform:translateY(110%);animation:up 1.15s var(--ease) forwards}.hero-title span:nth-child(2) i{animation-delay:.1s}.hero-title span:nth-child(3) i{animation-delay:.2s}.hero-title em{font-style:italic;color:#ead4b0}.hero-kicker{opacity:0;animation:up .9s var(--ease) .55s forwards}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:25px;opacity:0;animation:up .9s var(--ease) .65s forwards}.hero-copy{max-width:420px;font-size:11px;line-height:1.9;color:#d7cfc7}.hero-link{font:700 8px var(--sans);letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:8px}.hero-scroll{position:absolute;right:32px;bottom:30px;display:flex;align-items:center;gap:12px;font:700 8px var(--sans);letter-spacing:.2em;text-transform:uppercase}.scroll-line{width:72px;height:1px;background:#a99b90}.scroll-line:after{content:"";display:block;height:100%;background:#fff;animation:line 2s infinite}
.scene{background:var(--wine2);color:#f6ead9;padding:30px 0}.scene-row{display:flex;justify-content:space-between;align-items:center}.scene span{font:500 13px var(--serif);letter-spacing:.08em}.scene small{font:700 8px var(--sans);letter-spacing:.2em;color:#bfae9e}
.intro{padding:160px 0 180px;background:var(--ivory);position:relative}.intro:before{content:"";position:absolute;top:0;left:50%;width:1px;height:70px;background:linear-gradient(var(--gold),transparent)}.intro-grid{display:grid;grid-template-columns:.95fr 1fr;gap:10vw;align-items:center}.intro-art{height:700px;position:relative}.intro-art-main{position:absolute;right:0;top:0;width:78%;height:88%;overflow:hidden}.intro-art-main img,.intro-art-small img{transition:1.2s var(--ease)}.intro-art-main img{transform:scale(1.06)}.intro-art:hover img{transform:scale(1)}.intro-art-small{position:absolute;left:0;bottom:0;width:43%;height:45%;border:12px solid var(--ivory);overflow:hidden}.intro-copy h2,.section-head h2,.moments-intro h2,.experience h2{font:500 clamp(55px,6.2vw,91px)/.82 var(--serif);letter-spacing:-.045em;margin:22px 0 32px}.intro-copy h2 em,.moments-intro h2 em,.experience h2 em{font-style:italic;color:var(--wine)}.intro-copy p,.section-head p,.moments-intro p{max-width:510px;color:var(--muted);font-size:12px;line-height:1.95}.editorial-rule{display:flex;align-items:center;gap:15px;margin-top:35px}.editorial-rule span{height:1px;background:var(--gold);width:70px}.editorial-rule small{font:700 8px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#8d8074}
.philosophy{padding:165px 0;background:var(--cream)}.philo-title{text-align:center;max-width:1100px;margin:auto}.philo-title h2{font:500 clamp(65px,10vw,145px)/.72 var(--serif);letter-spacing:-.055em;margin:20px 0}.philo-title h2 em{font-style:italic;color:var(--wine)}.philo-title p{max-width:500px;margin:35px auto 0;color:var(--muted);font-size:12px;line-height:1.9}
.services,.experience{padding:155px 0;background:var(--ivory)}.section-head{display:grid;grid-template-columns:1fr .55fr;gap:8vw;align-items:end;margin-bottom:65px}.service-list{border-top:1px solid var(--line)}.service{position:relative;display:grid;grid-template-columns:70px 1fr 330px 30px;gap:25px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);overflow:hidden}.service:before{content:"";position:absolute;inset:0;background:var(--wine);transform:scaleY(0);transform-origin:bottom;transition:.6s var(--ease)}.service>*{position:relative}.service-no{font:500 24px var(--serif);color:var(--gold)}.service h3{font:500 clamp(35px,4vw,57px)/.9 var(--serif);margin:0;transition:.5s var(--ease)}.service p{font-size:10px;line-height:1.6;color:var(--muted);transition:.5s var(--ease)}.service-arrow{font-size:22px;color:var(--gold);transition:.5s var(--ease)}.service:hover:before{transform:none}.service:hover h3{color:#fff;transform:translateX(18px)}.service:hover p{color:#d2c3b8}.service:hover .service-arrow{color:#fff;transform:translate(8px,-4px)}
.portfolio{background:var(--wine2);color:#fff;padding:155px 0}.portfolio-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:60px}.portfolio-head h2{font:500 clamp(62px,8vw,116px)/.7 var(--serif);letter-spacing:-.055em;margin:18px 0}.portfolio-head p{max-width:310px;color:#a99a8e;font-size:11px;line-height:1.8}.feature{height:78vh;min-height:620px;position:relative;overflow:hidden;margin-bottom:18px}.feature img,.mini img{transition:1.4s var(--ease);filter:brightness(.65) saturate(.72)}.feature img{transform:scale(1.08)}.feature:hover img{transform:scale(1.01);filter:brightness(.72) saturate(.9)}.feature:after,.mini:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.78),transparent 65%)}.feature-info{position:absolute;z-index:2;left:38px;right:38px;bottom:35px;display:flex;justify-content:space-between;align-items:end;gap:30px}.feature-info h3{font:500 clamp(45px,6vw,86px)/.75 var(--serif);margin:12px 0}.feature-info p{color:#d0c5bc;font-size:10px;margin:0}.feature-meta{text-align:right;font-size:9px;letter-spacing:.17em;text-transform:uppercase;color:#c6b7a8}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mini{height:580px;position:relative;overflow:hidden}.mini:hover img{transform:scale(1.05);filter:brightness(.75) saturate(.9)}.mini-info{position:absolute;z-index:2;left:27px;bottom:25px}.mini-info h3{font:500 43px var(--serif);margin:8px 0}.mini-info p{font-size:9px;color:#d5cbc3}
.moments{padding:165px 0;background:#f7f0e5}.moments-intro{display:grid;grid-template-columns:1fr .7fr;gap:9vw;align-items:end;margin-bottom:70px}.moment{display:grid;grid-template-columns:1fr 1fr;min-height:550px;border-top:1px solid var(--line);padding:55px 0;gap:9vw;align-items:center}.moment:nth-child(even){direction:rtl}.moment:nth-child(even)>*{direction:ltr}.moment-img{height:500px;overflow:hidden}.moment-img img{transition:1.1s var(--ease);filter:saturate(.75)}.moment:hover img{transform:scale(1.04);filter:saturate(.95)}.moment-copy h3{font:500 clamp(55px,6vw,88px)/.75 var(--serif);margin:15px 0 25px}.moment-copy p{max-width:420px;color:var(--muted);font-size:11px;line-height:1.9}.moment-no{font:500 23px var(--serif);color:var(--gold)}
.proof{background:var(--wine2);color:#fff}.proof-row{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid rgba(255,255,255,.12)}.proof-item{min-height:150px;padding:28px 22px;border-right:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;justify-content:space-between}.proof-item strong{font:500 24px var(--serif);color:var(--gold)}.proof-item span{font:700 8px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#b6a49a}
.immersive,.cta{position:relative;min-height:82vh;display:grid;place-items:center;overflow:hidden;color:#fff}.immersive-bg,.cta-bg{position:absolute;inset:-5%}.immersive-bg img,.cta-bg img{filter:brightness(.43) saturate(.7);transform:scale(1.05);transition:1.7s var(--ease)}.immersive:hover img,.cta:hover img{transform:scale(1)}.immersive:after,.cta:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(31,10,15,.72),rgba(31,10,15,.08))}.immersive-content,.cta-content{position:relative;z-index:2;text-align:center;max-width:900px}.immersive-content:before{content:"";display:block;width:1px;height:58px;background:linear-gradient(var(--gold),transparent);margin:0 auto 28px}.immersive-content h2,.cta h2{font:500 clamp(60px,9vw,128px)/.72 var(--serif);letter-spacing:-.055em;margin:22px 0 28px}.immersive-content h2 em,.cta h2 em{font-style:italic;color:#e4c78f}.immersive-content p,.cta p{max-width:500px;margin:auto;color:#d3c8be;font-size:11px;line-height:1.9}.circle-link{width:112px;height:112px;border:1px solid rgba(255,255,255,.5);border-radius:50%;display:grid;place-items:center;margin:36px auto 0;font:700 8px var(--sans);letter-spacing:.17em;text-transform:uppercase;transition:.5s var(--ease)}.circle-link:hover{background:#fff;color:var(--ink);transform:scale(1.08)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:75px;border-top:1px solid var(--line)}.step{padding:30px 22px;min-height:250px;border-right:1px solid var(--line)}.step:first-child{border-left:1px solid var(--line)}.step-no{font:500 24px var(--serif);color:var(--gold)}.step h3{font:500 38px var(--serif);margin:38px 0 10px}.step p{font-size:10px;color:var(--muted);line-height:1.8}
.quote{background:var(--cream);padding:155px 0}.quote-grid{display:grid;grid-template-columns:1fr .75fr;gap:10vw;align-items:center}.quote blockquote{font:500 clamp(42px,5.2vw,75px)/.9 var(--serif);letter-spacing:-.035em;margin:20px 0 35px}.quote-img{height:560px;overflow:hidden}.quote-img img{filter:saturate(.72)}.person{display:flex;align-items:center;gap:12px}.avatar{width:45px;height:45px;border-radius:50%;overflow:hidden}.person strong{font-size:10px}.person small{display:block;color:var(--muted);font-size:8px;margin-top:3px}
.cta{min-height:88vh;text-align:center}.cta h2{font-size:clamp(68px,10vw,145px)}.cta-actions{display:flex;justify-content:center;gap:12px;margin-top:32px}.btn{display:inline-flex;padding:14px 20px;border:1px solid rgba(255,255,255,.5);font:700 8px var(--sans);letter-spacing:.18em;text-transform:uppercase;transition:.4s var(--ease)}.btn:hover{background:#fff;color:var(--ink);transform:translateY(-3px)}.btn.primary{background:#ead5af;color:#211015;border-color:#ead5af}
footer{background:var(--wine2);color:#fff;padding:70px 0 25px}.footer-grid{display:grid;grid-template-columns:1.5fr .6fr 1fr 1fr;gap:45px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.12)}.footer-brand{font:500 37px var(--serif)}.footer-desc{max-width:400px;color:#a08e82;font-size:10px;line-height:1.9;margin-top:14px}footer h4{font:700 8px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#c6a76e;margin:0 0 18px}footer ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}footer li,footer a{color:#9c8d84;font-size:10px;line-height:1.7}.copyright{display:flex;justify-content:space-between;color:#675750;font-size:8px;padding-top:18px}
.reveal{opacity:0;transform:translateY(50px);transition:opacity 1s var(--ease),transform 1s var(--ease)}.reveal.show{opacity:1;transform:none}

/* Floating WhatsApp button */
.wa-fab{position:fixed;z-index:110;right:22px;bottom:22px;width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px rgba(23,18,20,.28);transition:.35s var(--ease)}
.wa-fab:hover{transform:translateY(-4px) scale(1.06);box-shadow:0 16px 36px rgba(23,18,20,.34)}
@media(max-width:650px){.wa-fab{right:16px;bottom:16px;width:50px;height:50px}}

/* Map embed */
.map-embed{height:420px;width:100%;position:relative;background:var(--cream);border:1px solid var(--line)}
@media(max-width:650px){.map-embed{height:300px}}

/* Enquiry form */
.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;margin-top:40px}
.enquiry-form .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font:700 8px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{font:500 15px var(--sans);padding:13px 4px;border:none;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);outline:none;transition:.3s var(--ease)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold)}
.field textarea{resize:vertical;min-height:90px;font-family:var(--sans)}
.form-submit{grid-column:1/-1;display:flex;align-items:center;gap:16px;margin-top:10px}
.form-submit button{cursor:pointer;font:700 8px var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:16px 26px;background:var(--wine);color:#fff;border:1px solid var(--wine);transition:.4s var(--ease)}
.form-submit button:hover{background:transparent;color:var(--wine)}
.form-note{font-size:10px;color:var(--muted);line-height:1.7}
@media(max-width:650px){.enquiry-form{grid-template-columns:1fr}}

/* Testimonials target styling (reuses .quote) */
#testimonialSlot blockquote{margin:20px 0 35px}

/* Accessibility: visible keyboard focus */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
@keyframes heroZoom{to{transform:scale(1)}}@keyframes up{to{transform:none;opacity:1}}@keyframes line{0%{transform:translateX(-100%)}50%{transform:none}100%{transform:translateX(100%)}}
@media(max-width:950px){.wrap{width:min(1320px,calc(100% - 42px))}.nav-links{display:none}.hamb{display:block}.intro-grid,.section-head,.moments-intro,.quote-grid{grid-template-columns:1fr;gap:55px}.intro-art{height:600px}.service{grid-template-columns:50px 1fr 30px}.service p{display:none}.steps{grid-template-columns:1fr 1fr}.step:nth-child(odd){border-left:1px solid var(--line)}.footer-grid{grid-template-columns:1fr 1fr}.hero-frame{inset:18px}}
@media(max-width:650px){.wrap{width:calc(100% - 30px)}.hero{min-height:690px}.hero-frame{inset:12px}.hero-ornament{display:none}.hero-content{bottom:8vh}.hero-title{font-size:clamp(70px,19vw,100px)}.hero-bottom{display:block}.hero-copy{margin-bottom:24px}.hero-scroll{display:none}.intro,.philosophy,.services,.portfolio,.moments,.experience,.quote{padding:95px 0}.intro-art{height:460px}.intro-art-small{border-width:8px}.feature{height:590px;min-height:0}.feature-info{display:block;left:22px;bottom:23px}.feature-meta{text-align:left;margin-top:18px}.mini-grid{grid-template-columns:1fr}.mini{height:440px}.moment{grid-template-columns:1fr;gap:30px;padding:38px 0;min-height:0}.moment:nth-child(even){direction:ltr}.moment-img{height:390px}.moment-copy h3{font-size:65px}.steps{grid-template-columns:1fr}.step{border-left:1px solid var(--line);min-height:220px}.proof-row{grid-template-columns:1fr 1fr}.proof-item{min-height:120px;padding:20px 15px}.cta{min-height:700px}.cta h2{font-size:clamp(72px,19vw,105px)}.cta-actions{flex-wrap:wrap}.footer-grid{grid-template-columns:1fr 1fr;gap:32px 18px}.copyright{display:block}.copyright span{display:block;margin-top:7px}}
