/*
Theme Name: Image Maker V2.2.11
Theme URI: https://www.imagemakerclicks.com/
Author: Image Maker / OpenAI assisted conversion
Description: Custom WordPress conversion of the approved Image Maker V2.2.3 cinematic photography website. Preserves the original visual language, loader, cursor interactions, responsive behavior, galleries, services, reviews and film presentation while adding WordPress CMS management.
Version: 2.2.11-wp1
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: image-maker-v223
*/
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f2f0ea;color:#171714;font-family:"DM Sans",sans-serif;font-weight:300}body.intro-playing{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%}.progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:9000}.progress i{display:block;height:100%;width:0;background:#d6a20d}.site-header{height:84px;padding:0 3.5vw;display:flex;align-items:center;justify-content:space-between;position:absolute;top:0;left:0;width:100%;z-index:50;color:#fff;border-bottom:1px solid #ffffff38}.brand{display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.18em;font-weight:500}.brand img{width:48px;height:30px;object-fit:cover;object-position:center;filter:invert(1) grayscale(1) brightness(3)}nav{display:flex;gap:32px;font-size:12px}nav a{position:relative}nav a:after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:1px;background:currentColor;transition:.35s}nav a:hover:after{width:100%}.enquire{border:1px solid #ffffff7a;padding:12px 17px;border-radius:50px;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.menu{display:none}.hero{height:100svh;min-height:700px;position:relative;color:#fff;overflow:hidden;background:#111}.hero-img{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center 43%;animation:heroIn 2.2s cubic-bezier(.2,.8,.2,1) 2.3s both}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#0009 0,#0002 55%,#0005 100%),linear-gradient(0deg,#0009 0,transparent 35%)}.hero-kicker{position:absolute;top:130px;left:3.5vw;font-size:9px;letter-spacing:.25em}.hero-copy{position:absolute;left:7vw;bottom:16vh}.hero-copy p{font-size:10px;text-transform:uppercase;letter-spacing:.2em;margin-bottom:24px}.hero h1,.intro h2,.section-head h2,.contact h2{font-family:Italiana,serif;font-weight:400;margin:0;line-height:.88;letter-spacing:-.035em}.hero h1{font-size:clamp(64px,8.4vw,150px)}em{font-style:italic;color:#d8b04a}.hero-foot{position:absolute;bottom:28px;left:3.5vw;right:3.5vw;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.18em;text-transform:uppercase}.eyebrow{font-size:9px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:50px}.intro{padding:140px 7vw 170px}.intro-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:10vw;align-items:end}.intro h2{font-size:clamp(48px,6vw,105px)}.intro-grid>div p{line-height:1.7;color:#5b5b54;font-size:13px}.lead{font-family:Italiana,serif!important;font-size:23px!important;line-height:1.3!important;color:#222!important}.text-link{display:inline-block;margin-top:24px;border-bottom:1px solid;padding-bottom:5px;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.signature{height:110vh;min-height:780px;position:relative;padding:0 7vw}.sig-main{position:absolute;left:18%;top:4%;width:37%;margin:0}.sig-side{position:absolute;right:8%;bottom:4%;width:24%;margin:0}.signature figure img{height:100%;object-fit:cover}.sig-main img{aspect-ratio:3/4}.sig-side img{aspect-ratio:3/4}.signature figcaption{font-size:8px;letter-spacing:.18em;margin-top:10px}.sig-small{position:absolute;left:7%;top:16%;width:10%;font-size:10px;line-height:1.5}.sig-small span{font-family:Italiana;font-size:50px}.vertical{position:absolute;right:2%;top:24%;writing-mode:vertical-rl;font-size:8px;letter-spacing:.3em}.services{padding:150px 7vw;background:#deddd7}.section-head{display:grid;grid-template-columns:.35fr 1fr;align-items:start;margin-bottom:90px}.section-head .eyebrow{margin:12px 0}.section-head h2{font-size:clamp(58px,7vw,120px)}.service-list{border-top:1px solid #aaa9a2}.service-list article{display:grid;grid-template-columns:70px 1fr 1fr 50px;align-items:center;gap:25px;padding:32px 0;border-bottom:1px solid #aaa9a2;transition:.3s}.service-list article:hover{padding-left:18px;background:#d5d4ce}.service-list span{font-size:10px}.service-list h3{font-family:Italiana;font-size:35px;font-weight:400;margin:0}.service-list p{font-size:11px;line-height:1.6;color:#666;max-width:420px}.service-list b{text-align:right;font-size:22px}.portfolio{background:#171714;color:#f2f0ea;padding:150px 3.5vw}.section-head.light{grid-template-columns:.3fr 1fr .45fr}.section-head.light p{font-size:11px;line-height:1.7;color:#aaa;align-self:end}.mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;align-items:start}.mosaic figure{margin:0;overflow:hidden}.mosaic img{height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.mosaic figure:hover img{transform:scale(1.025)}.mosaic .wide{grid-column:1/9}.mosaic .wide img{aspect-ratio:16/9}.mosaic .portrait{grid-column:9/13}.mosaic .portrait:nth-of-type(3){grid-column:1/5;margin-top:40px}.mosaic .portrait img{aspect-ratio:3/4}.mosaic .land{grid-column:5/10;margin-top:40px}.mosaic .land:nth-of-type(5){grid-column:1/8;margin-top:20px}.mosaic .land img{aspect-ratio:4/3}.mosaic .tall{grid-column:9/13;margin-top:-70px}.mosaic .tall img{aspect-ratio:3/4}.gallery-cta{margin:90px auto 0;width:220px;height:220px;border:1px solid #777;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:25px;text-transform:uppercase;font-size:9px;letter-spacing:.15em;transition:.4s}.gallery-cta:hover{background:#f2f0ea;color:#171714;transform:rotate(-5deg)}.statement{padding:180px 10vw;text-align:center}.statement>p{font-size:9px;letter-spacing:.2em}.statement blockquote{font-family:Italiana;font-size:clamp(45px,6.2vw,110px);line-height:1.05;margin:50px auto 0;max-width:1300px}.story-strip{overflow:hidden;padding-bottom:150px}.strip-track{display:flex;gap:18px;width:max-content;animation:drift 30s linear infinite}.strip-track img{width:320px;height:430px;object-fit:cover}.strip-track img:nth-child(even){margin-top:70px}.reviews{padding:140px 7vw;background:#d5d0c7;display:grid;grid-template-columns:1fr 1fr;gap:10vw}.reviews h2{font-family:Italiana;font-weight:400;font-size:clamp(55px,6vw,100px);line-height:.92;margin:0}.rating{display:flex;gap:25px;align-items:center;margin-top:70px}.rating strong{font-family:Italiana;font-size:70px}.rating span{font-size:10px;line-height:1.8;letter-spacing:.12em}.quotes article{padding:45px 0;border-top:1px solid #aaa}.quotes article:last-child{border-bottom:1px solid #aaa}.quotes p{font-family:Italiana;font-size:28px;line-height:1.35}.quotes span{font-size:9px;text-transform:uppercase;letter-spacing:.16em}.contact{display:grid;grid-template-columns:1fr 1fr;min-height:850px}.contact-photo img{height:100%;object-fit:cover}.contact-copy{background:#efece5;padding:110px 8vw;display:flex;flex-direction:column;justify-content:center}.contact-copy .eyebrow{margin-bottom:45px}.contact h2{font-size:clamp(65px,7vw,120px)}.contact-copy>p{max-width:480px;font-size:12px;line-height:1.8;color:#666;margin:45px 0 25px}.contact-copy>a:not(.big-btn){font-family:Italiana;font-size:24px;margin:4px 0}.address{font-size:10px;line-height:1.7;margin-top:30px;color:#666}.big-btn{margin-top:50px;border-top:1px solid;border-bottom:1px solid;padding:25px 0;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.15em}footer{position:relative;background:#0d0d0c;color:#eee;padding:80px 5vw 160px;display:grid;grid-template-columns:1fr .7fr 1fr;gap:50px;overflow:hidden;min-height:430px}footer span{font-family:Italiana;font-size:28px}footer p,footer small,footer a{font-size:9px;line-height:1.8;letter-spacing:.08em;color:#aaa}.footer-nav{display:grid;gap:6px}.footer-word{position:absolute;bottom:-35px;left:50%;transform:translateX(-50%);font-family:Italiana;font-size:clamp(90px,16vw,290px);white-space:nowrap;color:#252522;letter-spacing:-.06em}.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}@keyframes heroIn{from{transform:scale(1.08);filter:brightness(.6)}to{transform:scale(1);filter:brightness(1)}}@keyframes drift{to{transform:translateX(calc(-50% + 350px))}}
/* preserved V9.7 intro */
.aperture-loader{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;overflow:hidden;background:#f3f3ef;opacity:1;visibility:visible;pointer-events:auto;transition:visibility 0s linear 2.82s}.aperture-loader.done{visibility:hidden;pointer-events:none}.loader-panel{position:absolute;left:0;width:100%;height:50.15%;background:#f3f3ef;z-index:1;will-change:transform}.loader-panel-top{top:0}.loader-panel-bottom{bottom:0}.aperture-loader.phase-two .loader-panel-top{animation:v97PanelTop .82s cubic-bezier(.76,0,.24,1) forwards}.aperture-loader.phase-two .loader-panel-bottom{animation:v97PanelBottom .82s cubic-bezier(.76,0,.24,1) forwards}.aperture-intro{position:relative;z-index:3;width:min(360px,76vw);height:min(360px,76vw);display:grid;place-items:center;will-change:transform,opacity}.aperture-shell{position:absolute;width:190px;height:190px;border-radius:50%;overflow:hidden;transform:scale(.96)}.aperture-blades{position:absolute;inset:0;border-radius:50%;transform:rotate(-22.5deg)}.blade{position:absolute;left:50%;top:50%;width:108px;height:78px;margin-left:-8px;margin-top:-39px;background:#171816;clip-path:polygon(0 0,100% 16%,76% 100%,0 72%);transform-origin:8px 39px;transform:rotate(var(--blade-angle)) translate3d(-10px,0,0) rotate(-34deg);animation:none;will-change:transform;backface-visibility:hidden}.b1{--blade-angle:0deg}.b2{--blade-angle:45deg}.b3{--blade-angle:90deg}.b4{--blade-angle:135deg}.b5{--blade-angle:180deg}.b6{--blade-angle:225deg}.b7{--blade-angle:270deg}.b8{--blade-angle:315deg}
.aperture-shell{contain:layout paint;transform:scale(.96) translateZ(0)}
.aperture-loader.is-ready .blade{animation:v97BladeOpen .82s cubic-bezier(.64,0,.18,1) .08s forwards}
.aperture-loader.is-ready .aperture-hole{animation:v97HoleOpen .78s cubic-bezier(.64,0,.18,1) .12s forwards}
.aperture-loader.is-ready .aperture-logo-wrap{animation:v97LogoEmerge .58s cubic-bezier(.16,.84,.2,1) .60s forwards}
.aperture-loader.is-ready .aperture-caption{animation:v97CaptionIn .32s ease .83s forwards}
.aperture-hole{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#f3f3ef;z-index:2;transform:scale(1);animation:none;will-change:transform}.aperture-logo-wrap{position:relative;z-index:4;width:180px;display:grid;place-items:center;opacity:0;transform:translate3d(0,9px,0) scale(.72);animation:none;will-change:transform,opacity;backface-visibility:hidden}.aperture-logo{width:170px!important;max-width:62vw;height:auto}.aperture-caption{position:absolute;bottom:32px;left:50%;transform:translate3d(-50%,10px,0);white-space:nowrap;font-size:7px;letter-spacing:.28em;color:#6b6e69;opacity:0;animation:none;will-change:transform,opacity}.aperture-loader.phase-two .aperture-intro{animation:v97IntroExit .68s cubic-bezier(.76,0,.24,1) forwards}@keyframes v97BladeOpen{from{transform:rotate(var(--blade-angle)) translate3d(-10px,0,0) rotate(-34deg)}to{transform:rotate(var(--blade-angle)) translate3d(68px,0,0) rotate(9deg)}}@keyframes v97HoleOpen{to{transform:scale(19)}}@keyframes v97LogoEmerge{to{opacity:1;transform:translate3d(0,0,0) scale(1)}}@keyframes v97CaptionIn{to{opacity:1;transform:translate3d(-50%,0,0)}}@keyframes v97IntroExit{to{opacity:0;transform:scale(1.08)}}@keyframes v97PanelTop{to{transform:translateY(-102%)}}@keyframes v97PanelBottom{to{transform:translateY(102%)}}
@media(max-width:800px){.site-header{height:70px;padding:0 20px}.site-header nav,.enquire{display:none}.brand img{width:38px}.menu{display:block;background:none;border:0;color:#fff;text-transform:uppercase;font-size:9px;letter-spacing:.15em}.hero{min-height:620px}.hero-copy{left:22px;bottom:18vh}.hero h1{font-size:54px}.hero-kicker{left:22px}.hero-foot{left:22px;right:22px}.intro{padding:100px 22px}.intro-grid{grid-template-columns:1fr;gap:55px}.intro h2{font-size:48px}.signature{height:850px;padding:0 22px}.sig-main{left:7%;width:62%}.sig-side{right:5%;width:40%;bottom:7%}.sig-small,.vertical{display:none}.services{padding:100px 22px}.section-head,.section-head.light{display:block;margin-bottom:55px}.section-head h2{font-size:58px}.section-head.light p{margin-top:30px}.service-list article{grid-template-columns:35px 1fr 25px;gap:10px}.service-list article p{grid-column:2/4}.service-list h3{font-size:29px}.portfolio{padding:100px 12px}.mosaic{gap:8px}.mosaic .wide{grid-column:1/13}.mosaic .portrait{grid-column:1/7!important;margin-top:0!important}.mosaic .portrait:nth-of-type(3){grid-column:7/13!important}.mosaic .land,.mosaic .land:nth-of-type(5){grid-column:1/13;margin-top:0}.mosaic .tall{grid-column:1/13;margin-top:0}.gallery-cta{width:160px;height:160px}.statement{padding:110px 22px}.statement blockquote{font-size:43px}.strip-track img{width:230px;height:330px}.reviews{padding:100px 22px;grid-template-columns:1fr;gap:60px}.reviews h2{font-size:55px}.contact{grid-template-columns:1fr}.contact-photo{height:65vh}.contact-copy{padding:90px 22px}.contact h2{font-size:62px}footer{grid-template-columns:1fr;padding:70px 22px 120px}.footer-word{font-size:24vw}.aperture-shell{width:150px;height:150px}.aperture-logo-wrap{width:145px}.aperture-logo{width:140px!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reveal{opacity:1;transform:none}.strip-track{animation:none}.aperture-loader{display:none}.hero-img{animation:none}}


/* =========================================================
   FRESH V1.1 — USER CORRECTIONS
   Uniform imagery, related category cards, motion, reviews slider
   ========================================================= */

/* Shared premium photo reveal */
.photo-mask{overflow:hidden;position:relative;background:#111}
.reveal-photo .photo-mask::after{
  content:"";position:absolute;inset:0;background:#f2f0ea;
  transform:scaleY(1);transform-origin:bottom;
}
.reveal-photo img{transform:scale(1.075);transition:transform 1.25s cubic-bezier(.2,.72,.2,1)}
.reveal-photo.in .photo-mask::after{
  animation:photoCurtain 1s cubic-bezier(.76,0,.24,1) var(--delay,0ms) forwards;
}
.reveal-photo.in img{
  animation:photoSettle 1.45s cubic-bezier(.2,.72,.2,1) var(--delay,0ms) forwards;
}
@keyframes photoCurtain{to{transform:scaleY(0)}}
@keyframes photoSettle{to{transform:scale(1)}}

/* Correction 3 — "We photograph the feeling..." uniform editorial photography */
.feeling-gallery{
  min-height:auto!important;height:auto!important;
  padding:0 7vw 160px!important;position:relative;
}
.feeling-meta{
  display:flex;align-items:flex-start;gap:24px;margin-bottom:45px;
  font-size:9px;letter-spacing:.16em;line-height:1.6;
}
.feeling-meta span{font-family:Italiana,serif;font-size:56px;line-height:.8}
.feeling-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feeling-card{margin:0}
.feeling-card .photo-mask{aspect-ratio:3/4}
.feeling-card img{width:100%;height:100%;object-fit:cover}
.feeling-card:nth-child(1) img{object-position:center 34%}
.feeling-card:nth-child(2) img{object-position:center}
.feeling-card:nth-child(3) img{object-position:center}
.feeling-card figcaption{
  display:flex;justify-content:space-between;padding-top:12px;
  border-top:1px solid #b5b2aa;margin-top:12px;
  font-size:8px;letter-spacing:.18em;
}
.feeling-gallery .vertical{top:10%;right:2%}

/* Correction 2 — real image-led categories */
.services{padding-bottom:165px}
.service-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 18px}
.service-card{position:relative;overflow:hidden;background:#d3d2cc}
.service-photo{overflow:hidden;aspect-ratio:16/10}
.service-photo img{height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.72,.2,1)}
.service-card:hover .service-photo img{transform:scale(1.04)}
.service-copy{
  display:grid;grid-template-columns:38px 1fr 1.05fr 34px;
  gap:18px;align-items:center;padding:22px 20px 24px;
  border-top:1px solid #aaa9a2;
}
.service-copy span{font-size:9px}
.service-copy h3{font-family:Italiana,serif;font-size:32px;font-weight:400;margin:0}
.service-copy p{font-size:10px;line-height:1.6;color:#62615c;margin:0}
.service-copy b{text-align:right;font-size:20px;font-weight:300}

/* Correction 1 — Frames with a heartbeat: uniform cards + staggered motion */
.heartbeat-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
}
.heartbeat-card{margin:0;min-width:0}
.heartbeat-card .photo-mask{aspect-ratio:4/5;background:#292925}
.heartbeat-card img{width:100%;height:100%;object-fit:cover}
.heartbeat-card:nth-child(1) img{object-position:center}
.heartbeat-card:nth-child(2) img{object-position:center 30%}
.heartbeat-card:nth-child(3) img{object-position:center}
.heartbeat-card:nth-child(4) img{object-position:center}
.heartbeat-card:nth-child(5) img{object-position:center}
.heartbeat-card:nth-child(6) img{object-position:center}
.heartbeat-card figcaption{
  display:flex;justify-content:space-between;
  border-top:1px solid #464640;padding-top:11px;margin-top:11px;
  font-size:8px;letter-spacing:.16em;color:#aaa;
}
.heartbeat-card:hover img{transform:scale(1.035)!important}

/* Correction 4 — aesthetic Google Reviews carousel */
.reviews{
  grid-template-columns:.72fr 1.28fr!important;
  gap:7vw!important;overflow:hidden;
}
.reviews-intro{align-self:center}
.reviews .rating{margin-top:54px}
.reviews .rating strong{line-height:.8}
.reviews .rating>div{display:flex;flex-direction:column;gap:5px}
.stars{letter-spacing:.12em;font-size:12px}
.reviews .rating small{font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:#6f6c65}
.review-controls{display:flex;align-items:center;gap:14px;margin-top:55px;max-width:290px}
.review-controls button{
  width:42px;height:42px;border-radius:50%;border:1px solid #99958c;
  background:transparent;font-size:16px;cursor:pointer;transition:.3s;
}
.review-controls button:hover{background:#171714;color:white;border-color:#171714}
.review-progress{height:1px;background:#aaa59b;flex:1;overflow:hidden}
.review-progress i{display:block;height:100%;width:25%;background:#171714;transition:width .5s ease}
.review-window{overflow:hidden;align-self:center}
.review-track{display:flex;gap:18px;transition:transform .72s cubic-bezier(.22,.72,.18,1);will-change:transform}
.review-card{
  flex:0 0 calc(50% - 9px);min-height:390px;
  background:#ebe7df;padding:27px 28px 25px;
  display:flex;flex-direction:column;justify-content:space-between;
  border:1px solid #c5c0b6;
}
.review-top{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.16em;text-transform:uppercase}
.review-card>p{font-family:Italiana,serif;font-size:31px;line-height:1.25;margin:58px 0;color:#25241f}
.review-card footer{
  min-height:0!important;padding:20px 0 0!important;background:transparent!important;
  color:#171714!important;display:flex!important;grid-template-columns:none!important;
  justify-content:space-between;border-top:1px solid #bbb5ab;gap:15px!important;
}
.review-card footer b,.review-card footer span{
  font-family:"DM Sans",sans-serif!important;font-size:8px!important;
  letter-spacing:.13em;text-transform:uppercase;color:#69665f!important;
}
.review-card footer b{font-weight:500!important}

/* Keep old mosaic rules from affecting new grid */
.heartbeat-grid figure{overflow:visible}

@media(max-width:800px){
  .feeling-gallery{padding:0 22px 100px!important}
  .feeling-grid{grid-template-columns:1fr;gap:35px}
  .feeling-card .photo-mask{aspect-ratio:4/5}
  .service-cards{grid-template-columns:1fr}
  .service-copy{grid-template-columns:30px 1fr 26px}
  .service-copy p{grid-column:2/4}
  .heartbeat-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .heartbeat-card .photo-mask{aspect-ratio:3/4}
  .reviews{grid-template-columns:1fr!important;gap:55px!important}
  .review-card{flex-basis:88%;min-height:350px}
  .review-card>p{font-size:27px}
}
@media(max-width:520px){
  .heartbeat-grid{grid-template-columns:1fr}
}


/* =========================================================
   FRESH V1.2 — INTERACTIVE CURSOR / LIVING LAYOUT
   Desktop: cursor-reactive images, magnetic links, depth motion.
   Mobile/touch: clean static fallback.
   ========================================================= */

:root{
  --mx:50vw;
  --my:50vh;
}

/* Custom cursor */
.cursor-orbit{
  position:fixed;
  left:0;top:0;
  width:0;height:0;
  z-index:99990;
  pointer-events:none;
  opacity:0;
  transition:opacity .2s ease;
}
.cursor-orbit.ready{opacity:1}
.cursor-dot,
.cursor-ring,
.cursor-label{
  position:absolute;
  left:0;top:0;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.cursor-dot{
  width:5px;height:5px;border-radius:50%;
  background:#171714;
}
.cursor-ring{
  width:38px;height:38px;border-radius:50%;
  border:1px solid rgba(23,23,20,.55);
  transition:
    width .35s cubic-bezier(.2,.8,.2,1),
    height .35s cubic-bezier(.2,.8,.2,1),
    background .35s ease,
    border-color .35s ease;
}
.cursor-label{
  opacity:0;
  font-size:7px;
  letter-spacing:.16em;
  font-family:"DM Sans",sans-serif;
  color:#fff;
  transition:opacity .2s ease;
}
.cursor-orbit.over-card .cursor-ring{
  width:72px;height:72px;
  background:rgba(18,18,16,.82);
  border-color:transparent;
}
.cursor-orbit.over-card .cursor-label{opacity:1}

/* Let interactive pieces subtly react to the cursor */
.cursor-react{
  --rx:0deg;
  --ry:0deg;
  --tx:0px;
  --ty:0px;
  transform:
    perspective(1000px)
    translate3d(var(--tx),var(--ty),0)
    rotateX(var(--rx))
    rotateY(var(--ry));
  transform-style:preserve-3d;
  transition:transform .42s cubic-bezier(.2,.72,.18,1);
  will-change:transform;
}
.cursor-react .photo-mask,
.cursor-react .service-photo{
  transform:translateZ(0);
  transition:transform .45s cubic-bezier(.2,.72,.18,1);
}
.cursor-react.is-hovered .photo-mask,
.cursor-react.is-hovered .service-photo{
  transform:translateZ(18px);
}
.cursor-react img{
  will-change:transform;
}

/* Less uniform: editorial stagger while preserving clean ratios */
.feeling-grid{
  grid-template-columns:1.12fr .82fr 1fr!important;
  align-items:start;
}
.feeling-card:nth-child(2){margin-top:80px}
.feeling-card:nth-child(3){margin-top:28px}
.feeling-card:nth-child(1) .photo-mask{aspect-ratio:3/4!important}
.feeling-card:nth-child(2) .photo-mask{aspect-ratio:4/5!important}
.feeling-card:nth-child(3) .photo-mask{aspect-ratio:3/4!important}

.service-cards{
  grid-template-columns:1.15fr .85fr!important;
  align-items:start;
}
.service-card:nth-child(2){margin-top:100px}
.service-card:nth-child(3){margin-top:-25px}
.service-card:nth-child(4){margin-top:70px}
.service-card:nth-child(1) .service-photo{aspect-ratio:16/10!important}
.service-card:nth-child(2) .service-photo{aspect-ratio:4/5!important}
.service-card:nth-child(3) .service-photo{aspect-ratio:4/5!important}
.service-card:nth-child(4) .service-photo{aspect-ratio:16/10!important}

.heartbeat-grid{
  grid-template-columns:1.12fr .88fr 1fr!important;
  align-items:start;
  gap:28px 18px!important;
}
.heartbeat-card:nth-child(2),
.heartbeat-card:nth-child(5){margin-top:70px}
.heartbeat-card:nth-child(3){margin-top:24px}
.heartbeat-card:nth-child(4){margin-top:-20px}
.heartbeat-card:nth-child(1) .photo-mask,
.heartbeat-card:nth-child(6) .photo-mask{aspect-ratio:4/5!important}
.heartbeat-card:nth-child(2) .photo-mask,
.heartbeat-card:nth-child(5) .photo-mask{aspect-ratio:3/4!important}
.heartbeat-card:nth-child(3) .photo-mask,
.heartbeat-card:nth-child(4) .photo-mask{aspect-ratio:1/1.18!important}

/* Card hover content shifts independently */
.magnetic-card figcaption,
.magnetic-card .service-copy{
  transition:transform .45s cubic-bezier(.2,.72,.18,1);
}
.magnetic-card.is-hovered figcaption,
.magnetic-card.is-hovered .service-copy{
  transform:translate3d(8px,0,12px);
}

/* Global cursor glow follows pointer very softly */
body::after{
  content:"";
  position:fixed;
  left:var(--mx);top:var(--my);
  width:420px;height:420px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.11),rgba(255,255,255,0) 68%);
  pointer-events:none;
  z-index:5;
  mix-blend-mode:soft-light;
  opacity:.8;
}

/* Hero also breathes with cursor */
.hero-media img{
  transform:scale(1.03) translate3d(var(--hero-x,0px),var(--hero-y,0px),0);
  transition:transform .22s linear;
  will-change:transform;
}

/* Magnetic buttons/links */
.magnetic-link{
  display:inline-flex;
  transform:translate3d(var(--link-x,0px),var(--link-y,0px),0);
  transition:transform .18s ease-out;
}

/* Reviews feel less flat */
.review-card{
  transition:
    transform .42s cubic-bezier(.2,.72,.18,1),
    background .3s ease;
}
.review-card.is-hovered{
  background:#e3ded4;
}

/* Ensure scroll reveals remain cinematic */
.reveal-photo.in .photo-mask::after{
  animation-duration:1.15s!important;
}
.reveal-photo.in img{
  animation-duration:1.7s!important;
}

/* Touch/mobile: no cursor effects, no awkward staggering */
@media (hover:none), (pointer:coarse), (max-width:800px){
  .cursor-orbit{display:none!important}
  body::after{display:none!important}
  .cursor-react{
    transform:none!important;
    transition:none!important;
  }
  .feeling-grid,
  .service-cards,
  .heartbeat-grid{
    grid-template-columns:1fr!important;
  }
  .feeling-card,
  .service-card,
  .heartbeat-card{
    margin-top:0!important;
  }
}


/* =========================================================
   FRESH V1.3 — CONTENT ONLY EXPANSION
   Existing visual language preserved. Adds internal page structure,
   Instagram section, GMB panel and soft nav text motion.
   ========================================================= */

/* soft clickable text animation in header */
.nav-soft{
  position:relative;
  display:inline-block;
  transition:transform .32s cubic-bezier(.2,.75,.2,1), opacity .32s ease;
}
.nav-soft::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-5px;
  width:100%;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .38s cubic-bezier(.2,.75,.2,1);
  opacity:.7;
}
.nav-soft:hover{transform:translateY(-2px)}
.nav-soft:hover::after,.nav-soft.active::after{
  transform:scaleX(1);
  transform-origin:left;
}

/* Homepage Instagram */
.instagram-home{
  padding:150px 7vw;
  background:#efede7;
}
.insta-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.insta-post{
  position:relative;
  overflow:hidden;
  aspect-ratio:1/1.18;
  background:#111;
}
.insta-post img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.72,.18,1);
}
.insta-post span{
  position:absolute;right:16px;top:14px;
  width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(248,246,240,.9);
  color:#171714;font-size:15px;
  transform:scale(.8);opacity:0;
  transition:.35s ease;
}
.insta-post:hover img{transform:scale(1.045)}
.insta-post:hover span{opacity:1;transform:scale(1)}
.instagram-follow{
  margin-top:36px;
  min-height:58px;
  padding:0 24px;
  border:1px solid #8f8c84;
  display:flex;align-items:center;justify-content:space-between;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
}

/* Internal page language */
.inner-page{background:#efede7;color:#171714}
.inner-hero{
  min-height:760px;
  padding:160px 7vw 90px;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:7vw;
  align-items:end;
}
.inner-hero-copy h1{
  font-family:Italiana,serif;
  font-size:clamp(58px,7.4vw,130px);
  line-height:.88;
  font-weight:400;
  margin:28px 0 32px;
}
.inner-hero-copy em,.editorial-section em,.section-head em,
.branch-section em,.contact-detail-section em{font-weight:400}
.inner-hero-copy>p{
  max-width:460px;font-size:13px;line-height:1.8;color:#65625b;
}
.inner-hero-media{
  overflow:hidden;
  height:600px;
}
.inner-hero-media img{width:100%;height:100%;object-fit:cover}

.editorial-section,.all-services,.gallery-categories,.videos-section,
.blog-list,.contact-detail-section,.team-section,.branch-section,
.contact-form-demo,.shoot-intro{
  padding:130px 7vw;
}
.editorial-grid{
  display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;
}
.editorial-grid h2,.team-section h2,.branch-section h2,
.contact-detail-section h2,.contact-form-demo h2,.shoot-copy h2{
  font-family:Italiana,serif;
  font-size:clamp(48px,6vw,95px);
  line-height:.95;font-weight:400;margin:22px 0;
}
.copy-stack{max-width:620px}
.copy-stack p,.shoot-copy p,.branch-section p{
  font-size:13px;line-height:1.9;color:#5f5d57;margin:0 0 24px;
}
.section-number{
  font-family:Italiana,serif;font-size:92px;line-height:.8;margin-bottom:50px;
}
.stats-section{
  padding:80px 7vw 140px;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid #bdbab2;
}
.stats-section div{padding:28px 20px 28px 0}
.stats-section strong{
  display:block;font-family:Italiana,serif;font-size:55px;font-weight:400
}
.stats-section span{font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.team-card{
  min-height:300px;padding:30px;background:#dedbd3;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.team-card span{margin-bottom:auto;font-size:9px}
.team-card h3{font-family:Italiana,serif;font-size:42px;font-weight:400;margin:0 0 10px}
.team-card p{font-size:10px;letter-spacing:.12em;text-transform:uppercase}

.inner-contact-card{
  margin:0 7vw 140px;
  padding:44px;
  background:#171714;
  color:#f3f1ea;
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:18px 40px;
}
.inner-contact-card h3{font-family:Italiana,serif;font-size:34px;font-weight:400;margin:8px 0}
.inner-contact-card p{font-size:11px;line-height:1.7;color:#aaa79e}
.inner-contact-card a{color:#f3f1ea;font-size:11px;align-self:end}

.all-services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.full-service-card{display:block;background:#d7d4cc}
.full-service-image{overflow:hidden;aspect-ratio:16/10}
.full-service-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.full-service-card:hover img{transform:scale(1.035)}
.full-service-copy{
  display:grid;grid-template-columns:40px 1fr 1.2fr 30px;gap:16px;
  align-items:center;padding:24px;
}
.full-service-copy h3{font-family:Italiana,serif;font-size:30px;font-weight:400;margin:0}
.full-service-copy p{font-size:10px;line-height:1.55;color:#62605a;margin:0}

.gallery-category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery-category{display:block}
.gallery-category-image{height:440px;overflow:hidden;background:#222}
.gallery-category-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.gallery-category:hover img{transform:scale(1.04)}
.gallery-category-copy{
  display:grid;grid-template-columns:32px 1fr auto;align-items:center;
  border-top:1px solid #aaa79f;padding-top:14px;margin-top:12px
}
.gallery-category-copy h3{font-family:Italiana,serif;font-size:25px;font-weight:400;margin:0}
.gallery-category-copy span,.gallery-category-copy b{font-size:8px;letter-spacing:.12em;text-transform:uppercase}

.shoot-intro{display:grid;grid-template-columns:.3fr 1fr;gap:5vw}
.shoot-copy{max-width:720px}
.shoot-grid{
  padding:0 7vw 140px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px
}
.shoot-photo{margin:0;overflow:hidden;aspect-ratio:3/4}
.shoot-photo:nth-child(3n+2){margin-top:80px}
.shoot-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.shoot-photo:hover img{transform:scale(1.04)}

.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.video-card{aspect-ratio:16/9;background:#111}
.video-card iframe{width:100%;height:100%;border:0}

.blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.blog-card{
  padding:34px;background:#ddd9d1;min-height:360px;
  display:flex;flex-direction:column
}
.blog-card>span{font-size:8px;letter-spacing:.15em;text-transform:uppercase}
.blog-card h3{font-family:Italiana,serif;font-size:36px;line-height:1.08;font-weight:400}
.blog-card p{font-size:11px;line-height:1.75;color:#625f58}
.blog-card a{margin-top:auto;font-size:9px;letter-spacing:.12em;text-transform:uppercase}

.contact-detail-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:6vw}
.contact-main{align-self:center}
.contact-main p{font-size:12px;line-height:1.8;color:#625f58}
.contact-main>a{display:block;margin-top:10px}
.gmb-actions{margin-top:42px}
.gmb-actions .big-btn{max-width:360px}
.gmb-actions .text-link{display:inline-block;margin-top:22px}
.gmb-panel{background:#171714;padding:18px}
.gmb-rating{display:flex;align-items:center;gap:15px;color:#f4f2eb;padding:5px 5px 18px}
.gmb-rating strong{font-family:Italiana,serif;font-size:50px;font-weight:400}
.gmb-rating span{letter-spacing:.08em}
.gmb-rating small{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#aaa}
.gmb-panel iframe{width:100%;height:520px;border:0}
.branch-section{border-top:1px solid #bbb8b0}
.contact-form-demo form{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;
  max-width:900px
}
.contact-form-demo input,.contact-form-demo select{
  min-height:58px;border:0;border-bottom:1px solid #9f9b92;
  background:transparent;padding:0 4px;font:inherit
}
.contact-form-demo button{
  min-height:58px;border:1px solid #171714;background:#171714;color:#fff;
  grid-column:1/-1;cursor:pointer
}

/* make data-href service cards clearly interactive without changing appearance */
.service-card[data-href]{cursor:pointer}

/* Responsive */
@media(max-width:900px){
  .inner-hero{grid-template-columns:1fr;min-height:auto;padding-top:130px}
  .inner-hero-media{height:520px}
  .editorial-grid,.contact-detail-grid{grid-template-columns:1fr}
  .stats-section{grid-template-columns:1fr 1fr}
  .gallery-category-grid{grid-template-columns:1fr 1fr}
  .all-services-grid,.video-grid,.blog-grid{grid-template-columns:1fr}
  .inner-contact-card{grid-template-columns:1fr}
  .shoot-grid{grid-template-columns:1fr 1fr}
  .shoot-photo:nth-child(3n+2){margin-top:0}
}
@media(max-width:700px){
  .insta-grid{grid-template-columns:1fr 1fr}
  .gallery-category-grid,.shoot-grid,.team-grid{grid-template-columns:1fr}
  .stats-section{grid-template-columns:1fr 1fr}
  .gallery-category-image{height:500px}
  .contact-form-demo form{grid-template-columns:1fr}
}


/* =========================================================
   FRESH V1.4 — HOME STORY + ANIMATED STATS
   Matches the approved About-page visual language.
   ========================================================= */
.home-story-stats{
  background:#efede7;
  color:#171714;
  border-top:1px solid #c7c3ba;
  border-bottom:1px solid #c7c3ba;
}
.home-story-top{
  padding:118px 6.3vw 125px;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:9vw;
  align-items:start;
}
.home-story-number{
  font-family:Italiana,serif;
  font-size:56px;
  line-height:.9;
  margin-bottom:38px;
}
.home-story-left .eyebrow{
  margin-bottom:38px;
}
.home-story-left h2{
  font-family:Italiana,serif;
  font-size:clamp(52px,6vw,94px);
  line-height:.88;
  font-weight:400;
  margin:0;
  letter-spacing:-.035em;
}
.home-story-left h2 em{
  font-weight:400;
  color:#d9ad3f;
}
.home-story-copy{
  padding-top:68px;
  max-width:560px;
}
.home-story-copy p{
  margin:0 0 31px;
  font-size:11px;
  line-height:1.85;
  color:#67635c;
}
.home-stat-row{
  border-top:1px solid #c7c3ba;
  padding:82px 6.3vw 92px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:40px;
}
.home-stat strong{
  display:block;
  font-family:Italiana,serif;
  font-size:50px;
  line-height:1;
  font-weight:400;
  letter-spacing:-.03em;
  min-height:52px;
  font-variant-numeric:tabular-nums;
}
.home-stat span{
  display:block;
  margin-top:14px;
  font-size:7px;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:#5f5c55;
}

/* tiny entrance on the whole block */
.home-story-stats .home-story-left,
.home-story-stats .home-story-copy,
.home-story-stats .home-stat{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .8s ease, transform .9s cubic-bezier(.2,.72,.18,1);
}
.home-story-stats.in .home-story-left,
.home-story-stats.in .home-story-copy,
.home-story-stats.in .home-stat{
  opacity:1;
  transform:none;
}
.home-story-stats.in .home-story-copy{transition-delay:.12s}
.home-story-stats.in .home-stat:nth-child(1){transition-delay:.10s}
.home-story-stats.in .home-stat:nth-child(2){transition-delay:.18s}
.home-story-stats.in .home-stat:nth-child(3){transition-delay:.26s}
.home-story-stats.in .home-stat:nth-child(4){transition-delay:.34s}

@media(max-width:900px){
  .home-story-top{grid-template-columns:1fr;gap:20px;padding:90px 22px}
  .home-story-copy{padding-top:12px;max-width:none}
  .home-stat-row{grid-template-columns:1fr 1fr;padding:60px 22px 70px;gap:40px 20px}
}
@media(max-width:520px){
  .home-story-left h2{font-size:52px}
  .home-story-number{font-size:44px}
  .home-stat strong{font-size:42px}
}


/* =========================================================
   FRESH V1.5 — PROFESSIONAL POLISH
   Instagram compact, reviews glitch fix, header separation,
   footer micro-motion.
   ========================================================= */

/* ---------- Header: clearly separated from page content ---------- */
.site-header{
  background:rgba(239,237,231,.92)!important;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(23,23,20,.14);
  box-shadow:0 8px 28px rgba(23,23,20,.045);
}
.site-header::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(23,23,20,.18),transparent);
  pointer-events:none;
}
.inner-page{
  padding-top:1px;
}
.inner-hero{
  padding-top:190px!important;
}
.site-header nav{
  display:flex;
  gap:26px;
  align-items:center;
}
.site-header nav a{
  padding:8px 0;
}
.site-header nav a.active{
  font-weight:500;
}

/* ---------- Instagram: smaller, cleaner, premium ---------- */
.instagram-home{
  padding:105px 7vw 115px!important;
}
.instagram-home .section-head{
  max-width:900px;
  margin-bottom:42px;
}
.instagram-home .section-head h2{
  font-size:clamp(44px,5vw,76px);
}
.instagram-home .section-head p{
  max-width:560px;
  font-size:11px;
  line-height:1.7;
  color:#69665f;
}
.insta-grid{
  grid-template-columns:repeat(6,1fr)!important;
  gap:8px!important;
}
.insta-post{
  aspect-ratio:1/1!important;
  min-width:0;
}
.insta-post img{
  object-position:center;
}
.insta-post span{
  width:30px!important;
  height:30px!important;
  right:10px!important;
  top:10px!important;
  font-size:12px!important;
}
.instagram-follow{
  margin-top:24px!important;
  min-height:48px!important;
  max-width:320px;
  padding:0 18px!important;
  font-size:9px!important;
  letter-spacing:.13em!important;
  background:transparent;
  transition:background .3s ease,color .3s ease,border-color .3s ease,transform .25s ease;
}
.instagram-follow:hover{
  background:#171714;
  color:#f5f2eb;
  border-color:#171714;
  transform:translateY(-2px);
}

/* ---------- Reviews: fix text collision / clipping ---------- */
.reviews{
  overflow:hidden!important;
  align-items:start!important;
}
.review-window{
  overflow:hidden!important;
  min-width:0!important;
  padding-bottom:4px;
}
.review-track{
  align-items:stretch!important;
}
.review-card{
  min-width:0!important;
  overflow:hidden!important;
  height:auto!important;
  min-height:420px!important;
  padding:28px 28px 26px!important;
}
.review-card>p{
  font-size:clamp(24px,2.05vw,31px)!important;
  line-height:1.28!important;
  margin:42px 0 34px!important;
  overflow-wrap:anywhere;
  word-break:normal;
}
.review-card footer{
  flex-wrap:wrap!important;
  row-gap:7px!important;
}
.review-card footer b,
.review-card footer span{
  white-space:normal!important;
}
.review-top{
  gap:16px;
  flex-wrap:wrap;
}
.review-controls{
  margin-top:42px!important;
}

/* prevent cursor 3D transforms from breaking slider text/layout */
.review-card.cursor-react{
  transform:none!important;
}
.review-card.cursor-react.is-hovered{
  transform:translateY(-4px)!important;
}
.review-card.cursor-react .photo-mask{
  transform:none!important;
}

/* ---------- Footer: premium soft animation ---------- */
footer{
  position:relative;
  overflow:hidden;
}
footer a{
  position:relative;
  display:inline-block;
  transition:transform .3s cubic-bezier(.2,.75,.2,1),opacity .3s ease;
}
footer a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  width:100%;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .38s cubic-bezier(.2,.75,.2,1);
  opacity:.7;
}
footer a:hover{
  transform:translateY(-2px);
}
footer a:hover::after{
  transform:scaleX(1);
  transform-origin:left;
}
.footer-word{
  will-change:transform,opacity;
  transition:transform .7s cubic-bezier(.2,.75,.2,1),opacity .7s ease,letter-spacing .7s ease;
}
footer.footer-in .footer-word{
  transform:translateY(0);
  opacity:.16;
  letter-spacing:-.04em;
}
footer:not(.footer-in) .footer-word{
  transform:translateY(34px);
  opacity:0;
  letter-spacing:.02em;
}
footer>div:not(.footer-word){
  transition:transform .6s cubic-bezier(.2,.75,.2,1),opacity .6s ease;
}
footer:not(.footer-in)>div:not(.footer-word){
  opacity:0;
  transform:translateY(18px);
}
footer.footer-in>div:not(.footer-word){
  opacity:1;
  transform:none;
}
footer.footer-in>div:nth-child(2){transition-delay:.08s}
footer.footer-in>div:nth-child(3){transition-delay:.16s}

/* ---------- mobile ---------- */
@media(max-width:1000px){
  .insta-grid{grid-template-columns:repeat(3,1fr)!important}
}
@media(max-width:700px){
  .site-header{
    background:rgba(239,237,231,.97)!important;
  }
  .inner-hero{padding-top:145px!important}
  .instagram-home{padding:82px 22px 90px!important}
  .insta-grid{grid-template-columns:repeat(2,1fr)!important}
  .review-card{
    min-height:360px!important;
    padding:24px!important;
  }
  .review-card>p{
    font-size:24px!important;
    margin:34px 0 28px!important;
  }
}


/* =========================================================
   V1.6 — BUGFIX + PROFESSIONAL POLISH
   ========================================================= */

/* Header is visually integrated at page top; separates only after scroll */
.site-header{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-bottom:1px solid transparent!important;
  box-shadow:none!important;
  transition:
    background .42s ease,
    backdrop-filter .42s ease,
    border-color .42s ease,
    box-shadow .42s ease,
    padding .35s ease!important;
}
.site-header::after{opacity:0!important;transition:opacity .35s ease!important}
.site-header.is-scrolled{
  background:rgba(239,237,231,.93)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
  border-bottom-color:rgba(23,23,20,.12)!important;
  box-shadow:0 10px 32px rgba(23,23,20,.05)!important;
}
.site-header.is-scrolled::after{opacity:1!important}
.inner-hero{padding-top:160px!important}

/* Instagram — compact editorial mosaic, not a giant grid */
.instagram-home.instagram-pro{
  padding:105px 7vw 118px!important;
  background:#efede7;
}
.instagram-head{
  display:grid;
  grid-template-columns:1fr auto;
  gap:40px;
  align-items:end;
  margin-bottom:38px;
}
.instagram-head h2{
  font-family:Italiana,serif;
  font-size:clamp(44px,5.2vw,78px);
  line-height:.92;
  font-weight:400;
  margin:22px 0 14px;
}
.instagram-head h2 em{font-weight:400}
.instagram-head p{
  max-width:540px;
  font-size:10px;
  line-height:1.7;
  color:#66635c;
}
.instagram-head .instagram-follow{
  width:260px;
  margin:0!important;
}
.insta-editorial{
  display:grid;
  grid-template-columns:1.1fr .7fr .9fr .7fr 1fr;
  gap:9px;
  align-items:end;
  max-width:1400px;
}
.insta-editorial .insta-post{
  display:block;
  position:relative;
  overflow:hidden;
  min-width:0;
  aspect-ratio:auto!important;
  background:#171714;
}
.insta-a{height:330px}
.insta-b{height:255px}
.insta-c{height:385px}
.insta-d{height:275px}
.insta-e{height:335px}
.insta-editorial .insta-post img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .75s cubic-bezier(.2,.72,.18,1);
}
.insta-editorial .insta-post:hover img{transform:scale(1.045)}
.insta-editorial .insta-post span{
  position:absolute;
  right:11px;top:11px;
  width:31px;height:31px;
  display:grid;place-items:center;
  border-radius:50%;
  background:rgba(244,241,233,.92);
  color:#171714;
  opacity:0;transform:scale(.78);
  transition:.3s ease;
}
.insta-editorial .insta-post:hover span{opacity:1;transform:scale(1)}

/* Reviews — one clean card at a time: no nested footer, no 3D transform collision */
.reviews-clean{
  grid-template-columns:.8fr 1.2fr!important;
  gap:6vw!important;
  overflow:hidden!important;
}
.reviews-clean .review-window{
  min-width:0!important;
  width:100%;
  overflow:hidden!important;
}
.reviews-clean .review-track{
  display:flex!important;
  gap:0!important;
  width:100%;
  align-items:stretch;
  transition:transform .68s cubic-bezier(.22,.72,.18,1)!important;
  will-change:transform;
}
.reviews-clean .review-card{
  flex:0 0 100%!important;
  width:100%!important;
  min-width:100%!important;
  min-height:455px!important;
  box-sizing:border-box;
  overflow:hidden!important;
  padding:31px 34px 28px!important;
  background:#f4f1ea;
  border:1px solid #c6c1b7;
  display:flex!important;
  flex-direction:column;
  justify-content:space-between;
  transform:none!important;
}
.reviews-clean .review-card>p{
  font-family:Italiana,serif;
  font-size:clamp(27px,2.45vw,43px)!important;
  line-height:1.16!important;
  margin:48px 0 42px!important;
  max-width:100%;
  overflow-wrap:normal;
  word-break:normal;
}
.reviews-clean .review-author{
  border-top:1px solid #bbb5ab;
  padding-top:18px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
}
.reviews-clean .review-author b,
.reviews-clean .review-author span{
  font-family:"DM Sans",sans-serif;
  font-size:8px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#67635d;
}
.reviews-clean .review-author b{font-weight:500}
.reviews-clean .review-top{
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:8px;
  letter-spacing:.15em;
}
.reviews-clean .review-progress i{width:25%}

/* Proper footer must always be separate and visible */
.site-footer{
  position:relative!important;
  display:grid!important;
  grid-template-columns:1.1fr .65fr 1.1fr!important;
  gap:40px!important;
  min-height:380px!important;
  padding:70px 7vw 125px!important;
  background:#171714!important;
  color:#efede7!important;
  overflow:hidden!important;
  z-index:1;
}
.site-footer .footer-brand>span{
  font-family:Italiana,serif;
  font-size:28px;
}
.site-footer p,.site-footer small,.site-footer a{color:#aaa79f!important}
.site-footer .footer-nav{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}
.site-footer .footer-social{text-align:right}
.site-footer .footer-word{
  position:absolute;
  left:50%;bottom:-36px;
  transform:translateX(-50%) translateY(34px);
  width:100%;
  text-align:center;
  font-family:Italiana,serif;
  font-size:clamp(100px,15vw,260px);
  line-height:.78;
  color:#efede7;
  opacity:0;
  pointer-events:none;
  white-space:nowrap;
}
.site-footer.footer-in .footer-word{
  transform:translateX(-50%) translateY(0)!important;
  opacity:.07!important;
}
.site-footer:not(.footer-in)>div:not(.footer-word){
  opacity:0;
  transform:translateY(18px);
}
.site-footer.footer-in>div:not(.footer-word){
  opacity:1;
  transform:none;
}

/* Footer links soft motion */
.site-footer a{
  position:relative;
  display:inline-block;
  transition:transform .3s cubic-bezier(.2,.75,.2,1),opacity .3s ease;
}
.site-footer a::after{
  content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .36s cubic-bezier(.2,.75,.2,1);opacity:.7
}
.site-footer a:hover{transform:translateY(-2px)}
.site-footer a:hover::after{transform:scaleX(1);transform-origin:left}

@media(max-width:1000px){
  .insta-editorial{
    grid-template-columns:repeat(3,1fr);
  }
  .insta-a,.insta-b,.insta-c,.insta-d,.insta-e{height:280px}
  .insta-c{height:340px}
}
@media(max-width:800px){
  .reviews-clean{grid-template-columns:1fr!important}
  .reviews-clean .review-card{min-height:380px!important}
  .reviews-clean .review-card>p{font-size:27px!important}
  .instagram-head{grid-template-columns:1fr}
  .instagram-head .instagram-follow{width:100%}
  .site-footer{grid-template-columns:1fr!important;min-height:480px!important}
  .site-footer .footer-social{text-align:left}
}
@media(max-width:600px){
  .insta-editorial{grid-template-columns:1fr 1fr}
  .insta-a,.insta-b,.insta-c,.insta-d,.insta-e{height:230px}
  .insta-c{grid-column:1/-1;height:300px}
}


/* =========================================================
   V1.7 — faster intro handoff + rotating hero + scroll cue
   ========================================================= */

/* Website should already be visually ready behind the opening loader. */
.hero{
  background:#111;
}
.hero-slides{
  position:absolute;
  inset:0;
  overflow:hidden;
}
.hero-slide{
  position:absolute!important;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 43%;
  opacity:0;
  transform:scale(1.035);
  filter:brightness(.88);
  animation:none!important;
  transition:
    opacity 1.15s cubic-bezier(.2,.72,.18,1),
    transform 6.2s cubic-bezier(.2,.72,.18,1),
    filter 1.1s ease;
  will-change:opacity,transform;
}
.hero-slide.active{
  opacity:1;
  transform:scale(1);
  filter:brightness(1);
}
.hero-slide:nth-child(2){object-position:center 48%}
.hero-slide:nth-child(3){object-position:center 45%}
.hero-slide:nth-child(4){object-position:center 44%}
.hero-slide:nth-child(5){object-position:center 50%}

/* remove the old delayed single-image reveal */
.hero-img{
  animation:none!important;
}

/* Faster, cleaner handoff after logo: no blank waiting time */
.aperture-loader{
  transition:opacity .24s ease,visibility 0s linear .24s!important;
}
.aperture-loader.done{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.aperture-loader.phase-two .loader-panel-top,
.aperture-loader.phase-two .loader-panel-bottom{
  animation-duration:.56s!important;
}
.aperture-loader.phase-two .aperture-intro{
  animation-duration:.44s!important;
}

/* Smooth animated scroll cue */
.scroll-cue{
  display:inline-flex;
  align-items:center;
  gap:9px;
  position:relative;
}
.scroll-cue i{
  display:inline-block;
  font-style:normal;
  animation:v17ScrollArrow 1.45s cubic-bezier(.4,0,.2,1) infinite;
}
.scroll-cue::after{
  content:"";
  position:absolute;
  left:0;
  right:23px;
  bottom:-7px;
  height:1px;
  background:rgba(255,255,255,.55);
  transform-origin:left;
  animation:v17ScrollLine 2.1s ease-in-out infinite;
}
@keyframes v17ScrollArrow{
  0%,100%{transform:translateY(-2px);opacity:.5}
  50%{transform:translateY(5px);opacity:1}
}
@keyframes v17ScrollLine{
  0%,100%{transform:scaleX(.22);opacity:.25}
  50%{transform:scaleX(1);opacity:.75}
}

@media(prefers-reduced-motion:reduce){
  .hero-slide{transition:none!important}
  .scroll-cue i,.scroll-cue::after{animation:none!important}
}


/* =========================================================
   V1.8 — CINEMATIC LOWER HOMEPAGE
   Inspired by the supplied reference video: spacious editorial
   video highlight, wide visual story strip, and staggered expertise cards.
   ========================================================= */
.cinematic-highlights{
  background:#f2efe8;
  color:#171714;
  padding:125px 0 145px;
  overflow:hidden;
}
.cinematic-head{
  text-align:center;
  max-width:760px;
  margin:0 auto 52px;
  padding:0 24px;
}
.cinematic-head h2{
  font-family:Italiana,serif;
  font-size:clamp(48px,5.3vw,82px);
  line-height:.92;
  font-weight:400;
  margin:20px 0 18px;
}
.cinematic-head h2 em{font-weight:400}
.cinematic-head p{
  max-width:560px;
  margin:0 auto;
  color:#6a675f;
  font-size:10px;
  line-height:1.8;
}

/* compact centered cinema window like the reference */
.cinematic-stage{
  width:min(740px,76vw);
  margin:0 auto 115px;
  position:relative;
}
.cinematic-stage::before{
  content:"";
  position:absolute;
  inset:-18px -22px;
  border:1px solid rgba(23,23,20,.12);
  pointer-events:none;
}
.cinematic-frame{
  aspect-ratio:16/9;
  overflow:hidden;
  background:#111;
}
.cinematic-frame iframe,
.cinematic-frame video{
  width:100%;
  height:100%;
  border:0;
  display:block;
  object-fit:cover;
  background:#111;
}
.cinematic-frame video{cursor:pointer}

/* full-width horizontal visual story strip */
.story-panorama{
  width:100%;
  height:470px;
  position:relative;
  overflow:hidden;
  margin-bottom:125px;
}
.story-panorama img{
  width:100%;
  height:118%;
  object-fit:cover;
  object-position:center 44%;
  transform:translateY(var(--pan-y,0px)) scale(1.035);
  will-change:transform;
}
.story-panorama-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(11,11,10,.62),rgba(11,11,10,.18) 48%,rgba(11,11,10,.45));
}
.story-panorama-copy{
  position:absolute;
  left:7vw;
  top:50%;
  transform:translateY(-50%);
  max-width:520px;
  color:#fff;
}
.story-panorama-copy>span{
  font-size:8px;
  letter-spacing:.16em;
}
.story-panorama-copy h3{
  font-family:Italiana,serif;
  font-size:clamp(48px,5vw,80px);
  line-height:.9;
  font-weight:400;
  margin:18px 0 15px;
}
.story-panorama-copy p{
  max-width:430px;
  font-size:10px;
  line-height:1.7;
  color:rgba(255,255,255,.76);
}

/* expertise cards */
.expertise-block{
  padding:0 7vw;
}
.expertise-head{
  text-align:center;
  margin-bottom:52px;
}
.expertise-head h3{
  font-family:Italiana,serif;
  font-size:clamp(45px,5vw,76px);
  line-height:.95;
  font-weight:400;
  margin:18px 0 0;
}
.expertise-head h3 em{font-weight:400}
.expertise-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  align-items:start;
  max-width:1180px;
  margin:0 auto;
}
.expertise-card{
  display:block;
  color:inherit;
}
.expertise-card.lift-card{margin-top:54px}
.expertise-img{
  overflow:hidden;
  aspect-ratio:3/4;
  background:#111;
  margin-bottom:16px;
}
.expertise-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .9s cubic-bezier(.2,.72,.18,1);
}
.expertise-card:hover .expertise-img img{transform:scale(1.045)}
.expertise-card>span{
  display:block;
  font-size:8px;
  letter-spacing:.14em;
  margin-bottom:8px;
}
.expertise-card h4{
  font-family:Italiana,serif;
  font-size:30px;
  font-weight:400;
  margin:0 0 7px;
}
.expertise-card p{
  font-size:9px;
  line-height:1.6;
  color:#6b6861;
  max-width:270px;
}

/* Scroll entrance motion */
.cinematic-head,
.cinematic-stage,
.story-panorama,
.expertise-head,
.expertise-card{
  opacity:0;
  transform:translateY(28px);
  transition:
    opacity .85s ease,
    transform 1s cubic-bezier(.2,.72,.18,1);
}
.cinematic-highlights.in .cinematic-head,
.cinematic-highlights.in .cinematic-stage,
.cinematic-highlights.in .story-panorama,
.cinematic-highlights.in .expertise-head,
.cinematic-highlights.in .expertise-card{
  opacity:1;
  transform:none;
}
.cinematic-highlights.in .cinematic-stage{transition-delay:.09s}
.cinematic-highlights.in .story-panorama{transition-delay:.16s}
.cinematic-highlights.in .expertise-head{transition-delay:.22s}
.cinematic-highlights.in .expertise-card:nth-child(1){transition-delay:.28s}
.cinematic-highlights.in .expertise-card:nth-child(2){transition-delay:.36s}
.cinematic-highlights.in .expertise-card:nth-child(3){transition-delay:.44s}

@media(max-width:900px){
  .cinematic-stage{width:86vw;margin-bottom:90px}
  .story-panorama{height:390px;margin-bottom:95px}
  .expertise-cards{grid-template-columns:1fr 1fr}
  .expertise-card.lift-card{margin-top:0}
  .expertise-card:nth-child(3){grid-column:1/-1;max-width:52%;margin:0 auto}
}
@media(max-width:620px){
  .cinematic-highlights{padding:95px 0 105px}
  .cinematic-stage{width:90vw}
  .story-panorama{height:350px}
  .story-panorama-copy{left:22px;right:22px}
  .expertise-block{padding:0 22px}
  .expertise-cards{grid-template-columns:1fr}
  .expertise-card:nth-child(3){grid-column:auto;max-width:none}
}


/* =========================================================
   V1.9 — SEEING THE UNSEEN UPGRADE
   Taller panorama + mouse-follow image pan + 4 expertise cards
   ========================================================= */

/* Make the Seeing the unseen visual longer/taller */
.story-panorama{
  height:590px!important;
  cursor:crosshair;
}

/* Give image extra room so it can travel inside the frame */
.story-panorama img{
  width:112%!important;
  height:124%!important;
  max-width:none!important;
  margin-left:-6%;
  object-fit:cover;
  transform:
    translate3d(var(--mouse-pan-x,0px), calc(var(--pan-y,0px) + var(--mouse-pan-y,0px)), 0)
    scale(1.06)!important;
  transition:transform .16s linear;
  will-change:transform;
}

/* Tiny cue that the image responds to the pointer */
.story-panorama::after{
  content:"MOVE TO EXPLORE";
  position:absolute;
  right:24px;
  bottom:20px;
  z-index:3;
  color:rgba(255,255,255,.68);
  font-size:7px;
  letter-spacing:.18em;
  pointer-events:none;
  opacity:.75;
}

/* Four-card expertise layout */
.expertise-cards.expertise-cards-four{
  grid-template-columns:repeat(4,1fr)!important;
  gap:14px!important;
  max-width:1380px!important;
}
.expertise-cards-four .expertise-card:nth-child(2),
.expertise-cards-four .expertise-card:nth-child(4){
  margin-top:52px;
}
.expertise-cards-four .expertise-img{
  aspect-ratio:3/4.25;
}
.expertise-cards-four .expertise-card h4{
  font-size:26px;
}
.expertise-cards-four .expertise-card p{
  max-width:240px;
}

@media(max-width:1050px){
  .story-panorama{height:520px!important}
  .expertise-cards.expertise-cards-four{
    grid-template-columns:repeat(2,1fr)!important;
  }
  .expertise-cards-four .expertise-card:nth-child(2),
  .expertise-cards-four .expertise-card:nth-child(4){
    margin-top:35px;
  }
}
@media(max-width:620px){
  .story-panorama{height:430px!important}
  .story-panorama::after{display:none}
  .story-panorama img{
    width:100%!important;
    height:112%!important;
    margin-left:0!important;
    transform:translate3d(0,var(--pan-y,0px),0) scale(1.035)!important;
    transition:none!important;
  }
  .expertise-cards.expertise-cards-four{
    grid-template-columns:1fr!important;
  }
  .expertise-cards-four .expertise-card{
    margin-top:0!important;
  }
}

/* =========================================================
   V2.0 — SEEING THE UNSEEN / IMMERSIVE EDITORIAL INTERACTION
   Isolated upgrade only; rest of site remains unchanged.
   ========================================================= */
.story-panorama{
  --mx:0px; --my:0px; --rx:0deg; --ry:0deg; --zoom:1;
  height:min(76vh,760px)!important;
  min-height:590px;
  margin-top:18px;
  isolation:isolate;
  background:#171713;
  cursor:none;
}
.story-panorama .seeing-media{
  position:absolute;
  inset:-7%;
  overflow:hidden;
  transform:translate3d(var(--mx),var(--my),0) rotateX(var(--rx)) rotateY(var(--ry)) scale(var(--zoom));
  transform-origin:center;
  transition:transform .08s linear;
  will-change:transform;
}
.story-panorama .seeing-media img{
  width:100%!important;
  height:100%!important;
  margin:0!important;
  max-width:none!important;
  object-fit:cover;
  object-position:center 44%;
  transform:scale(1.08)!important;
  transition:transform 1.4s cubic-bezier(.16,1,.3,1)!important;
  will-change:transform;
}
.story-panorama:hover .seeing-media img{transform:scale(1.115)!important}
.story-panorama-shade{
  z-index:1;
  background:linear-gradient(90deg,rgba(9,9,8,.64) 0%,rgba(9,9,8,.13) 52%,rgba(9,9,8,.28) 100%)!important;
  transition:opacity .8s ease;
}
.story-panorama:hover .story-panorama-shade{opacity:.82}
.story-panorama-copy{z-index:3;pointer-events:none;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.story-panorama:hover .story-panorama-copy{transform:translateY(calc(-50% - 8px))}
.story-panorama-copy h3{font-size:clamp(58px,6.2vw,104px);letter-spacing:-.035em;max-width:720px}
.story-panorama-copy p{font-size:10px;max-width:480px}
.story-panorama::after{content:none!important}
.seeing-index{
  position:absolute;z-index:3;right:3vw;top:30px;color:#fff;display:flex;gap:18px;align-items:center;
  font-size:7px;letter-spacing:.18em;pointer-events:none
}
.seeing-index b{font-family:Italiana,serif;font-size:32px;font-weight:400;line-height:1}
.seeing-cue{
  position:absolute;z-index:4;right:3vw;bottom:28px;color:#fff;display:flex;align-items:center;gap:12px;
  font-size:7px;letter-spacing:.18em;pointer-events:none
}
.seeing-cue i{display:block;width:34px;height:1px;background:rgba(255,255,255,.7);transform-origin:right;animation:seeingCue 1.8s ease-in-out infinite}
@keyframes seeingCue{0%,100%{transform:scaleX(.35);opacity:.4}50%{transform:scaleX(1);opacity:1}}
.story-panorama.seeing-active .story-panorama-copy h3{animation:seeingTitle .7s cubic-bezier(.16,1,.3,1) both}
@keyframes seeingTitle{from{opacity:.75;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:900px){
 .story-panorama{height:560px!important;min-height:0;cursor:auto}
 .story-panorama .seeing-media{inset:-3%;transform:none!important;transition:none!important}
 .story-panorama .seeing-media img{transform:scale(1.04)!important}
 .seeing-index{right:22px}.seeing-cue{right:22px}
}
@media(max-width:620px){
 .story-panorama{height:470px!important}
 .story-panorama-copy h3{font-size:52px}
 .seeing-cue span{display:none}
}


/* =========================================================
   V2.1 — INNER HEADER / ALL-PAGE INTRO / 4 REVIEWS / SCROLL PHOTO
   ========================================================= */

/* Home stays transparent at top; the existing .is-scrolled rule separates it later. */
body:not(.inner-page) .site-header{color:#fff!important}

/* Inner pages: header must never visually mix with the page content. */
body.inner-page .site-header{
  position:fixed!important;
  top:0!important;left:0!important;width:100%!important;
  height:84px!important;
  z-index:8500!important;
  color:#171714!important;
  background:rgba(242,240,234,.965)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
  border-bottom:1px solid rgba(23,23,20,.13)!important;
  box-shadow:0 8px 30px rgba(23,23,20,.05)!important;
}
body.inner-page .site-header::after{opacity:1!important}
body.inner-page .site-header .brand img{filter:none!important}
body.inner-page .site-header .enquire{
  color:#171714!important;
  border-color:rgba(23,23,20,.3)!important;
}
body.inner-page .site-header .menu{color:#171714!important}
body.inner-page .inner-hero{padding-top:176px!important}

/* Loader sits above the fixed header on every page. */
.aperture-loader{z-index:12000!important}

/* Google Reviews: four clients visible at the same time on desktop. */
.reviews-clean{
  display:block!important;
  padding:110px 7vw 125px!important;
}
.reviews-clean .reviews-intro{
  display:grid!important;
  grid-template-columns:1fr auto!important;
  gap:40px!important;
  align-items:end!important;
  margin-bottom:46px!important;
}
.reviews-clean .reviews-intro .eyebrow{
  grid-column:1/-1!important;
  margin-bottom:0!important;
}
.reviews-clean .reviews-intro h2{
  font-size:clamp(50px,5vw,82px)!important;
}
.reviews-clean .rating{
  margin-top:0!important;
  justify-self:end!important;
}
.reviews-clean .review-controls{display:none!important}
.reviews-clean .review-window{
  width:100%!important;
  overflow:visible!important;
}
.reviews-clean .review-track{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  transform:none!important;
  transition:none!important;
  width:100%!important;
}
.reviews-clean .review-card{
  width:auto!important;
  min-width:0!important;
  min-height:330px!important;
  padding:22px 20px 20px!important;
  box-sizing:border-box!important;
}
.reviews-clean .review-card>p{
  font-size:clamp(19px,1.55vw,27px)!important;
  line-height:1.22!important;
  margin:34px 0 28px!important;
}
.reviews-clean .review-top{font-size:7px!important}
.reviews-clean .review-author{padding-top:14px!important}
.reviews-clean .review-author b,
.reviews-clean .review-author span{font-size:7px!important}

/* Seeing The Unseen: as the PAGE scrolls, reveal the photograph from its top to bottom. */
.story-panorama{
  height:min(88vh,860px)!important;
  min-height:680px!important;
  overflow:hidden!important;
  cursor:auto!important;
}
.story-panorama .seeing-media{
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
  transform:none!important;
  transition:none!important;
}
.story-panorama .seeing-media img{
  position:absolute!important;
  left:0!important;top:0!important;
  width:100%!important;
  height:150%!important;
  max-width:none!important;
  margin:0!important;
  object-fit:cover!important;
  object-position:center top!important;
  transform:translate3d(0,var(--seeing-scroll-y,0px),0) scale(1.02)!important;
  transition:transform .1s linear!important;
  will-change:transform!important;
}
.story-panorama:hover .seeing-media img{
  transform:translate3d(0,var(--seeing-scroll-y,0px),0) scale(1.02)!important;
}
.story-panorama:hover .story-panorama-copy{
  transform:translateY(-50%)!important;
}
.story-panorama-shade{
  background:linear-gradient(90deg,rgba(9,9,8,.58) 0%,rgba(9,9,8,.09) 53%,rgba(9,9,8,.22) 100%)!important;
}
.story-panorama:hover .story-panorama-shade{opacity:1!important}

@media(max-width:1100px){
  .reviews-clean .review-track{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:800px){
  body.inner-page .site-header{height:70px!important}
  body.inner-page .inner-hero{padding-top:140px!important}
  .reviews-clean .reviews-intro{grid-template-columns:1fr!important}
  .reviews-clean .rating{justify-self:start!important}
  .story-panorama{min-height:560px!important;height:72vh!important}
}
@media(max-width:620px){
  .reviews-clean{padding:90px 22px!important}
  .reviews-clean .review-track{grid-template-columns:1fr!important}
  .reviews-clean .review-card{min-height:285px!important}
  .story-panorama{min-height:500px!important;height:66vh!important}
  .story-panorama .seeing-media img{height:134%!important}
}


/* =========================================================
   V2.1.1 — ONLY "FEELING, NOT JUST THE FRAME" SECTION FIX
   Fills the full horizontal composition without changing other sections.
   ========================================================= */
.feeling-gallery{
  padding-left:4vw!important;
  padding-right:4vw!important;
}
.feeling-gallery .feeling-meta{
  margin-left:3vw;
}

/* Five-image editorial spread so the right side no longer feels empty. */
.feeling-grid.feeling-grid-v211{
  display:grid!important;
  grid-template-columns:1.02fr .86fr 1.02fr .92fr .76fr!important;
  gap:14px!important;
  width:100%!important;
  align-items:start!important;
}

.feeling-grid-v211 .feeling-card{
  margin:0!important;
  min-width:0;
}

.feeling-grid-v211 .feeling-card:nth-child(1){margin-top:48px!important}
.feeling-grid-v211 .feeling-card:nth-child(2){margin-top:0!important}
.feeling-grid-v211 .feeling-card:nth-child(3){margin-top:48px!important}
.feeling-grid-v211 .feeling-card:nth-child(4){margin-top:0!important}
.feeling-grid-v211 .feeling-card:nth-child(5){margin-top:82px!important}

.feeling-grid-v211 .feeling-card:nth-child(1) .photo-mask{aspect-ratio:3/4!important}
.feeling-grid-v211 .feeling-card:nth-child(2) .photo-mask{aspect-ratio:3/4.15!important}
.feeling-grid-v211 .feeling-card:nth-child(3) .photo-mask{aspect-ratio:3/4!important}
.feeling-grid-v211 .feeling-card:nth-child(4) .photo-mask{aspect-ratio:3/4.15!important}
.feeling-grid-v211 .feeling-card:nth-child(5) .photo-mask{aspect-ratio:3/4!important}

.feeling-grid-v211 .photo-mask img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}

@media(max-width:1100px){
  .feeling-grid.feeling-grid-v211{
    grid-template-columns:repeat(3,1fr)!important;
  }
  .feeling-grid-v211 .feeling-card:nth-child(4),
  .feeling-grid-v211 .feeling-card:nth-child(5){
    margin-top:20px!important;
  }
}
@media(max-width:700px){
  .feeling-gallery{
    padding-left:22px!important;
    padding-right:22px!important;
  }
  .feeling-gallery .feeling-meta{margin-left:0!important}
  .feeling-grid.feeling-grid-v211{
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
  }
  .feeling-grid-v211 .feeling-card{
    margin-top:0!important;
  }
  .feeling-grid-v211 .feeling-card:nth-child(5){
    grid-column:1/-1;
    width:52%;
    justify-self:center;
  }
}


/* V2.1.2 — exact screenshot section: philosophy image strip */
.story-strip.story-strip-v212{
  width:100%;
  overflow:hidden!important;
  padding:0 0 150px!important;
  position:relative;
}

.strip-track.strip-track-v212{
  display:flex!important;
  width:max-content!important;
  gap:0!important;
  animation:v212StoryLoop 34s linear infinite!important;
  will-change:transform;
}

.strip-track-v212 .strip-set{
  display:flex;
  align-items:flex-start;
  gap:18px;
  padding-right:18px;
  flex:none;
}

.strip-track-v212 img{
  flex:none;
  width:clamp(280px,19vw,360px)!important;
  height:clamp(390px,27vw,500px)!important;
  object-fit:cover!important;
  display:block;
}

.strip-track-v212 img:nth-child(even){margin-top:70px!important}
.strip-track-v212 img:nth-child(3n){margin-top:28px!important}

@keyframes v212StoryLoop{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}

.story-strip-v212:hover .strip-track-v212{
  animation-play-state:paused!important;
}

@media(max-width:900px){
  .strip-track-v212 img{
    width:250px!important;
    height:350px!important;
  }
}
@media(max-width:620px){
  .story-strip.story-strip-v212{padding-bottom:105px!important}
  .strip-track-v212 .strip-set{gap:10px;padding-right:10px}
  .strip-track-v212 img{width:210px!important;height:300px!important}
  .strip-track-v212 img:nth-child(even){margin-top:42px!important}
}
@media(prefers-reduced-motion:reduce){
  .strip-track.strip-track-v212{animation:none!important}
}


/* =========================================================
   V2.1.3 — SITE-WIDE TYPOGRAPHY + HOME HEADER SCROLL FIX
   ========================================================= */

/* Remove cursive / italic treatment across the entire site.
   Keep the gold accent color, but use the same premium upright serif. */
em,
i:not(.cursor-dot):not(.cursor-ring):not(.progress i):not(.review-progress i),
.hero h1 em,
.intro h2 em,
.section-head h2 em,
.home-story-stats h2 em,
.statement blockquote em,
.cinematic-head h2 em,
.expertise-head h3 em,
.instagram-head h2 em,
.reviews h2 em,
.contact h2 em,
.inner-hero h1 em,
.inner-copy h2 em,
.service-copy h2 em,
.story-panorama-copy h3 em{
  font-style:normal!important;
  font-family:Italiana,serif!important;
  color:#d6aa3f!important;
  letter-spacing:-.025em!important;
}

/* Make all main editorial headings cleaner and more consistent. */
.hero h1,
.intro h2,
.section-head h2,
.home-story-stats h2,
.statement blockquote,
.cinematic-head h2,
.expertise-head h3,
.instagram-head h2,
.reviews h2,
.contact h2,
.inner-hero h1,
.inner-copy h2,
.service-copy h2,
.story-panorama-copy h3{
  font-family:Italiana,serif!important;
  font-style:normal!important;
  font-weight:400!important;
  letter-spacing:-.025em!important;
}

/* Home page header:
   transparent while at the top, then fixed and clearly visible after scroll. */
body:not(.inner-page) .site-header{
  position:absolute!important;
  top:0!important;
  left:0!important;
  width:100%!important;
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-bottom-color:transparent!important;
  box-shadow:none!important;
  transition:
    background .38s ease,
    backdrop-filter .38s ease,
    border-color .38s ease,
    box-shadow .38s ease,
    color .38s ease!important;
}

body:not(.inner-page) .site-header.is-scrolled{
  position:fixed!important;
  top:0!important;
  left:0!important;
  width:100%!important;
  z-index:9000!important;
  color:#171714!important;
  background:rgba(242,240,234,.96)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
  border-bottom:1px solid rgba(23,23,20,.13)!important;
  box-shadow:0 9px 30px rgba(23,23,20,.055)!important;
  animation:v213HeaderReveal .42s cubic-bezier(.16,1,.3,1) both;
}

body:not(.inner-page) .site-header.is-scrolled .brand img{
  filter:none!important;
}

body:not(.inner-page) .site-header.is-scrolled .enquire{
  color:#171714!important;
  border-color:rgba(23,23,20,.28)!important;
}

body:not(.inner-page) .site-header.is-scrolled .menu,
body:not(.inner-page) .site-header.is-scrolled a{
  color:#171714!important;
}

@keyframes v213HeaderReveal{
  from{
    transform:translateY(-100%);
    opacity:0;
  }
  to{
    transform:translateY(0);
    opacity:1;
  }
}

@media(prefers-reduced-motion:reduce){
  body:not(.inner-page) .site-header.is-scrolled{
    animation:none!important;
  }
}


/* =========================================================
   V2.1.4 — PHILOSOPHY SEAM FIX / FULL INSTAGRAM / DARK HEADER
   ========================================================= */

/* DARK fixed header after scroll on home */
body:not(.inner-page) .site-header.is-scrolled{
  position:fixed!important;
  top:0!important;
  left:0!important;
  width:100%!important;
  z-index:9000!important;
  color:#f4f1ea!important;
  background:rgba(17,17,15,.94)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 10px 34px rgba(0,0,0,.16)!important;
  transform:translateY(0)!important;
  opacity:1!important;
  animation:none!important;
  transition:
    background .42s ease,
    backdrop-filter .42s ease,
    border-color .42s ease,
    box-shadow .42s ease,
    color .42s ease,
    transform .42s cubic-bezier(.16,1,.3,1)!important;
}
body:not(.inner-page) .site-header.is-scrolled .menu,
body:not(.inner-page) .site-header.is-scrolled a,
body:not(.inner-page) .site-header.is-scrolled .enquire{
  color:#f4f1ea!important;
}
body:not(.inner-page) .site-header.is-scrolled .enquire{
  border-color:rgba(255,255,255,.28)!important;
}
body:not(.inner-page) .site-header.is-scrolled .brand img{
  filter:brightness(0) invert(1)!important;
}

/* PHILOSOPHY LOOP — exact two-copy seamless marquee */
.story-strip.story-strip-v214{
  width:100%!important;
  overflow:hidden!important;
  padding:0 0 150px!important;
}
.story-strip-v214 .strip-viewport{
  width:100%;
  overflow:hidden;
}
.story-strip-v214 .strip-track-v214{
  display:flex!important;
  width:max-content!important;
  gap:0!important;
  padding:0!important;
  margin:0!important;
  transform:translate3d(0,0,0);
  animation:v214SeamlessStrip 32s linear infinite!important;
  will-change:transform;
}
.story-strip-v214 .strip-set{
  display:flex!important;
  flex:none!important;
  gap:18px!important;
  padding:0 18px 0 0!important;
  margin:0!important;
  width:max-content!important;
}
.story-strip-v214 .strip-set-b{
  margin-left:0!important;
}
.story-strip-v214 img{
  display:block!important;
  flex:none!important;
  width:clamp(280px,19vw,360px)!important;
  height:clamp(390px,27vw,500px)!important;
  object-fit:cover!important;
  margin-left:0!important;
  margin-right:0!important;
}
.story-strip-v214 img:nth-child(even){margin-top:70px!important}
.story-strip-v214 img:nth-child(3n){margin-top:28px!important}
@keyframes v214SeamlessStrip{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}
.story-strip-v214:hover .strip-track-v214{
  animation-play-state:paused!important;
}

/* INSTAGRAM — full-width balanced row, no dead right space */
.instagram-home.instagram-v214{
  padding:105px 4vw 118px!important;
}
.instagram-v214 .instagram-head{
  margin-left:3vw!important;
  margin-right:3vw!important;
}
.insta-wide-grid{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:10px!important;
  width:100%!important;
  align-items:end!important;
}
.insta-wide-card{
  position:relative;
  display:block;
  overflow:hidden;
  background:#171714;
  min-width:0;
  height:320px;
}
.insta-wide-card:nth-child(2),
.insta-wide-card:nth-child(5){height:365px}
.insta-wide-card:nth-child(3),
.insta-wide-card:nth-child(6){height:295px}
.insta-wide-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .7s cubic-bezier(.2,.72,.18,1);
}
.insta-wide-card:hover img{transform:scale(1.045)}
.insta-wide-card span{
  position:absolute;
  top:11px;right:11px;
  width:31px;height:31px;
  display:grid;place-items:center;
  border-radius:50%;
  background:rgba(244,241,233,.92);
  color:#171714;
  opacity:0;
  transform:scale(.78);
  transition:.3s ease;
}
.insta-wide-card:hover span{opacity:1;transform:scale(1)}

@media(max-width:1100px){
  .insta-wide-grid{grid-template-columns:repeat(3,1fr)!important}
  .insta-wide-card{height:300px!important}
  .story-strip-v214 img{
    width:250px!important;
    height:350px!important;
  }
}
@media(max-width:700px){
  .insta-wide-grid{grid-template-columns:repeat(2,1fr)!important}
  .insta-wide-card{height:260px!important}
  .story-strip-v214 .strip-set{
    gap:10px!important;
    padding-right:10px!important;
  }
  .story-strip-v214 img{
    width:210px!important;
    height:300px!important;
  }
  .story-strip-v214 img:nth-child(even){margin-top:42px!important}
}
@media(prefers-reduced-motion:reduce){
  .story-strip-v214 .strip-track-v214{animation:none!important}
}


/* =========================================================
   V2.1.5 — TRUE SEAMLESS PHILOSOPHY STRIP
   JS-driven exact-width loop: no seam, no hover pause.
   ========================================================= */
.story-strip-v214 .strip-track-v214{
  animation:none!important;
  transform:translate3d(0,0,0);
}
.story-strip-v214:hover .strip-track-v214{
  animation-play-state:running!important;
}


/* =========================================================
   V2.1.6 — "ONE STORY. MANY CHAPTERS." SPACING FIX ONLY
   Reduce excessive vertical staggering/gaps while keeping
   the editorial up/down rhythm and existing interactions.
   ========================================================= */
.services{
  padding-bottom:110px!important;
}

.services .service-grid{
  align-items:start!important;
  gap:18px!important;
}

/* Pull staggered cards closer vertically. */
.services .service-card:nth-child(2),
.services .service-card:nth-child(4){
  margin-top:38px!important;
}

.services .service-card:nth-child(3){
  margin-top:10px!important;
}

/* Prevent oversized card/image spacing. */
.services .service-card{
  margin-bottom:0!important;
}

.services .service-card .service-img,
.services .service-card .photo-mask{
  margin-bottom:14px!important;
}

@media(max-width:900px){
  .services .service-card:nth-child(2),
  .services .service-card:nth-child(3),
  .services .service-card:nth-child(4){
    margin-top:18px!important;
  }
}

@media(max-width:620px){
  .services .service-grid{gap:14px!important}
  .services .service-card{
    margin-top:0!important;
  }
}


/* =========================================================
   V2.1.7 — "ONE STORY. MANY CHAPTERS." SIZE + LEFT GAP FIX
   Smaller cards, tighter stagger, reduced left-side vertical gap.
   ========================================================= */

.services{
  padding-top:95px!important;
  padding-bottom:90px!important;
}

.services .service-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:start!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Make all photo cards visibly smaller */
.services .service-card{
  width:100%!important;
  max-width:270px!important;
  justify-self:center!important;
  margin-bottom:0!important;
}

/* Keep a slight editorial stagger, but remove the large up/down gaps */
.services .service-card:nth-child(1){
  margin-top:12px!important;
}
.services .service-card:nth-child(2){
  margin-top:28px!important;
}
.services .service-card:nth-child(3){
  margin-top:8px!important;
}
.services .service-card:nth-child(4){
  margin-top:24px!important;
}

/* Reduce image height */
.services .service-card .service-img,
.services .service-card .photo-mask{
  aspect-ratio:3/3.85!important;
  min-height:0!important;
  height:auto!important;
  margin-bottom:10px!important;
  overflow:hidden!important;
}

.services .service-card img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}

/* Reduce text spacing below cards */
.services .service-card h3,
.services .service-card h4{
  margin-top:8px!important;
  margin-bottom:6px!important;
}
.services .service-card p{
  margin-top:0!important;
}

/* specifically tighten left-side vertical rhythm */
.services .service-card:nth-child(1),
.services .service-card:nth-child(3){
  transform:translateY(0)!important;
}

@media(max-width:1100px){
  .services .service-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    max-width:680px!important;
  }
  .services .service-card{
    max-width:280px!important;
  }
  .services .service-card:nth-child(1),
  .services .service-card:nth-child(2),
  .services .service-card:nth-child(3),
  .services .service-card:nth-child(4){
    margin-top:12px!important;
  }
}

@media(max-width:620px){
  .services{
    padding-top:75px!important;
    padding-bottom:75px!important;
  }
  .services .service-grid{
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
    max-width:none!important;
  }
  .services .service-card{
    max-width:none!important;
  }
  .services .service-card:nth-child(1),
  .services .service-card:nth-child(2),
  .services .service-card:nth-child(3),
  .services .service-card:nth-child(4){
    margin-top:0!important;
  }
}


/* =========================================================
   V2.1.8 — WHAT WE PHOTOGRAPH: UNIFORM GRID CORRECTION
   Screenshot-based fix: medium cards, same top line, even gaps.
   ========================================================= */
.services{
  padding:100px 5vw 115px!important;
}

.services .section-head{
  margin-bottom:64px!important;
}

/* Four cards in one clean horizontal row */
.services .service-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  column-gap:28px!important;
  row-gap:28px!important;
  align-items:start!important;
  max-width:1320px!important;
  width:100%!important;
  margin:0 auto!important;
}

/* Restore a useful premium size and make every card identical */
.services .service-card,
.services .service-card:nth-child(1),
.services .service-card:nth-child(2),
.services .service-card:nth-child(3),
.services .service-card:nth-child(4){
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  transform:none!important;
  align-self:start!important;
  justify-self:stretch!important;
}

/* Same image size/aspect on all four cards */
.services .service-card .service-img,
.services .service-card .photo-mask{
  width:100%!important;
  height:auto!important;
  aspect-ratio:4/4.65!important;
  min-height:0!important;
  margin:0 0 16px!important;
  overflow:hidden!important;
}

.services .service-card img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}

/* Consistent copy block height/rhythm */
.services .service-card h3,
.services .service-card h4{
  margin:8px 0 7px!important;
}
.services .service-card p{
  margin:0!important;
}

/* Tablet: still uniform, two by two */
@media(max-width:1000px){
  .services .service-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    max-width:760px!important;
    column-gap:24px!important;
    row-gap:38px!important;
  }
}

/* Mobile: single clean stack */
@media(max-width:620px){
  .services{
    padding:78px 6vw 90px!important;
  }
  .services .section-head{
    margin-bottom:42px!important;
  }
  .services .service-grid{
    grid-template-columns:1fr!important;
    max-width:420px!important;
    row-gap:30px!important;
  }
}


/* =========================================================
   V2.1.9 — EXACT FIX FOR .service-cards
   The previous patch targeted .service-grid, but this section
   actually uses .service-cards. This resets the old stagger.
   ========================================================= */

.services .service-cards{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:28px!important;
  align-items:start!important;
  width:100%!important;
  max-width:1480px!important;
  margin:0 auto!important;
}

/* Remove every old stagger/negative/extra margin from all 4 cards */
.services .service-cards .service-card,
.services .service-cards .service-card:nth-child(1),
.services .service-cards .service-card:nth-child(2),
.services .service-cards .service-card:nth-child(3),
.services .service-cards .service-card:nth-child(4){
  margin:0!important;
  transform:none!important;
  width:100%!important;
  max-width:none!important;
  align-self:start!important;
}

/* Uniform image proportions across all cards */
.services .service-cards .service-card .service-photo,
.services .service-cards .service-card:nth-child(1) .service-photo,
.services .service-cards .service-card:nth-child(2) .service-photo,
.services .service-cards .service-card:nth-child(3) .service-photo,
.services .service-cards .service-card:nth-child(4) .service-photo{
  width:100%!important;
  aspect-ratio:16/9!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  overflow:hidden!important;
}

.services .service-cards .service-photo img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}

/* Keep the copy block compact and consistent */
.services .service-cards .service-copy{
  min-height:88px!important;
}

@media(max-width:800px){
  .services .service-cards{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }
}


/* =========================================================
   V2.2.0 — GOOGLE REVIEW READABILITY FIX
   Cleaner reading font, smaller body size, better line-height.
   ========================================================= */

.reviews .review-card,
.reviews .review-card p,
.reviews .review-text,
.reviews blockquote{
  font-family:"DM Sans",Arial,sans-serif!important;
  font-style:normal!important;
  letter-spacing:0!important;
}

.reviews .review-card p,
.reviews .review-text,
.reviews blockquote{
  font-size:15px!important;
  line-height:1.7!important;
  font-weight:400!important;
  color:#2b2a26!important;
  margin-bottom:18px!important;
}

/* Customer name: readable, slightly stronger but not oversized */
.reviews .review-author,
.reviews .review-author strong,
.reviews .review-name,
.reviews .review-card h4,
.reviews .review-card h5{
  font-family:"DM Sans",Arial,sans-serif!important;
  font-style:normal!important;
  font-size:14px!important;
  line-height:1.35!important;
  font-weight:600!important;
  letter-spacing:.01em!important;
  color:#171714!important;
}

/* Keep source/date/meta compact */
.reviews .review-meta,
.reviews .review-source,
.reviews .review-date{
  font-family:"DM Sans",Arial,sans-serif!important;
  font-size:12px!important;
  line-height:1.4!important;
  letter-spacing:.02em!important;
}

/* Prevent review cards from feeling too text-heavy */
.reviews .review-card{
  padding:24px 22px!important;
}

/* Mobile readability */
@media(max-width:700px){
  .reviews .review-card p,
  .reviews .review-text,
  .reviews blockquote{
    font-size:14px!important;
    line-height:1.65!important;
  }

  .reviews .review-author,
  .reviews .review-author strong,
  .reviews .review-name,
  .reviews .review-card h4,
  .reviews .review-card h5{
    font-size:13px!important;
  }

  .reviews .review-card{
    padding:20px 18px!important;
  }
}

/* =========================================================
   V2.2.1 — MOBILE GLITCH STABILITY PATCH
   Keeps desktop untouched; only strengthens <=700px layout.
   ========================================================= */
@media(max-width:700px){
  html,body{max-width:100%;overflow-x:hidden!important}
  body{width:100%;}
  section,.hero,.intro,.services,.portfolio,.statement,.reviews,.contact,.instagram-home,.cinematic-highlights,.site-footer{overflow-x:hidden!important}

  /* Header */
  .site-header{height:68px!important;padding:0 18px!important}
  .brand{gap:9px!important;font-size:9px!important;letter-spacing:.14em!important}
  .brand img{width:38px!important;height:28px!important}
  .site-header nav,.site-header .enquire{display:none!important}
  .site-header .menu{display:block!important;font-size:9px!important}

  /* Hero */
  .hero{height:100svh!important;min-height:560px!important}
  .hero-copy{left:18px!important;right:18px!important;bottom:13vh!important}
  .hero h1{font-size:clamp(44px,13vw,68px)!important;line-height:.95!important}
  .hero-kicker{top:104px!important;left:18px!important}
  .hero-foot{left:18px!important;right:18px!important;font-size:7px!important}
  .scroll-cue{right:16px!important;bottom:18px!important}

  /* Global heading spacing */
  .intro,.services,.statement,.reviews{padding-left:18px!important;padding-right:18px!important}
  .section-head h2,.intro h2{font-size:clamp(40px,11vw,58px)!important;line-height:.98!important}
  .eyebrow{margin-bottom:24px!important}

  /* Intro / About */
  .intro{padding-top:82px!important;padding-bottom:88px!important}
  .intro-grid{gap:34px!important}
  .intro-grid>div p,.lead{font-size:14px!important;line-height:1.7!important}
  .lead{font-family:"DM Sans",Arial,sans-serif!important}

  /* Signature / editorial */
  .signature{height:620px!important;min-height:620px!important;padding:0 18px!important}
  .sig-main{left:5%!important;width:66%!important}
  .sig-side{right:4%!important;width:44%!important;bottom:5%!important}

  /* Many chapters */
  .services{padding-top:82px!important;padding-bottom:82px!important}
  .service-cards{grid-template-columns:1fr!important;gap:18px!important}
  .service-copy{grid-template-columns:28px 1fr 22px!important;padding:16px 14px 18px!important;gap:10px!important}
  .service-copy h3{font-size:28px!important}
  .service-copy p{grid-column:2/4!important;font-size:9px!important;line-height:1.55!important}
  .service-photo{aspect-ratio:16/10!important}

  /* Feeling section */
  .feeling-gallery{padding-left:18px!important;padding-right:18px!important;padding-bottom:82px!important}
  .feeling-grid{gap:22px!important}
  .feeling-meta{margin-bottom:24px!important;gap:14px!important}
  .feeling-meta span{font-size:42px!important}

  /* Seeing the unseen */
  .cinematic-highlights{padding-top:78px!important;padding-bottom:82px!important}
  .cinematic-stage{width:calc(100% - 36px)!important;margin:0 auto 54px!important}
  .story-panorama{height:380px!important;margin-bottom:72px!important}
  .story-panorama-copy{left:18px!important;right:18px!important}
  .story-panorama-copy h3{font-size:42px!important;max-width:100%!important}
  .story-panorama-copy p{font-size:9px!important;line-height:1.6!important}
  .expertise-block{padding:0 18px!important}
  .expertise-cards.expertise-cards-four{grid-template-columns:1fr!important;gap:18px!important}
  .expertise-cards-four .expertise-card{margin-top:0!important}

  /* Portfolio mosaic */
  .portfolio{padding:82px 10px!important}
  .mosaic{gap:8px!important}

  /* Instagram */
  .instagram-home.instagram-v214{padding:82px 18px!important}
  .instagram-v214 .instagram-head{gap:16px!important;margin-bottom:28px!important}
  .instagram-v214 .instagram-head h2{font-size:42px!important;line-height:1!important}
  .instagram-v214 .instagram-follow{width:auto!important;padding:11px 16px!important;font-size:9px!important}
  .insta-wide-grid{grid-template-columns:1fr!important;gap:14px!important}
  .insta-wide-card{min-width:0!important;width:100%!important}
  .insta-wide-card img{height:auto!important;aspect-ratio:4/5!important;object-fit:cover!important}

  /* Reviews: remove mobile carousel glitch and stack cleanly */
  .reviews-clean{padding:82px 18px!important}
  .reviews-clean .reviews-intro{gap:18px!important}
  .reviews-clean .review-window{overflow:visible!important}
  .reviews-clean .review-track{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;transform:none!important;width:100%!important}
  .reviews-clean .review-card{width:100%!important;min-width:0!important;min-height:0!important;padding:20px 18px!important}
  .reviews-clean .review-card>p{font-size:15px!important;line-height:1.65!important;margin:22px 0!important}
  .reviews-clean .review-top{font-size:8px!important}
  .reviews-clean .review-author{padding-top:12px!important}
  .reviews-clean .review-author b,.reviews-clean .review-author span{font-size:11px!important}
  .reviews-clean .review-controls{display:none!important}

  /* Contact */
  .contact-photo{height:48vh!important;min-height:340px!important}
  .contact-copy{padding:70px 18px!important}
  .contact h2{font-size:48px!important}

  /* Footer */
  .site-footer{padding:62px 18px 96px!important;gap:28px!important;min-height:0!important}
  .footer-word{font-size:20vw!important;bottom:-10px!important}

  /* Disable desktop cursor effects on touch */
  .cursor-orbit{display:none!important}
  .cursor-react,.magnetic-card,.magnetic-link{transform:none!important;transition:none!important}
}


/* =========================================================
   V2.2.2 — SOCIAL ICON BUTTONS + FLOATING WHATSAPP
   ========================================================= */

.social-icon-buttons{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.social-icon-btn{
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  color:inherit;
  background:rgba(255,255,255,.035);
  text-decoration:none;
  padding:0;
  cursor:pointer;
  transition:transform .32s cubic-bezier(.16,1,.3,1),
             background .32s ease,
             border-color .32s ease,
             color .32s ease;
}

.social-icon-btn svg{
  width:18px;
  height:18px;
  fill:currentColor;
  stroke:currentColor;
  stroke-width:1.6;
}

.social-icon-btn .play-cut{
  fill:#171714;
  stroke:none;
}

footer .social-icon-btn:hover,
footer .social-icon-btn:focus-visible{
  transform:translateY(-3px) scale(1.04);
  background:#d6aa3f;
  color:#171714;
  border-color:#d6aa3f;
}

.social-icon-btn-disabled{
  opacity:.58;
  cursor:default;
}
.social-icon-btn-disabled:hover{
  transform:none!important;
  background:rgba(255,255,255,.035)!important;
  color:inherit!important;
  border-color:rgba(255,255,255,.18)!important;
}

/* Floating WhatsApp on every page */
.floating-whatsapp{
  position:fixed;
  right:22px;
  bottom:22px;
  width:58px;
  height:58px;
  z-index:9500;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#25D366;
  color:#fff;
  box-shadow:0 12px 34px rgba(0,0,0,.23);
  text-decoration:none;
  isolation:isolate;
  transform:translateZ(0);
  transition:transform .32s cubic-bezier(.16,1,.3,1),
             box-shadow .32s ease;
}

.floating-whatsapp svg{
  width:31px;
  height:31px;
  fill:currentColor;
  position:relative;
  z-index:2;
}

.floating-whatsapp:hover,
.floating-whatsapp:focus-visible{
  transform:translateY(-4px) scale(1.05);
  box-shadow:0 16px 40px rgba(0,0,0,.28);
}

.floating-whatsapp .wa-pulse{
  position:absolute;
  inset:-1px;
  border-radius:50%;
  border:1px solid rgba(37,211,102,.55);
  z-index:-1;
  animation:waPulse 2.2s ease-out infinite;
}

@keyframes waPulse{
  0%{transform:scale(.92);opacity:.8}
  70%,100%{transform:scale(1.48);opacity:0}
}

@media(max-width:700px){
  .social-icon-buttons{gap:9px}
  .social-icon-btn{
    width:40px;
    height:40px;
  }
  .floating-whatsapp{
    right:15px;
    bottom:16px;
    width:54px;
    height:54px;
  }
  .floating-whatsapp svg{
    width:29px;
    height:29px;
  }
}

@media(prefers-reduced-motion:reduce){
  .floating-whatsapp .wa-pulse{animation:none}
}


/* =========================================================
   V2.2.3 — SOCIAL ICON ALIGNMENT FIX
   Keep all social icons on one exact horizontal baseline.
   ========================================================= */

footer .social-icon-buttons,
.site-footer .social-icon-buttons,
.footer-social .social-icon-buttons{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-wrap:nowrap!important;
  gap:10px!important;
  line-height:1!important;
}

footer .social-icon-btn,
.site-footer .social-icon-btn,
.footer-social .social-icon-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 42px!important;
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  margin:0!important;
  padding:0!important;
  vertical-align:middle!important;
  line-height:1!important;
  box-sizing:border-box!important;
  position:relative!important;
  top:auto!important;
  bottom:auto!important;
  transform:none;
}

footer .social-icon-btn svg,
.site-footer .social-icon-btn svg,
.footer-social .social-icon-btn svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
  margin:0!important;
  padding:0!important;
  flex:none!important;
  position:static!important;
  transform:none!important;
}

footer .social-icon-btn:hover,
.site-footer .social-icon-btn:hover,
.footer-social .social-icon-btn:hover,
footer .social-icon-btn:focus-visible,
.site-footer .social-icon-btn:focus-visible,
.footer-social .social-icon-btn:focus-visible{
  transform:translateY(-2px) scale(1.03)!important;
}

footer .social-icon-btn-disabled:hover,
.site-footer .social-icon-btn-disabled:hover,
.footer-social .social-icon-btn-disabled:hover{
  transform:none!important;
}

@media(max-width:700px){
  footer .social-icon-buttons,
  .site-footer .social-icon-buttons,
  .footer-social .social-icon-buttons{
    justify-content:flex-start!important;
    flex-wrap:nowrap!important;
    gap:9px!important;
  }

  footer .social-icon-btn,
  .site-footer .social-icon-btn,
  .footer-social .social-icon-btn{
    flex-basis:40px!important;
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    min-height:40px!important;
  }
}

/* =========================================================
   WORDPRESS INTEGRATION PATCH
   ========================================================= */
html{margin-top:0!important}
body.admin-bar .site-header{top:32px!important}
body.admin-bar .progress{top:32px!important}
@media(max-width:782px){
  body.admin-bar .site-header{top:46px!important}
  body.admin-bar .progress{top:46px!important}
}
.site-header nav .menu-list{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0}
.site-header nav .menu-list li{margin:0;padding:0}
.site-header nav .menu-list a[aria-current="page"]{font-weight:500}
.site-header nav .menu-list a[aria-current="page"]:after{width:100%}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.im-form-notice{padding:14px 16px;margin:0 0 22px;border:1px solid rgba(23,23,20,.18);font-size:12px;line-height:1.5}
.im-form-notice.success{background:#eef4e8}
.im-form-notice.error{background:#f7e8e6}
.contact-form-demo form input,.contact-form-demo form select,.contact-form-demo form textarea{font-family:inherit}
.contact-form-demo form textarea{grid-column:1/-1;min-height:130px;resize:vertical;background:transparent;border:0;border-bottom:1px solid #aaa;padding:18px 0;font-size:13px;outline:none}
.im-gallery-empty{grid-column:1/-1;padding:28px 0;border-top:1px solid rgba(23,23,20,.15);font-size:12px;color:#666}

/* Functional mobile menu without changing the approved desktop design. */
@media(max-width:700px){
  .site-header.menu-open nav{
    display:flex!important;position:fixed;inset:68px 0 auto 0;z-index:8600;
    background:rgba(13,13,12,.98);padding:28px 20px 34px;color:#fff!important;
    border-top:1px solid rgba(255,255,255,.12);box-shadow:0 20px 40px rgba(0,0,0,.18)
  }
  body.admin-bar .site-header.menu-open nav{top:114px!important}
  .site-header.menu-open nav .menu-list{display:grid!important;width:100%;gap:0!important}
  .site-header.menu-open nav .menu-list li{border-bottom:1px solid rgba(255,255,255,.12)}
  .site-header.menu-open nav .menu-list a{display:flex;padding:15px 2px;color:#fff!important;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
  .site-header.menu-open .menu{color:#fff!important;position:relative;z-index:8700}
  body.inner-page .site-header.menu-open{background:#0d0d0c!important}
  body.inner-page .site-header.menu-open .brand img{filter:invert(1) grayscale(1) brightness(3)!important}
  body.inner-page .site-header.menu-open .brand,body.inner-page .site-header.menu-open .menu{color:#fff!important}
}

/* WordPress editor-driven generic page/post content */
.im-entry{max-width:980px;margin:0 auto;padding:110px 7vw 150px;font-size:15px;line-height:1.8}
.im-entry h1,.im-entry h2,.im-entry h3{font-family:Italiana,serif;font-weight:400;line-height:1.05}
.im-entry h1{font-size:clamp(48px,6vw,90px)}.im-entry h2{font-size:clamp(36px,4vw,60px)}
.im-entry img{height:auto}.im-entry a{text-decoration:underline;text-underline-offset:4px}
.im-post-meta{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#777;margin-bottom:24px}
.im-page-copy p:first-child{margin-top:0}
@media(max-width:700px){.im-entry{padding:80px 18px 110px}}


/* =========================================================
   V2.2.4 — TABLET / PHONE EXPERTISE ALIGNMENT + REVIEW STABILITY
   Desktop composition stays unchanged. These rules only resolve
   responsive card staggering and ensure clean 2x2 / 1-column layouts.
   ========================================================= */
@media (min-width:701px) and (max-width:1100px){
  .expertise-block{padding-left:5vw!important;padding-right:5vw!important}
  .expertise-cards.expertise-cards-four{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:36px 24px!important;
    max-width:820px!important;
    align-items:start!important;
  }
  .expertise-cards.expertise-cards-four .expertise-card,
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(1),
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(2),
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(3),
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(4){
    grid-column:auto!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    transform:none!important;
    align-self:start!important;
  }
  .expertise-cards-four .expertise-img{
    width:100%!important;
    aspect-ratio:3/4.15!important;
    margin-bottom:14px!important;
  }
  .expertise-cards-four .expertise-card h4{font-size:clamp(25px,3.2vw,34px)!important}
  .expertise-cards-four .expertise-card p{max-width:none!important;font-size:10px!important}
}

@media (max-width:700px){
  .expertise-head{margin-bottom:38px!important}
  .expertise-cards.expertise-cards-four{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:34px!important;
    width:100%!important;
    max-width:480px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .expertise-cards.expertise-cards-four .expertise-card,
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(1),
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(2),
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(3),
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(4){
    grid-column:auto!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    transform:none!important;
  }
  .expertise-cards-four .expertise-img{aspect-ratio:4/5!important;margin-bottom:14px!important}
  .expertise-cards-four .expertise-card h4{font-size:30px!important;line-height:1.05!important}
  .expertise-cards-four .expertise-card p{max-width:none!important;font-size:11px!important;line-height:1.6!important}
}

/* Review cards must remain visible and neatly sized on tablet / phone. */
@media (min-width:701px) and (max-width:1100px){
  .reviews-clean .review-window{display:block!important;overflow:visible!important}
  .reviews-clean .review-track{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px!important;
    width:100%!important;
    transform:none!important;
  }
  .reviews-clean .review-card{display:flex!important;min-height:310px!important}
}
@media (max-width:700px){
  .reviews-clean .review-window{display:block!important;overflow:visible!important}
  .reviews-clean .review-track{display:grid!important;grid-template-columns:1fr!important}
  .reviews-clean .review-card{display:flex!important;visibility:visible!important;opacity:1!important}
}


/* =========================================================
   V2.2.5 — MOBILE EDITORIAL / CINEMATIC POLISH
   Purpose: keep the V2.2.4 alignment fixes, but restore the
   premium asymmetry and visual rhythm on phones. Desktop and
   tablet >=701px are untouched by this pass.
   ========================================================= */
@media (max-width:700px){
  /* More deliberate mobile section rhythm */
  .intro,.feeling-gallery,.services,.portfolio,.cinematic-highlights,
  .instagram-home.instagram-v214,.reviews-clean,.contact-copy{
    position:relative;
  }

  /* HERO — keep it cinematic rather than looking like a generic mobile banner */
  .hero-copy{
    left:22px!important;
    right:34px!important;
    bottom:14.5vh!important;
    max-width:92%!important;
  }
  .hero-copy p{
    margin-bottom:16px!important;
    font-size:8px!important;
    letter-spacing:.22em!important;
  }
  .hero h1{
    font-size:clamp(48px,14.4vw,70px)!important;
    line-height:.88!important;
    letter-spacing:-.045em!important;
  }
  .hero h1 em{display:inline-block!important;margin-left:7vw!important}
  .hero-overlay{
    background:
      linear-gradient(90deg,rgba(0,0,0,.60) 0%,rgba(0,0,0,.08) 72%),
      linear-gradient(0deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.06) 48%,rgba(0,0,0,.20) 100%)!important;
  }

  /* ABOUT — editorial divider and tighter luxury typography */
  .intro{padding-top:92px!important;padding-bottom:104px!important}
  .intro::before{
    content:"";display:block;width:46px;height:1px;background:#171714;
    margin:0 0 28px 0;opacity:.48;
  }
  .intro h2{font-size:clamp(44px,12vw,60px)!important;line-height:.91!important}
  .intro h2 em{display:inline-block!important;margin-left:8vw!important}
  .intro-grid{gap:30px!important}
  .intro-grid>div{padding-left:10vw!important;max-width:95%!important}
  .intro-grid>div p,.intro-grid .lead{font-size:12px!important;line-height:1.75!important}

  /* FEELING — alternating editorial widths instead of five identical full-width cards */
  .feeling-grid.feeling-grid-v211{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:32px!important;
    max-width:520px!important;
    margin:0 auto!important;
  }
  .feeling-grid-v211 .feeling-card,
  .feeling-grid-v211 .feeling-card:nth-child(1),
  .feeling-grid-v211 .feeling-card:nth-child(2),
  .feeling-grid-v211 .feeling-card:nth-child(3),
  .feeling-grid-v211 .feeling-card:nth-child(4),
  .feeling-grid-v211 .feeling-card:nth-child(5){
    grid-column:auto!important;
    margin-top:0!important;
    transform:none!important;
    max-width:none!important;
  }
  .feeling-grid-v211 .feeling-card:nth-child(1){width:91%!important;justify-self:start!important}
  .feeling-grid-v211 .feeling-card:nth-child(2){width:78%!important;justify-self:end!important;margin-top:2px!important}
  .feeling-grid-v211 .feeling-card:nth-child(3){width:88%!important;justify-self:center!important}
  .feeling-grid-v211 .feeling-card:nth-child(4){width:76%!important;justify-self:start!important;margin-left:6vw!important}
  .feeling-grid-v211 .feeling-card:nth-child(5){width:86%!important;justify-self:end!important}
  .feeling-grid-v211 .feeling-card:nth-child(odd) .photo-mask{aspect-ratio:3/4!important}
  .feeling-grid-v211 .feeling-card:nth-child(even) .photo-mask{aspect-ratio:4/5.15!important}
  .feeling-card figcaption{font-size:7px!important;letter-spacing:.16em!important}

  /* OUR STORY STATS — framed 2x2 editorial counters */
  .home-stat-row{
    gap:0!important;
    padding:0 18px 72px!important;
    border-top:0!important;
  }
  .home-stat{
    min-height:132px!important;
    padding:24px 14px!important;
    border-top:1px solid #c7c3ba!important;
  }
  .home-stat:nth-child(odd){border-right:1px solid #c7c3ba!important}
  .home-stat strong{font-size:40px!important}
  .home-stat span{font-size:6.5px!important;line-height:1.5!important}

  /* SERVICES — one-column for readability, but alternate widths/edges for editorial motion */
  .services .service-cards{
    grid-template-columns:1fr!important;
    gap:30px!important;
    max-width:520px!important;
    margin:0 auto!important;
  }
  .services .service-cards .service-card,
  .services .service-cards .service-card:nth-child(1),
  .services .service-cards .service-card:nth-child(2),
  .services .service-cards .service-card:nth-child(3),
  .services .service-cards .service-card:nth-child(4){
    margin:0!important;
    transform:none!important;
    max-width:none!important;
  }
  .services .service-cards .service-card:nth-child(1),
  .services .service-cards .service-card:nth-child(3){width:94%!important;justify-self:start!important}
  .services .service-cards .service-card:nth-child(2),
  .services .service-cards .service-card:nth-child(4){width:88%!important;justify-self:end!important}
  .services .service-cards .service-card:nth-child(2){margin-top:4px!important}
  .services .service-cards .service-photo{aspect-ratio:4/3.1!important}
  .services .service-copy{
    grid-template-columns:26px 1fr 20px!important;
    padding:15px 13px 17px!important;
  }
  .services .service-copy p{grid-column:2/4!important;max-width:88%!important}
  .services .service-copy h3{font-size:27px!important;line-height:1!important}

  /* SELECTED STORIES — mobile magazine mosaic instead of a long plain stack */
  .heartbeat-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px 8px!important;
    align-items:start!important;
  }
  .heartbeat-card,
  .heartbeat-card:nth-child(1),.heartbeat-card:nth-child(2),.heartbeat-card:nth-child(3),
  .heartbeat-card:nth-child(4),.heartbeat-card:nth-child(5),.heartbeat-card:nth-child(6){
    margin:0!important;transform:none!important;max-width:none!important;
  }
  .heartbeat-card:nth-child(1),.heartbeat-card:nth-child(4){grid-column:1/-1!important}
  .heartbeat-card:nth-child(1) .photo-mask,.heartbeat-card:nth-child(4) .photo-mask{
    aspect-ratio:16/10.4!important;
  }
  .heartbeat-card:nth-child(2) .photo-mask,.heartbeat-card:nth-child(5) .photo-mask{aspect-ratio:3/4.25!important}
  .heartbeat-card:nth-child(3) .photo-mask,.heartbeat-card:nth-child(6) .photo-mask{aspect-ratio:3/4!important}
  .heartbeat-card:nth-child(3),.heartbeat-card:nth-child(6){margin-top:28px!important}
  .heartbeat-card figcaption{font-size:6.5px!important;letter-spacing:.12em!important;margin-top:8px!important;padding-top:8px!important}
  .portfolio .gallery-cta{margin-top:58px!important}

  /* CINEMATIC / EXPERTISE — keep cards staggered but safely inside viewport */
  .cinematic-head{text-align:left!important;padding:0 22px!important;margin-bottom:38px!important}
  .cinematic-head h2{font-size:46px!important;line-height:.91!important}
  .cinematic-head h2 em{display:inline-block!important;margin-left:9vw!important}
  .cinematic-head p{margin-left:10vw!important;margin-right:0!important;max-width:78%!important}
  .cinematic-stage{width:86vw!important;margin-left:7vw!important;margin-right:7vw!important}
  .cinematic-stage::before{inset:-10px -10px!important}

  .expertise-head{text-align:left!important;padding-left:4vw!important;margin-bottom:42px!important}
  .expertise-head h3{font-size:46px!important;line-height:.91!important}
  .expertise-head h3 em{display:inline-block!important;margin-left:9vw!important}
  .expertise-cards.expertise-cards-four{
    grid-template-columns:1fr!important;
    gap:36px!important;
    max-width:520px!important;
  }
  .expertise-cards.expertise-cards-four .expertise-card,
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(1),
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(2),
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(3),
  .expertise-cards.expertise-cards-four .expertise-card:nth-child(4){
    margin-top:0!important;transform:none!important;max-width:none!important;
  }
  .expertise-cards-four .expertise-card:nth-child(1){width:90%!important;justify-self:start!important}
  .expertise-cards-four .expertise-card:nth-child(2){width:82%!important;justify-self:end!important}
  .expertise-cards-four .expertise-card:nth-child(3){width:92%!important;justify-self:center!important}
  .expertise-cards-four .expertise-card:nth-child(4){width:80%!important;justify-self:start!important;margin-left:7vw!important}
  .expertise-cards-four .expertise-img{aspect-ratio:3/4.05!important;margin-bottom:12px!important}
  .expertise-cards-four .expertise-card:nth-child(2) .expertise-img,
  .expertise-cards-four .expertise-card:nth-child(4) .expertise-img{aspect-ratio:4/5!important}
  .expertise-cards-four .expertise-card h4{font-size:30px!important}
  .expertise-cards-four .expertise-card p{font-size:10px!important;max-width:92%!important}

  /* INSTAGRAM — visual collage, not six identical vertical blocks */
  .insta-wide-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .insta-wide-card,
  .insta-wide-card:nth-child(1),.insta-wide-card:nth-child(2),.insta-wide-card:nth-child(3),
  .insta-wide-card:nth-child(4),.insta-wide-card:nth-child(5),.insta-wide-card:nth-child(6){
    width:100%!important;height:auto!important;min-width:0!important;
  }
  .insta-wide-card:nth-child(1),.insta-wide-card:nth-child(6){grid-column:1/-1!important}
  .insta-wide-card:nth-child(1) img,.insta-wide-card:nth-child(6) img{aspect-ratio:16/10!important}
  .insta-wide-card:nth-child(2) img,.insta-wide-card:nth-child(5) img{aspect-ratio:3/4.2!important}
  .insta-wide-card:nth-child(3) img,.insta-wide-card:nth-child(4) img{aspect-ratio:4/5!important}

  /* REVIEWS — swipeable editorial cards with the next card peeking in */
  .reviews-clean .review-window{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    margin-left:-18px!important;
    margin-right:-18px!important;
    padding:0 18px 8px!important;
    scroll-snap-type:x mandatory!important;
    overscroll-behavior-x:contain!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
  }
  .reviews-clean .review-window::-webkit-scrollbar{display:none!important}
  .reviews-clean .review-track{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:12px!important;
    width:max-content!important;
    transform:none!important;
  }
  .reviews-clean .review-card{
    flex:0 0 min(82vw,350px)!important;
    width:min(82vw,350px)!important;
    min-width:min(82vw,350px)!important;
    min-height:300px!important;
    scroll-snap-align:start!important;
    padding:22px 19px!important;
  }
  .reviews-clean .review-card>p{font-size:14px!important;line-height:1.65!important}
  .reviews-clean .rating{margin-top:22px!important}

  /* CONTACT — image + copy feel like a composed final spread */
  .contact-photo{height:58vh!important;min-height:390px!important;margin:0 18px!important;overflow:hidden!important}
  .contact-photo img{height:100%!important;object-fit:cover!important}
  .contact-copy{margin-top:-42px!important;margin-left:34px!important;padding:64px 22px 72px!important;z-index:2!important;box-shadow:0 -18px 42px rgba(0,0,0,.045)!important}
  .contact h2{font-size:50px!important;line-height:.9!important}
}

@media (max-width:420px){
  .hero h1{font-size:50px!important}
  .intro h2,.cinematic-head h2,.expertise-head h3{font-size:42px!important}
  .services .service-cards .service-card:nth-child(2),
  .services .service-cards .service-card:nth-child(4){width:91%!important}
  .feeling-grid-v211 .feeling-card:nth-child(4){margin-left:3vw!important}
  .heartbeat-card figcaption{letter-spacing:.08em!important}
  .reviews-clean .review-card{flex-basis:84vw!important;width:84vw!important;min-width:84vw!important}
}

/* =========================================================
   V2.2.6 — AUTOPLAY + SWIPE CAROUSELS
   Google Reviews: swipe on touch, arrows on larger screens,
   automatic one-card advance on desktop/tablet/mobile.
   Instagram: swipe/drag + automatic editorial carousel.
   ========================================================= */

/* Instagram — horizontal editorial carousel */
.instagram-home.instagram-v214 .insta-wide-grid{
  display:flex!important;
  grid-template-columns:none!important;
  align-items:flex-end!important;
  gap:12px!important;
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  scroll-behavior:smooth!important;
  overscroll-behavior-x:contain!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:none!important;
  touch-action:pan-x pan-y!important;
}
.instagram-home.instagram-v214 .insta-wide-grid::-webkit-scrollbar{display:none!important}
.instagram-home.instagram-v214 .insta-wide-card,
.instagram-home.instagram-v214 .insta-wide-card:nth-child(1),
.instagram-home.instagram-v214 .insta-wide-card:nth-child(2),
.instagram-home.instagram-v214 .insta-wide-card:nth-child(3),
.instagram-home.instagram-v214 .insta-wide-card:nth-child(4),
.instagram-home.instagram-v214 .insta-wide-card:nth-child(5),
.instagram-home.instagram-v214 .insta-wide-card:nth-child(6){
  flex:0 0 calc((100% - 48px)/5)!important;
  width:calc((100% - 48px)/5)!important;
  min-width:calc((100% - 48px)/5)!important;
  height:330px!important;
  grid-column:auto!important;
  justify-self:auto!important;
  scroll-snap-align:start!important;
  scroll-snap-stop:normal!important;
}
.instagram-home.instagram-v214 .insta-wide-card:nth-child(2),
.instagram-home.instagram-v214 .insta-wide-card:nth-child(5){height:365px!important}
.instagram-home.instagram-v214 .insta-wide-card:nth-child(3),
.instagram-home.instagram-v214 .insta-wide-card:nth-child(6){height:300px!important}
.instagram-home.instagram-v214 .insta-wide-card img,
.instagram-home.instagram-v214 .insta-wide-card:nth-child(n) img{
  width:100%!important;
  height:100%!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
}

/* Reviews — true horizontal carousel on every breakpoint */
.reviews-clean .review-window{
  display:block!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  scroll-behavior:smooth!important;
  overscroll-behavior-x:contain!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:none!important;
  touch-action:pan-x pan-y!important;
}
.reviews-clean .review-window::-webkit-scrollbar{display:none!important}
.reviews-clean .review-track{
  display:flex!important;
  grid-template-columns:none!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  gap:18px!important;
  width:100%!important;
  min-width:100%!important;
  transform:none!important;
}
.reviews-clean .review-card,
.reviews-clean .review-card:nth-child(n){
  display:flex!important;
  flex-direction:column!important;
  flex:0 0 calc((100% - 18px)/2)!important;
  width:calc((100% - 18px)/2)!important;
  min-width:calc((100% - 18px)/2)!important;
  min-height:360px!important;
  scroll-snap-align:start!important;
  visibility:visible!important;
  opacity:1!important;
}
.reviews-clean .review-author{margin-top:auto!important}
.reviews-clean .review-controls{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
}
.reviews-clean .review-progress i{width:0!important;transition:width .35s ease!important}

@media (max-width:1100px){
  .instagram-home.instagram-v214 .insta-wide-card,
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(n){
    flex-basis:calc((100% - 24px)/3)!important;
    width:calc((100% - 24px)/3)!important;
    min-width:calc((100% - 24px)/3)!important;
    height:300px!important;
  }
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(2),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(5){height:330px!important}
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(3),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(6){height:275px!important}

  .reviews-clean .review-card,
  .reviews-clean .review-card:nth-child(n){
    flex-basis:calc((100% - 14px)/2)!important;
    width:calc((100% - 14px)/2)!important;
    min-width:calc((100% - 14px)/2)!important;
    min-height:340px!important;
  }
}

@media (max-width:700px){
  .instagram-home.instagram-v214 .insta-wide-grid{
    margin-left:-18px!important;
    margin-right:-18px!important;
    width:calc(100% + 36px)!important;
    max-width:none!important;
    padding:0 18px 8px!important;
    gap:10px!important;
  }
  .instagram-home.instagram-v214 .insta-wide-card,
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(1),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(2),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(3),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(4),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(5),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(6){
    flex:0 0 76vw!important;
    width:76vw!important;
    min-width:76vw!important;
    height:440px!important;
    grid-column:auto!important;
  }
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(2),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(5){height:480px!important}
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(3),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(6){height:410px!important}

  .reviews-clean .review-window{
    margin-left:-18px!important;
    margin-right:-18px!important;
    padding:0 18px 8px!important;
  }
  .reviews-clean .review-track{gap:12px!important}
  .reviews-clean .review-card,
  .reviews-clean .review-card:nth-child(n){
    flex:0 0 calc(100vw - 48px)!important;
    width:calc(100vw - 48px)!important;
    min-width:calc(100vw - 48px)!important;
    min-height:300px!important;
    padding:22px 19px!important;
  }
  .reviews-clean .review-card>p{font-size:15px!important;line-height:1.65!important}
  .reviews-clean .review-controls{display:none!important}
}

@media (max-width:420px){
  .instagram-home.instagram-v214 .insta-wide-card,
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(n){
    flex-basis:80vw!important;
    width:80vw!important;
    min-width:80vw!important;
    height:420px!important;
  }
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(2),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(5){height:455px!important}
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(3),
  .instagram-home.instagram-v214 .insta-wide-card:nth-child(6){height:395px!important}
  .reviews-clean .review-card,
  .reviews-clean .review-card:nth-child(n){
    flex-basis:calc(100vw - 44px)!important;
    width:calc(100vw - 44px)!important;
    min-width:calc(100vw - 44px)!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .instagram-home.instagram-v214 .insta-wide-grid,
  .reviews-clean .review-window{scroll-behavior:auto!important}
}



/* =========================================================
   V2.2.8 — CAROUSEL RELIABILITY LAYER
   Final rules intentionally live last so older responsive fixes cannot
   turn Reviews/Instagram back into static grids on any breakpoint.
   ========================================================= */
.instagram-home.instagram-v214 .insta-wide-grid,
.reviews-clean .review-window{
  scroll-behavior:smooth!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-x:contain!important;
  scrollbar-width:none!important;
}
.instagram-home.instagram-v214 .insta-wide-grid::-webkit-scrollbar,
.reviews-clean .review-window::-webkit-scrollbar{display:none!important}

.instagram-home.instagram-v214 .insta-wide-grid{
  display:flex!important;
  flex-wrap:nowrap!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  touch-action:pan-x pan-y!important;
}
.instagram-home.instagram-v214 .insta-wide-card,
.instagram-home.instagram-v214 .insta-wide-card:nth-child(n){
  flex-shrink:0!important;
  scroll-snap-align:start!important;
}

.reviews-clean .review-window{
  display:block!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  touch-action:pan-x pan-y!important;
}
.reviews-clean .review-track{
  display:flex!important;
  flex-wrap:nowrap!important;
  transform:none!important;
}
.reviews-clean .review-card,
.reviews-clean .review-card:nth-child(n){
  display:flex!important;
  flex-direction:column!important;
  flex-shrink:0!important;
  scroll-snap-align:start!important;
  visibility:visible!important;
  opacity:1!important;
}
.reviews-clean .review-author{margin-top:auto!important}

/* Reviews: 2 visible on desktop/tablet, one full readable card on phones. */
@media (min-width:701px){
  .reviews-clean .review-track{gap:18px!important;width:100%!important;min-width:100%!important}
  .reviews-clean .review-card,
  .reviews-clean .review-card:nth-child(n){
    flex-basis:calc((100% - 18px)/2)!important;
    width:calc((100% - 18px)/2)!important;
    min-width:calc((100% - 18px)/2)!important;
  }
}
@media (max-width:700px){
  .reviews-clean .review-window{
    display:block!important;
    overflow-x:auto!important;
    margin-left:-18px!important;
    margin-right:-18px!important;
    padding:0 18px 8px!important;
  }
  .reviews-clean .review-track{
    display:flex!important;
    grid-template-columns:none!important;
    flex-wrap:nowrap!important;
    width:max-content!important;
    min-width:0!important;
    gap:12px!important;
  }
  .reviews-clean .review-card,
  .reviews-clean .review-card:nth-child(n){
    flex:0 0 calc(100vw - 48px)!important;
    width:calc(100vw - 48px)!important;
    min-width:calc(100vw - 48px)!important;
  }
  .instagram-home.instagram-v214 .insta-wide-grid{
    display:flex!important;
    grid-template-columns:none!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
  }
}
@media (max-width:420px){
  .reviews-clean .review-card,
  .reviews-clean .review-card:nth-child(n){
    flex-basis:calc(100vw - 44px)!important;
    width:calc(100vw - 44px)!important;
    min-width:calc(100vw - 44px)!important;
  }
}


/* =========================================================
   V2.2.9 — smooth startup + scroll-video reliability
   ========================================================= */
.aperture-loader{transform:translateZ(0);backface-visibility:hidden}
.aperture-loader.phase-two .loader-panel-top,
.aperture-loader.phase-two .loader-panel-bottom{animation-duration:.46s!important}
.aperture-loader.phase-two .aperture-intro{animation-duration:.34s!important}
.aperture-loader.done{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.hero-slide:not([src]){visibility:hidden}


/* =========================================================
   V2.2.10 — NATIVE SEO-NAMED HOMEPAGE FILM
   Native MP4 replaces the YouTube iframe for reliable viewport
   autoplay/pause on desktop, tablet and mobile.
   ========================================================= */
.im-home-cinematic-video{width:100%;height:100%;object-fit:cover;background:#111}
.im-home-cinematic-video::-webkit-media-controls-panel{background-image:linear-gradient(transparent,rgba(0,0,0,.38))}

/* =========================================================
   V2.2.11 — COMPACT MULTI-CARD GOOGLE REVIEWS
   Desktop: 4 cards visible, tablet: 3, mobile: 2.
   Keeps V2.2.8 autoplay/swipe logic while removing the large
   empty card areas and tightening the section vertically.
   ========================================================= */
.reviews-clean{
  padding:82px 5vw 92px!important;
}
.reviews-clean .reviews-intro{
  gap:18px 34px!important;
  margin-bottom:26px!important;
  align-items:end!important;
}
.reviews-clean .reviews-intro .eyebrow{
  margin-bottom:2px!important;
}
.reviews-clean .reviews-intro h2{
  font-size:clamp(46px,4.7vw,76px)!important;
  line-height:.94!important;
}
.reviews-clean .rating{
  gap:16px!important;
  align-items:center!important;
}
.reviews-clean .rating strong{
  font-size:58px!important;
  line-height:.82!important;
}
.reviews-clean .rating span{font-size:9px!important}
.reviews-clean .rating small{font-size:7px!important}
.reviews-clean .review-controls{
  display:flex!important;
  grid-column:1/-1!important;
  margin-top:2px!important;
  max-width:230px!important;
  gap:10px!important;
}
.reviews-clean .review-controls button{
  width:36px!important;
  height:36px!important;
  flex:0 0 36px!important;
  font-size:14px!important;
}
.reviews-clean .review-window{
  width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.reviews-clean .review-track{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  gap:12px!important;
  width:100%!important;
  min-width:100%!important;
}
.reviews-clean .review-card,
.reviews-clean .review-card:nth-child(n){
  flex:0 0 calc((100% - 36px)/4)!important;
  width:calc((100% - 36px)/4)!important;
  min-width:calc((100% - 36px)/4)!important;
  min-height:235px!important;
  padding:16px 15px 15px!important;
  justify-content:flex-start!important;
}
.reviews-clean .review-card>p{
  font-size:12px!important;
  line-height:1.52!important;
  margin:22px 0 18px!important;
  font-weight:400!important;
}
.reviews-clean .review-top{
  font-size:6.5px!important;
  line-height:1.3!important;
  letter-spacing:.12em!important;
}
.reviews-clean .review-author{
  margin-top:auto!important;
  padding-top:11px!important;
  gap:8px!important;
}
.reviews-clean .review-author b,
.reviews-clean .review-author span{
  font-size:8px!important;
  line-height:1.25!important;
  letter-spacing:.07em!important;
}

/* Tablet: three reviews visible together. */
@media (min-width:701px) and (max-width:1100px){
  .reviews-clean{padding:74px 4vw 82px!important}
  .reviews-clean .reviews-intro{margin-bottom:22px!important}
  .reviews-clean .reviews-intro h2{font-size:clamp(43px,6vw,62px)!important}
  .reviews-clean .rating strong{font-size:50px!important}
  .reviews-clean .review-track{gap:10px!important}
  .reviews-clean .review-card,
  .reviews-clean .review-card:nth-child(n){
    flex:0 0 calc((100% - 20px)/3)!important;
    width:calc((100% - 20px)/3)!important;
    min-width:calc((100% - 20px)/3)!important;
    min-height:235px!important;
    padding:15px 14px!important;
  }
  .reviews-clean .review-card>p{
    font-size:11.5px!important;
    line-height:1.5!important;
    margin:19px 0 15px!important;
  }
  .reviews-clean .review-author b,
  .reviews-clean .review-author span{font-size:7.5px!important}
}

/* Phones: two compact reviews visible at once, still swipeable/autoplaying. */
@media (max-width:700px){
  .reviews-clean{
    padding:62px 14px 70px!important;
  }
  .reviews-clean .reviews-intro{
    display:grid!important;
    grid-template-columns:1fr auto!important;
    gap:13px 14px!important;
    margin-bottom:18px!important;
  }
  .reviews-clean .reviews-intro .eyebrow{grid-column:1/-1!important}
  .reviews-clean .reviews-intro h2{
    font-size:clamp(36px,10vw,48px)!important;
    line-height:.95!important;
  }
  .reviews-clean .rating{
    justify-self:end!important;
    gap:8px!important;
  }
  .reviews-clean .rating strong{font-size:39px!important}
  .reviews-clean .rating span{font-size:7px!important}
  .reviews-clean .rating small{font-size:5.8px!important;letter-spacing:.08em!important}
  .reviews-clean .review-controls{display:none!important}
  .reviews-clean .review-window{
    margin-left:0!important;
    margin-right:0!important;
    padding:0 0 5px!important;
    overflow-x:auto!important;
  }
  .reviews-clean .review-track{gap:8px!important}
  .reviews-clean .review-card,
  .reviews-clean .review-card:nth-child(n){
    flex:0 0 calc((100% - 8px)/2)!important;
    width:calc((100% - 8px)/2)!important;
    min-width:calc((100% - 8px)/2)!important;
    min-height:225px!important;
    padding:13px 11px 12px!important;
  }
  .reviews-clean .review-card>p{
    font-size:10.5px!important;
    line-height:1.48!important;
    margin:16px 0 13px!important;
  }
  .reviews-clean .review-top{
    font-size:5.8px!important;
    letter-spacing:.08em!important;
  }
  .reviews-clean .review-author{
    padding-top:9px!important;
    gap:5px!important;
    flex-direction:column!important;
  }
  .reviews-clean .review-author b,
  .reviews-clean .review-author span{
    font-size:7px!important;
    line-height:1.2!important;
  }
}

@media (max-width:380px){
  .reviews-clean .review-card,
  .reviews-clean .review-card:nth-child(n){
    min-height:238px!important;
    padding:12px 10px 11px!important;
  }
  .reviews-clean .review-card>p{font-size:10px!important;line-height:1.45!important}
}


/* Instagram-powered philosophy strip — V2.2.3 layout preserved */
.instagram-story-strip #im-instagram-strip-feed{
  width:100%!important;
  overflow:hidden!important;
  margin:0!important;
  padding:0!important;
}
.instagram-story-strip #sb_instagram,
.instagram-story-strip #sbi_images{
  width:max-content!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}
.instagram-story-strip .strip-set>a.sbi_photo{
  position:relative;
  display:block!important;
  flex:none!important;
  width:clamp(280px,19vw,360px)!important;
  height:clamp(390px,27vw,500px)!important;
  overflow:hidden!important;
  margin:0!important;
  padding:0!important;
  background:#171714!important;
}
.instagram-story-strip .strip-set>a.sbi_photo:nth-child(even){margin-top:70px!important}
.instagram-story-strip .strip-set>a.sbi_photo:nth-child(3n){margin-top:28px!important}
.instagram-story-strip .strip-set>a.sbi_photo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  margin:0!important;
  padding:0!important;
  transition:transform .7s cubic-bezier(.2,.72,.18,1);
}
.instagram-story-strip .strip-set>a.sbi_photo:hover img{transform:scale(1.035)}
.instagram-story-strip .sbi-screenreader,
.instagram-story-strip svg{display:none!important}
@media(max-width:1100px){
  .instagram-story-strip .strip-set>a.sbi_photo{
    width:250px!important;
    height:350px!important;
  }
}
@media(max-width:700px){
  .instagram-story-strip .strip-set>a.sbi_photo{
    width:210px!important;
    height:300px!important;
  }
  .instagram-story-strip .strip-set>a.sbi_photo:nth-child(even){margin-top:42px!important}
}

/* V2.2.12 — HEADER LOGO SCALE */
.site-header{
  height:110px!important;
}
.site-header .brand img{
  width:304px!important;
  height:192px!important;
  object-fit:contain!important;
  object-position:center center!important;
}
@media(min-width:801px) and (max-width:1100px){
  .site-header{
    height:96px!important;
  }
  .site-header .brand img{
    width:220px!important;
    height:139px!important;
  }
  .site-header .brand span{
    font-size:9px!important;
    letter-spacing:.12em!important;
  }
}
@media(max-width:800px){
  .site-header{
    height:88px!important;
  }
  .site-header .brand{
    gap:6px!important;
  }
  .site-header .brand img{
    width:160px!important;
    height:120px!important;
  }
  .site-header .brand span{
    max-width:86px!important;
    font-size:8px!important;
    line-height:1.2!important;
    letter-spacing:.1em!important;
  }
}

/* V2.2.13 — SECTION PHOTO LIGHTBOX */
.signature.feeling-gallery .photo-mask.im-lightbox-trigger,
.portfolio .photo-mask.im-lightbox-trigger{
  cursor:zoom-in;
}
.im-photo-lightbox{
  position:fixed;
  inset:0;
  z-index:14000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  background:rgba(8,8,7,.94);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
}
.im-photo-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.im-photo-lightbox__image{
  display:block;
  max-width:min(94vw,1800px);
  max-height:88vh;
  width:auto;
  height:auto;
  object-fit:contain;
  box-shadow:0 24px 80px rgba(0,0,0,.35);
}
.im-photo-lightbox__close,
.im-photo-lightbox__prev,
.im-photo-lightbox__next{
  position:absolute;
  z-index:2;
  border:1px solid rgba(255,255,255,.42);
  background:rgba(15,15,13,.6);
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
  transition:background .2s ease,border-color .2s ease;
}
.im-photo-lightbox__close:hover,
.im-photo-lightbox__prev:hover,
.im-photo-lightbox__next:hover{
  background:#d6a20d;
  border-color:#d6a20d;
}
.im-photo-lightbox__close{
  top:22px;
  right:22px;
  width:46px;
  height:46px;
  border-radius:50%;
  font-size:24px;
}
.im-photo-lightbox__prev,
.im-photo-lightbox__next{
  top:50%;
  width:48px;
  height:58px;
  transform:translateY(-50%);
  font-size:24px;
}
.im-photo-lightbox__prev{left:22px}
.im-photo-lightbox__next{right:22px}
body.im-lightbox-open{overflow:hidden!important}
@media(max-width:700px){
  .im-photo-lightbox{padding:58px 12px 22px}
  .im-photo-lightbox__image{max-width:96vw;max-height:82vh}
  .im-photo-lightbox__close{top:12px;right:12px;width:42px;height:42px}
  .im-photo-lightbox__prev,.im-photo-lightbox__next{width:42px;height:52px}
  .im-photo-lightbox__prev{left:8px}
  .im-photo-lightbox__next{right:8px}
}


/* V2.2.14 — SAFARI / WEBKIT COMPATIBILITY
   Rendering-only fallbacks; approved layout and motion remain unchanged. */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,video,svg{max-width:100%}

/* Preserve the hero height on older Safari, then use the stable viewport where supported. */
.hero{height:100vh;height:100svh}

/* Prevent WebKit compositing flicker on animated/cropped surfaces. */
.aperture-loader,
.loader-panel,
.aperture-intro,
.aperture-shell,
.aperture-blades,
.blade,
.hero-slide,
.strip-track,
.strip-track-v214,
.story-panorama .seeing-media img{
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.blade{
  -webkit-clip-path:polygon(0 0,100% 16%,76% 100%,0 72%);
  clip-path:polygon(0 0,100% 16%,76% 100%,0 72%);
}

/* Allow Grid/Flex children to shrink instead of forcing horizontal page overflow in Safari. */
.site-header>*,
.intro-grid>*,
.section-head>*,
.mosaic>*,
.contact>*,
.reviews>*,
.expertise-cards>*,
.feeling-grid>*,
.heartbeat-grid>*,
.gallery-grid>*,
.shoot-grid>*{min-width:0}

/* Momentum scrolling and predictable snapping for touch Safari. */
.instagram-home.instagram-v214 .insta-wide-grid,
.reviews-clean .review-window{
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}

/* Use Safari's live viewport and safe areas for the fullscreen photo viewer. */
.im-photo-lightbox{
  width:100vw;
  height:100vh;
  height:100dvh;
  padding-top:max(28px,env(safe-area-inset-top));
  padding-right:max(28px,env(safe-area-inset-right));
  padding-bottom:max(28px,env(safe-area-inset-bottom));
  padding-left:max(28px,env(safe-area-inset-left));
  -webkit-overflow-scrolling:touch;
}
.im-photo-lightbox__image{
  max-height:88vh;
  max-height:88dvh;
}
.im-photo-lightbox__close{
  top:max(22px,env(safe-area-inset-top));
  right:max(22px,env(safe-area-inset-right));
}
.im-photo-lightbox__prev{left:max(22px,env(safe-area-inset-left))}
.im-photo-lightbox__next{right:max(22px,env(safe-area-inset-right))}

@media(max-width:700px){
  .im-photo-lightbox{
    padding-top:max(58px,env(safe-area-inset-top));
    padding-right:max(12px,env(safe-area-inset-right));
    padding-bottom:max(22px,env(safe-area-inset-bottom));
    padding-left:max(12px,env(safe-area-inset-left));
  }
  .im-photo-lightbox__image{max-height:82vh;max-height:82dvh}
  .im-photo-lightbox__close{
    top:max(12px,env(safe-area-inset-top));
    right:max(12px,env(safe-area-inset-right));
  }
  .im-photo-lightbox__prev{left:max(8px,env(safe-area-inset-left))}
  .im-photo-lightbox__next{right:max(8px,env(safe-area-inset-right))}
}

/* Avoid sticky hover states after tapping cards on iPhone/iPad. */
@media(hover:none){
  .mosaic figure:hover img,
  .service-list article:hover,
  .gallery-cta:hover{
    transform:none;
  }
}


/* V2.2.15 — ACCESSIBLE CINEMATIC SOUND CONTROL */
.cinematic-frame{position:relative}
.cinematic-sound-toggle{
  position:absolute;
  top:18px;
  right:18px;
  z-index:5;
  min-height:42px;
  padding:0 16px;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  background:rgba(12,12,11,.62);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font:500 9px/1 "DM Sans",sans-serif;
  letter-spacing:.13em;
  text-transform:uppercase;
  cursor:pointer;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
  touch-action:manipulation;
}
.cinematic-sound-toggle:hover,
.cinematic-sound-toggle:focus-visible{
  background:rgba(214,162,13,.92);
  border-color:#d6a20d;
  outline:none;
}
.cinematic-sound-toggle:active{transform:scale(.97)}
.cinematic-sound-toggle[aria-pressed="true"] .cinematic-sound-icon{color:#f0c854}
.cinematic-sound-icon{font-size:14px;line-height:1}
@media(max-width:700px){
  .cinematic-sound-toggle{
    top:12px;
    right:12px;
    min-height:38px;
    padding:0 13px;
    font-size:8px;
  }
}
