:root{--cream:#fdf8f8;--paper:#fff;--tint:#f7e6e6;--ink:#2e2224;--dark:#2a1e20;--muted:#7d6a6d;--red:#c0777f;--red-dark:#9b5b62;--teal:#c0777f;--gold:#f1cfd3;--line:#0000001a;--brand-gradient:linear-gradient(90deg,#2a1e20,#c0777f,#f1cfd3,#c0777f,#2a1e20)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);font-family:Inter Variable,sans-serif;font-weight:300;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:Cormorant Upright,serif;font-weight:500}h1 em,h2 em{color:var(--red);font-style:italic}img{max-width:100%;display:block}.script{font-family:Cormorant Upright,serif;font-style:italic}header{z-index:100;-webkit-backdrop-filter:blur(10px);background:#f7f1e9eb;justify-content:space-between;align-items:center;padding:14px 6%;transition:box-shadow .3s,padding .3s;display:flex;position:fixed;top:0;left:0;right:0}header.scrolled{padding:8px 6%;box-shadow:0 2px 24px #1c16141a}.logo{color:var(--dark);align-items:center;gap:12px;display:flex}.logo-badge{object-fit:cover;width:58px;height:58px;box-shadow:0 0 0 2px var(--gold),0 6px 16px #1c161426;border-radius:50%;transition:width .3s,height .3s}header.scrolled .logo-badge{width:46px;height:46px}.logo-text{flex-direction:column;line-height:1;display:flex}.logo-text .script{color:var(--dark);font-size:1.65rem}.logo-text small{letter-spacing:3px;text-transform:uppercase;color:var(--red);margin-top:4px;font-size:.68rem;font-weight:500}.logo.light .logo-text .script{color:#fff}.logo.light .logo-text small{color:var(--gold)}nav ul{gap:30px;list-style:none;display:flex}nav a{letter-spacing:1.5px;text-transform:uppercase;padding:4px 0;font-size:.78rem;font-weight:400;position:relative}nav a:after{content:"";background:var(--red);transform-origin:100%;width:100%;height:1px;transition:transform .3s;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}nav a:hover:after{transform-origin:0;transform:scaleX(1)}.nav-toggle{color:var(--dark);cursor:pointer;background:0 0;border:none;font-size:1.6rem;display:none}.btn-outline{border:1px solid var(--dark);color:var(--dark);letter-spacing:1.5px;text-transform:uppercase;border-radius:40px;padding:14px 30px;font-size:.78rem;transition:all .25s;display:inline-block}.btn-outline:hover{background:var(--dark);color:var(--cream)}.btn-outline.light{color:#fff;border-color:#ffffff80}.btn-outline.light:hover{color:var(--dark);background:#fff}.btn-solid{background:var(--red);color:#fff;letter-spacing:1.5px;text-transform:uppercase;border-radius:40px;padding:14px 32px;font-size:.78rem;transition:transform .25s,box-shadow .25s,background .25s;display:inline-block;box-shadow:0 10px 26px -10px #b5402c99}.btn-solid:hover{background:var(--red-dark);transform:translateY(-2px)}.hero{grid-template-columns:1.05fr .95fr;align-items:stretch;min-height:95vh;padding:0;display:grid}.hero-text{flex-direction:column;justify-content:center;padding:150px 7% 70px;display:flex}.eyebrow{color:var(--teal);text-transform:uppercase;letter-spacing:3px;font-size:.76rem;font-weight:500;display:inline-block}.hero-text .eyebrow{margin-bottom:20px}.hero-text h1{color:var(--dark);margin-bottom:22px;font-size:clamp(2.4rem,5vw,3.9rem);line-height:1.12}.hero-text p{color:var(--muted);max-width:470px;margin-bottom:34px;font-size:1.02rem;line-height:1.8}.hero-ctas{flex-wrap:wrap;gap:16px;display:flex}.hero-rating{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:40px;align-self:flex-start;align-items:center;gap:12px;margin-top:38px;padding:10px 20px;font-size:.85rem;display:inline-flex}.hero-rating strong{color:var(--dark);font-weight:600}.stars{color:var(--gold);letter-spacing:2px}.hero-img{position:relative;overflow:hidden}.hero-img img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hero-img:after{content:"";background:linear-gradient(90deg,var(--cream) 0%,#f7f1e900 18%);position:absolute;inset:0}section{padding:100px 7%}.section-head{text-align:center;max-width:640px;margin:0 auto 54px}.section-head h2{color:var(--dark);margin-top:12px;font-size:clamp(1.9rem,4vw,2.7rem);line-height:1.2}.section-head p{color:var(--muted);margin-top:16px;line-height:1.8}.trust{background:var(--paper);border-top:4px solid #0000;border-image:var(--brand-gradient) 1}.trust-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:36px;max-width:1150px;margin:0 auto;display:grid}.trust-card{text-align:center;padding:10px}.trust-ic{width:52px;height:52px;color:var(--red);border:1px solid #b5402c66;border-radius:50%;place-items:center;margin-bottom:16px;font-size:1.2rem;display:inline-grid}.trust-card h3{color:var(--dark);margin-bottom:10px;font-size:1.15rem}.trust-card p{color:var(--muted);font-size:.9rem;line-height:1.7}.worlds{background:var(--cream)}.worlds-grid{grid-template-columns:1fr 1fr;gap:28px;max-width:1150px;margin:0 auto;display:grid}.world-card{color:#fff;border-radius:18px;align-items:flex-end;min-height:480px;display:flex;position:relative;overflow:hidden}.world-card img{object-fit:cover;width:100%;height:100%;transition:transform .6s;position:absolute;inset:0}.world-card:hover img{transform:scale(1.05)}.world-card:after{content:"";background:linear-gradient(#1c16140d 0%,#1c161459 45%,#1c1614eb 100%);position:absolute;inset:0}.world-text{z-index:2;padding:34px;position:relative}.world-text .script{color:var(--gold);font-size:2rem}.world-text h3{margin:4px 0 10px;font-size:1.7rem}.world-text p{color:#eadfd6;max-width:440px;font-size:.92rem;line-height:1.7}.world-link{letter-spacing:1.5px;text-transform:uppercase;border-bottom:1px solid #ffffff80;margin-top:18px;padding-bottom:4px;font-size:.74rem;display:inline-block}.cat-pills{flex-wrap:wrap;justify-content:center;gap:16px;max-width:1000px;margin:0 auto;display:flex}.cat-pill{letter-spacing:.5px;background:var(--paper);border:1px solid #2b211d38;border-radius:30px;padding:14px 26px;font-size:.84rem;transition:all .2s}.cat-pill:hover{background:var(--red);color:#fff;border-color:var(--red)}.gallery-wrap{background:var(--tint)}.gallery{grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:14px;max-width:1200px;margin:0 auto;display:grid}.gallery figure{border-radius:12px;margin:0;overflow:hidden}.gallery img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.gallery figure:hover img{transform:scale(1.05)}.gallery .big{grid-area:span 2/span 2}.reviews-wrap{background:var(--dark);color:#fff;position:relative}.reviews-wrap .section-head h2{color:#fff}.reviews-wrap .section-head h2 em{color:var(--gold)}.reviews-wrap .section-head p{color:#c9b9b2}.reviews-wrap .eyebrow{color:var(--gold)}.review-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;max-width:1150px;margin:0 auto;display:grid}.review-card{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;padding:30px 26px;display:flex}.review-card .stars{margin-bottom:14px}.review-card p{color:#eadfd6;flex:1;margin-bottom:16px;font-family:Cormorant Upright,serif;font-size:.98rem;font-style:italic;line-height:1.7}.review-card cite{color:#b3a099;text-transform:uppercase;letter-spacing:1px;font-size:.78rem;font-style:normal}.cta-section{text-align:center;background:var(--paper)}.cta-section h2{color:var(--dark);margin:14px 0;font-size:clamp(2rem,4vw,2.9rem)}.cta-section p{color:var(--muted);margin-bottom:30px}.cta-row{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.contact-section{background:var(--cream)}.contact-grid{grid-template-columns:1fr 1.2fr;align-items:stretch;gap:46px;max-width:1150px;margin:0 auto;display:grid}.contact-info{background:var(--paper);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:26px;padding:36px;display:flex}.contact-block h3{text-transform:uppercase;letter-spacing:2px;color:var(--red);margin-bottom:8px;font-family:Inter,sans-serif;font-size:.76rem;font-weight:500}.contact-block p{color:var(--ink);font-size:.98rem;line-height:1.7}.contact-block a:hover{color:var(--red)}.hours-list{list-style:none}.hours-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:8px 0;font-size:.94rem;display:flex}.hours-list li:last-child{border-bottom:none}.contact-map{border-radius:16px;min-height:380px;overflow:hidden;box-shadow:0 10px 30px #1c16141f}.contact-map iframe{min-height:380px;display:block}footer{background:var(--dark);color:#d9c9c5;border-top:4px solid #0000;border-image:var(--brand-gradient) 1;padding:70px 7% 30px}.footer-grid{border-bottom:1px solid #ffffff1a;grid-template-columns:1.3fr 1fr 1fr;gap:46px;max-width:1200px;margin:0 auto;padding-bottom:40px;display:grid}.footer-brand p{color:#b3a09a;margin-top:16px;font-size:.88rem}footer h4{text-transform:uppercase;letter-spacing:2px;color:var(--gold);margin-bottom:18px;font-size:.76rem;font-weight:500}footer ul{list-style:none}footer li{color:#d9c9c5;margin-bottom:9px;font-size:.88rem}footer a:hover{color:var(--gold)}.footer-bottom{color:#8a7873;flex-wrap:wrap;justify-content:space-between;gap:10px;max-width:1200px;margin:26px auto 0;font-size:.76rem;display:flex}.footer-bottom a{color:#8a7873}.social-fabs{z-index:200;flex-direction:column;align-items:center;gap:14px;display:flex;position:fixed;bottom:26px;right:26px}.social-fabs a{border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .2s;display:flex;box-shadow:0 10px 24px #0003}.social-fabs a:hover{transform:scale(1.08)}.wa-fab{background:#25d366;width:58px!important;height:58px!important;box-shadow:0 10px 26px #25d36673!important}.ig-fab{background:radial-gradient(circle at 30% 110%,#fdf497 0% 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.fb-fab{background:#1877f2}.cookie-banner{z-index:300;background:var(--dark);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 7%;display:none;position:fixed;bottom:0;left:0;right:0}.cookie-banner p{color:#f5ede8d9;max-width:680px;font-size:.8rem;line-height:1.7}.cookie-banner p a{color:var(--gold);text-decoration:underline}.cookie-actions{flex-shrink:0;gap:12px;display:flex}.cookie-actions button{letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:30px;padding:12px 26px;font-family:Inter,sans-serif;font-size:.72rem}.ck-reject{color:#f5ede8b3;background:0 0;border:1px solid #f5ede84d}.ck-accept{background:var(--red);color:#fff;border:1px solid var(--red)}.page-hero{text-align:center;background:var(--cream);padding:170px 7% 60px}.page-hero h1{color:var(--dark);margin-top:14px;font-size:clamp(2.3rem,5vw,3.4rem)}.page-hero p{color:var(--muted);max-width:580px;margin:18px auto 0;line-height:1.8}.tabs{z-index:50;background:var(--cream);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:center;gap:12px;padding:18px 7% 22px;display:flex;position:sticky;top:74px}.tab-btn{background:var(--paper);letter-spacing:.5px;color:var(--ink);cursor:pointer;border:1px solid #2b211d40;border-radius:30px;padding:12px 24px;font-family:Inter,sans-serif;font-size:.82rem;transition:all .2s}.tab-btn.active,.tab-btn:hover{background:var(--red);color:#fff;border-color:var(--red)}.tab-panel{max-width:1200px;margin:0 auto;padding:60px 7% 100px;display:none}.tab-panel.active{animation:.5s fadeIn;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.tab-intro{text-align:center;max-width:600px;margin:0 auto 46px}.tab-intro .script{color:var(--red);font-size:1.6rem}.tab-intro h2{color:var(--dark);font-size:2rem}.tab-intro p{color:var(--muted);margin-top:10px;font-size:.94rem;line-height:1.75}.cat-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;display:grid}.cat-grid.single{grid-template-columns:1fr;max-width:640px;margin:0 auto}.cat-grid.single .cat-card{height:440px}.cat-card{cursor:pointer;background:var(--tint);border-radius:16px;height:360px;position:relative;overflow:hidden}.cat-card img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.cat-card:hover img{transform:scale(1.06)}.cat-card:after{content:"";background:linear-gradient(#0000 0%,#1c161426 45%,#1c1614e0 100%);position:absolute;inset:0}.cat-card-text{z-index:2;padding:26px;position:absolute;bottom:0;left:0;right:0}.cat-card-text h3{color:#fff;margin-bottom:10px;font-size:1.55rem}.cat-card-text span{color:#fff;text-transform:uppercase;letter-spacing:1.5px;border-bottom:1px solid #ffffff80;padding-bottom:4px;font-size:.74rem}.modal-overlay{z-index:300;background:#1c1614c7;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal{background:var(--paper);border-radius:16px;width:100%;max-width:560px;max-height:85vh;padding:40px;position:relative;overflow-y:auto}.modal-close{color:var(--ink);cursor:pointer;background:0 0;border:none;font-size:1.7rem;position:absolute;top:16px;right:20px}.modal h3{color:var(--dark);margin-bottom:6px;font-size:1.8rem}.modal .modal-sub{color:var(--muted);margin-bottom:22px;font-size:.86rem}.svc-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.svc-row:last-of-type{border-bottom:none}.svc-name{color:var(--ink);font-size:.98rem;font-weight:400}.svc-desc{color:var(--muted);margin-top:3px;font-size:.8rem;line-height:1.5;display:block}.svc-price{color:var(--red);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;font-size:.72rem;font-weight:500}.modal-cta{text-align:center;background:var(--red);color:#fff;text-transform:uppercase;letter-spacing:1.5px;border-radius:30px;margin-top:26px;padding:14px;font-size:.8rem;display:block}.modal-cta.alt{background:#25d366;margin-top:10px}.services-note{text-align:center;color:var(--muted);padding:0 7% 90px;font-size:.9rem}.portfolio-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;display:grid}.portfolio-grid figure{aspect-ratio:4/5;cursor:zoom-in;background:var(--tint);border-radius:14px;overflow:hidden}.portfolio-grid img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.portfolio-grid figure:hover img{transform:scale(1.05)}.lightbox{z-index:400;cursor:zoom-out;background:#0f0c0af0;justify-content:center;align-items:center;padding:30px;display:none;position:fixed;inset:0}.lightbox.open{display:flex}.lightbox img{border-radius:10px;max-width:100%;max-height:90vh}.legal{max-width:860px;margin:0 auto;padding:160px 7% 90px}.legal h1{color:var(--dark);margin-bottom:26px;font-size:2.4rem}.legal h2{color:var(--dark);margin:30px 0 10px;font-size:1.35rem}.legal p,.legal li{color:var(--muted);margin-bottom:10px;font-size:.96rem;line-height:1.8}.legal ul{padding-left:22px}.legal a{color:var(--red);text-decoration:underline}@media (width<=900px){.hero{grid-template-columns:1fr}.hero-img{order:-1;height:340px;margin-top:82px}.hero-img:after{background:linear-gradient(0deg,var(--cream) 0%,#f7f1e900 25%)}.hero-text{padding:30px 6% 60px}.worlds-grid{grid-template-columns:1fr}.world-card{min-height:420px}.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}.gallery .big{grid-area:span 2/span 2}.footer-grid{grid-template-columns:1fr;gap:30px}.contact-grid{grid-template-columns:1fr}.contact-map,.contact-map iframe{min-height:300px}nav{background:var(--cream);width:78%;max-width:300px;height:100vh;padding:110px 40px;transition:transform .4s;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-10px 0 40px #0000001f}nav.open{transform:translate(0)}nav ul{flex-direction:column;gap:26px}.nav-toggle{z-index:110;display:block;position:relative}section{padding:70px 6%}.tabs{flex-wrap:nowrap;justify-content:flex-start;top:66px;overflow-x:auto}.tab-btn{flex-shrink:0}.page-hero{padding:140px 6% 40px}.modal{padding:34px 24px}}@media (width<=520px){.logo-text .script{font-size:1.35rem}.logo-badge{width:48px;height:48px}.social-fabs{bottom:16px;right:16px}.social-fabs a{width:46px;height:46px}}.logo-mark{background:var(--red);color:#fff;width:46px;height:46px;box-shadow:0 0 0 3px var(--tint);border-radius:50%;place-items:center;font-family:Cormorant Upright,serif;font-size:1.4rem;display:grid}.brands{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:26px;display:flex}.brands span{border:1px solid var(--line);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);background:var(--paper);border-radius:30px;padding:8px 18px;font-size:.78rem}
