/* Modern depth: restrained glass, bevelled surfaces and real CSS perspective. */
:root{--depth-ease:cubic-bezier(.22,1,.36,1)}
.site-header{max-width:1248px;width:calc(100% - 40px);margin:14px auto 0;padding:0 34px;height:90px;border:1px solid #ffffffb3;border-radius:20px;background:color-mix(in srgb,var(--paper) 88%,white);box-shadow:0 12px 34px -24px #24282044,inset 0 1px 0 white}
.hero{padding-top:58px;overflow:visible}
/* Stronger colour in the halo; fade to zero at every edge of its paint area. */
.hero::before{inset:-48px -20px 6%;background:radial-gradient(ellipse at 24% 30%,#b0c39773 0%,#bbc9ad47 28%,#cad5bd1c 52%,transparent 76%),radial-gradient(ellipse at 76% 30%,#d8bb8a63 0%,#ddc8a63b 28%,#e7d9c01a 52%,transparent 76%);-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 26%,#000d 48%,#0007 68%,#0002 86%,transparent 100%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 26%,#000d 48%,#0007 68%,#0002 86%,transparent 100%)}
.hero-copy{position:relative;z-index:2}.hero h1{text-shadow:0 2px 0 #fff,0 12px 35px #2428200b}.hero-ornament{margin-bottom:22px}.hero-ornament svg{filter:drop-shadow(0 4px 4px #69766125)}
.hero-atmosphere{position:absolute;inset:0 0 auto;height:530px;pointer-events:none;z-index:-1;overflow:hidden;contain:paint}.ambient-ring{position:absolute;top:45px;width:240px;height:240px;border-radius:50%;border:1px solid #ffffffb0;background:radial-gradient(ellipse at 36% 24%,#ffffffb3,#d7e0cf24 45%,#a9bba335 78%,#ffffffa3);box-shadow:inset 4px 7px 16px #ffffffb0,inset -6px -9px 17px #69766112,0 20px 35px -20px #69766155;opacity:.63;transform:perspective(1000px) rotateX(56deg) rotateY(-16deg);animation:ambient-drift 9s ease-in-out infinite;animation-play-state:paused}.ambient-ring::after{content:'';position:absolute;inset:26px;border:1px solid #ffffffad;border-radius:50%;box-shadow:inset 0 2px 6px #ffffffa0,0 2px 3px #69766112;background:radial-gradient(circle at 70% 70%,#f7f7f204,#f7f7f23d)}.ambient-ring.left{left:calc(50% - 520px)}.ambient-ring.right{right:calc(50% - 520px);transform:perspective(1000px) rotateX(56deg) rotateY(16deg);animation-name:ambient-drift-right}.hero.depth-visible .ambient-ring{animation-play-state:running}
.hero-carousel{z-index:2}
/* Fade only the 18px scroll gutters so photo shadows never meet a hard clip. */
.carousel-track{padding-top:18px;padding-bottom:54px;-webkit-mask-image:linear-gradient(90deg,transparent,#0003 4px,#000a 10px,#000 18px,#000 calc(100% - 18px),#000a calc(100% - 10px),#0003 calc(100% - 4px),transparent);mask-image:linear-gradient(90deg,transparent,#0003 4px,#000a 10px,#000 18px,#000 calc(100% - 18px),#000a calc(100% - 10px),#0003 calc(100% - 4px),transparent)}
.carousel-track>.hero-frame{border:8px solid white;border-radius:17px;background:white;box-shadow:var(--photo-shadow),0 3px 0 #d9ddce,inset 0 1px 0 white;backface-visibility:hidden;transform-origin:50% 55%;transition:box-shadow .55s var(--depth-ease)}.hero-frame::before,.image-wrap::after,.approach-photo::after,.price-card::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:3;border-radius:inherit;background:radial-gradient(circle at var(--depth-light-x,50%) var(--depth-light-y,30%),#ffffff70 0%,#ffffff18 25%,transparent 65%);opacity:var(--depth-glare,0);transition:opacity .3s ease;mix-blend-mode:screen}.hero-frame::after{height:40%;background:linear-gradient(transparent,#18221978)}.hero-frame>span{font-size:9px;letter-spacing:3px;bottom:21px;z-index:4;text-shadow:0 2px 8px #00000040}.hero-frame img{transition:transform .9s var(--depth-ease),filter .65s ease}.hero-frame:hover img{transform:scale(1.035)}
.carousel-toolbar{background:#ffffff70;border-color:#ffffffb5;backdrop-filter:blur(14px);box-shadow:0 10px 25px -15px #24282040,inset 0 1px 0 #ffffffb0;padding:7px 18px}.carousel-control{background:#ffffff9e;box-shadow:0 3px 7px #24282008,inset 0 1px 0 #fff}.carousel-control:hover{background:white;box-shadow:0 5px 10px #24282012}.carousel-dot[aria-current=true]::before{box-shadow:0 2px 4px #69766140}
.image-wrap{border:6px solid #fff;border-radius:13px;background:#fff;box-shadow:var(--photo-shadow),0 3px 0 #d9ddce;backface-visibility:hidden;transition:transform .7s var(--depth-ease),box-shadow .55s var(--depth-ease)}.photo-card:hover .image-wrap,.photo-card:focus-visible .image-wrap{box-shadow:var(--photo-shadow),0 4px 0 #d1d8c7;transform:translateY(-8px)}.photo-card:hover img{transform:scale(1.04)}.photo-open{background:#ffffffb8;box-shadow:0 6px 16px #24282015,inset 0 1px 0 #ffffffd9;border:1px solid #ffffffb3}.photo-caption{padding-top:6px}.photo-caption>span{text-shadow:0 1px 0 #fff}.photo-card.will-reveal:not(.in-view) .image-wrap{transform:perspective(1100px) translateY(22px) rotateX(7deg) scale(.98)}
.price-card{overflow:visible;border-color:#ffffffb0;border-radius:22px;background:linear-gradient(145deg,#ffffffb3,var(--surface));box-shadow:0 22px 45px -30px #24282066,0 4px 0 #e3e7da,inset 0 1px 0 #fff;transition:transform .7s var(--depth-ease),box-shadow .55s var(--depth-ease)}.price-card.featured{background:linear-gradient(140deg,#f7f9f2,color-mix(in srgb,var(--sage) 18%,var(--paper)));box-shadow:0 25px 55px -30px #69766175,0 4px 0 #ccd5c0,inset 0 1px 0 white;border-color:color-mix(in srgb,var(--sage) 55%,white)}.price-card:hover,.price-card.in-view:hover{box-shadow:0 30px 65px -33px #24282070,0 4px 0 #d8dfce}.price-card>*{position:relative;z-index:4}.price-card.featured::before{z-index:5}.price-amount{text-shadow:0 2px 0 #ffffffa6,0 5px 13px #69766112}.price-divider{background:linear-gradient(90deg,transparent,var(--line) 12%,var(--line) 88%,transparent)}
.button{box-shadow:inset 0 1px 0 #ffffff99;transition:transform .4s var(--depth-ease),box-shadow .4s var(--depth-ease),background .3s}.button.dark{box-shadow:0 8px 18px -10px #24282080,inset 0 1px 0 #ffffff26,inset 0 -2px 0 #0000001a}.button.dark:hover{box-shadow:0 13px 25px -12px #24282070,inset 0 1px 0 #ffffff26;transform:translateY(-3px)}.button.outline{background:linear-gradient(150deg,#ffffff9c,#ffffff21);box-shadow:0 5px 12px -9px #24282045,inset 0 1px 0 #fff}.button:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #00000010}
.approach-photo{position:relative;border-radius:18px;border-width:9px;box-shadow:var(--photo-shadow),0 4px 0 #d9ddce;transition:transform .7s var(--depth-ease)}.contact-layout{position:relative;isolation:isolate;box-shadow:0 35px 65px -35px #24282080,inset 0 1px 0 #ffffff1a,0 5px 0 color-mix(in srgb,var(--ink) 75%,white);background:radial-gradient(ellipse at 10% 10%,#93a97b17,transparent 65%),var(--ink)}.contact-layout::before{content:'';position:absolute;inset:0;border:1px solid #ffffff0f;border-radius:inherit;pointer-events:none;z-index:-1}.contact-form-area{border:1px solid #ffffff96;box-shadow:0 22px 40px -18px #0000004a,0 3px 0 #ffffff40,inset 0 1px 0 #fff}.faq-list details{transition:background .3s,border-color .3s}.faq-list details[open]{border-color:var(--sage);border-radius:10px}.faq-list summary{transition:color .3s}.faq-list summary:hover{color:var(--sage)}
/* Pointer tilt is active only on fine-pointer devices. Reveal belongs to the wrapper. */
body[data-depth-motion=on] .hero-frame.depth-ready,body[data-depth-motion=on] .image-wrap.depth-ready,body[data-depth-motion=on] .approach-photo.depth-ready,body[data-depth-motion=on] .price-card.depth-ready.in-view,body[data-depth-motion=on] .price-card.depth-ready:not(.will-reveal){transform:perspective(1100px) translate3d(0,var(--depth-lift,0px),0) rotateX(var(--depth-rx,0deg)) rotateY(var(--depth-ry,0deg));transition:box-shadow .55s var(--depth-ease)}.is-tilting{will-change:transform}.reveal.will-reveal{transition-duration:.95s;transition-timing-function:var(--depth-ease)}
body[data-depth-motion=off] .ambient-ring{animation:none!important}body[data-depth-motion=off] .hero-frame,body[data-depth-motion=off] .image-wrap,body[data-depth-motion=off] .price-card,body[data-depth-motion=off] .approach-photo,body[data-depth-motion=off] .hero-frame:hover img{transform:none!important}body[data-depth-motion=off] .hero-frame::before,body[data-depth-motion=off] .image-wrap::after,body[data-depth-motion=off] .price-card::after,body[data-depth-motion=off] .approach-photo::after{opacity:0!important}
@keyframes ambient-drift{0%,100%{transform:perspective(1000px) translateY(0) rotateX(56deg) rotateY(-16deg)}50%{transform:perspective(1000px) translateY(-14px) rotateX(51deg) rotateY(-13deg)}}@keyframes ambient-drift-right{0%,100%{transform:perspective(1000px) translateY(0) rotateX(56deg) rotateY(16deg)}50%{transform:perspective(1000px) translateY(-14px) rotateX(51deg) rotateY(13deg)}}
@media(max-width:1100px){.ambient-ring{width:200px;height:200px;top:60px}.ambient-ring.left{left:calc(50% - 455px)}.ambient-ring.right{right:calc(50% - 455px)}}
@media(max-width:800px){.site-header{width:calc(100% - 28px);height:78px;padding:0 22px;margin-top:10px;border-radius:16px}.site-header nav{top:78px;border-radius:0 0 16px 16px}.hero{padding-top:40px}.ambient-ring{opacity:.38;width:165px;height:165px;top:90px}.ambient-ring.left{left:-55px}.ambient-ring.right{right:-55px}.carousel-track{padding-top:12px;padding-bottom:41px}}
@media(max-width:600px){.hero{padding-top:35px}.hero-atmosphere{height:370px}.ambient-ring{width:145px;height:145px;opacity:.34;top:140px}.ambient-ring.left{left:-78px}.ambient-ring.right{right:-78px}.carousel-track>.hero-frame{border-width:7px;border-radius:15px;box-shadow:var(--photo-shadow),0 3px 0 #d9ddce}.carousel-track{padding-bottom:33px}.carousel-toolbar{padding:6px 10px;gap:4px}.image-wrap{border-width:5px;border-radius:10px}.price-card{border-radius:20px}.contact-layout{box-shadow:0 20px 35px -25px #24282090,0 3px 0 #5a6051}.approach-photo{border-width:7px;border-radius:14px}}
@media(hover:none),(pointer:coarse){.hero-frame:hover img,.photo-card:hover .image-wrap,.price-card:hover,.price-card.in-view:hover,.button.dark:hover{transform:none}.hero-frame::before,.image-wrap::after,.approach-photo::after,.price-card::after{display:none}.hero.depth-visible .ambient-ring{animation:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero-frame,.image-wrap,.price-card,.approach-photo,.photo-card:hover .image-wrap,.hero-frame:hover img{transform:none!important}.hero-frame::before,.image-wrap::after,.approach-photo::after,.price-card::after{opacity:0!important}}
