:root{
  --gd-earth:#1d1915;
  --gd-earth-2:#29221c;
  --gd-green:#40543b;
  --gd-green-2:#62735c;
  --gd-sand:#dfcfbc;
  --gd-paper:#f8f6f1;
  --gd-white:#fff;
  --gd-ink:#1b1815;
  --gd-muted:#777067;
  --gd-shell:min(1180px,calc(100vw - 64px));
  --gd-serif:"Playfair Display",Georgia,serif;
  --gd-sans:"Barlow",Arial,sans-serif;
  --gd-ease:cubic-bezier(.22,1,.36,1);
  --gd-shadow:0 30px 80px rgba(37,30,23,.12);
}

/* ---------- Reset / global ---------- */
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--gd-paper);
  color:var(--gd-ink);
  font-family:var(--gd-sans);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
*{box-sizing:border-box}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
body.gd-menu-open{overflow:hidden}
.wp-site-blocks,.wp-block-shortcode{margin:0!important;padding:0!important;max-width:none!important}
.gd-shell{width:var(--gd-shell);margin-inline:auto}
.gd-main{overflow:hidden}
.gd-main--service{background:#171411}
.gd-section{position:relative;padding:clamp(88px,9vw,145px) 0}
.gd-section--paper{background:var(--gd-paper)}
.gd-kicker{
  margin:0 0 15px;
  color:var(--gd-green);
  font-size:11px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}
h1,h2,h3{margin:0;font-family:var(--gd-serif);font-weight:500;line-height:1.02}
h2{font-size:clamp(43px,5.4vw,76px);letter-spacing:-.035em}
h2 em,.gd-about-title em,.gd-contact-title em{color:var(--gd-green);font-style:normal}
p{margin:0 0 1.2em}
.gd-copy{max-width:570px}
.gd-copy--wide{max-width:800px}
.gd-copy p{color:#625c55;font-size:clamp(16px,1.35vw,19px)}
.gd-lead-dark{max-width:820px;font-size:clamp(17px,1.55vw,21px)!important}
.gd-home-title{font-size:clamp(43px,5.4vw,76px);letter-spacing:-.035em}
.gd-home-title em{color:var(--gd-green);font-style:normal}
.gd-home-seo-heading,.gd-service-seo-heading{
  max-width:920px;
  margin:24px 0 28px;
  color:#2b2621;
  font-size:clamp(28px,3vw,44px);
  line-height:1.12;
  letter-spacing:-.025em;
}
.gd-local-note{
  max-width:920px;
  margin:26px 0 0;
  padding:16px 0 16px 20px;
  border-left:2px solid rgba(64,84,59,.34);
  color:#5f5952!important;
  font-size:clamp(14px,1.08vw,16px)!important;
  line-height:1.7;
}
.gd-local-note strong{color:var(--gd-green);font-weight:600}
.gd-signature{width:170px;margin-top:25px;opacity:.68}

/* ---------- Buttons ---------- */
.gd-btn{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:49px;
  padding:0 25px;
  border:1px solid var(--gd-green);
  background:var(--gd-green);
  color:#fff;
  cursor:pointer;
  font-size:13px;
  font-weight:600;
  letter-spacing:.04em;
  transition:transform .35s var(--gd-ease),background .35s,color .35s,border-color .35s;
}
.gd-btn:before{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:-1;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.16) 46%,transparent 72%);
  transform:translateX(-140%);
  transition:transform .75s var(--gd-ease);
}
.gd-btn:hover{transform:translateY(-3px);background:var(--gd-earth);border-color:var(--gd-earth)}
.gd-btn:hover:before{transform:translateX(140%)}
.gd-btn--ghost{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.8);color:#fff;backdrop-filter:blur(5px)}
.gd-btn--ghost:hover{background:#fff;border-color:#fff;color:var(--gd-earth)}

/* ---------- Reveal motion ---------- */
.js .gd-reveal{opacity:0;transform:translateY(35px);transition:opacity .85s var(--gd-ease),transform .85s var(--gd-ease)}
.js .gd-reveal--mid{transition-delay:.1s}
.js .gd-reveal--late{transition-delay:.18s}
.js .gd-reveal.is-visible{opacity:1;transform:none}
.js [data-gd-title]{opacity:0;transform:translateY(30px);clip-path:inset(0 0 100% 0);transition:opacity .95s .1s var(--gd-ease),transform .95s .1s var(--gd-ease),clip-path 1.05s .1s var(--gd-ease)}
.js [data-gd-title].is-visible{opacity:1;transform:none;clip-path:inset(0 0 0 0)}

/* ---------- Header ---------- */
.gd-header{
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  transition:height .35s,padding .35s,background .35s,box-shadow .35s;
}
.gd-header__inner{display:flex}
.gd-logo{display:flex;align-items:center;justify-content:center}
.gd-logo .custom-logo-link,.gd-logo__fallback{display:block}
.gd-logo img{object-fit:contain}
.gd-nav__list{display:flex;align-items:center;list-style:none;margin:0;padding:0}
.gd-nav__list a{position:relative;white-space:nowrap}
.gd-nav__list a:after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-8px;
  height:1px;
  background:#fff;
  transition:right .3s;
}
.gd-nav__list a:hover:after,.gd-nav__list .current-menu-item>a:after{right:0}
.gd-menu-toggle{display:none;background:none;border:0;color:#fff;padding:8px;cursor:pointer}
.gd-menu-toggle span{display:block;width:27px;height:1px;margin:6px 0;background:currentColor;transition:transform .3s,opacity .3s}
.gd-menu-toggle em{display:none}
.gd-header.is-solid{background:rgba(25,21,18,.96);box-shadow:0 12px 36px rgba(12,10,8,.14);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}

@media (min-width:901px){
  .gd-header,.gd-header.is-overlay,.gd-header.is-solid{
    height:190px;
    padding:18px 0 0;
    background:linear-gradient(180deg,rgba(10,15,12,.40) 0%,rgba(10,15,12,.19) 62%,rgba(10,15,12,0) 100%);
    box-shadow:none;
  }
  .admin-bar .gd-header{top:32px}
  .gd-header__inner,.gd-header.is-solid .gd-header__inner{
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:13px;
  }
  .gd-logo{height:112px}
  .gd-logo img{width:220px;max-width:220px;max-height:108px}
  .gd-nav{
    width:100%;
    min-height:50px;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:15px 28px 0;
    border-top:1px solid rgba(255,255,255,.20);
  }
  .gd-nav__list{gap:clamp(28px,3vw,58px)}
  .gd-nav__list a{
    color:#fff;
    font-family:var(--gd-serif);
    font-size:13.5px;
    font-weight:600;
    text-shadow:0 2px 14px rgba(0,0,0,.28);
  }
  .gd-header.is-scrolled{
    height:142px;
    padding-top:7px;
    background:rgba(24,29,23,.95);
    backdrop-filter:blur(15px);
    -webkit-backdrop-filter:blur(15px);
    box-shadow:0 10px 34px rgba(0,0,0,.16);
  }
  .gd-header.is-scrolled .gd-logo{height:80px}
  .gd-header.is-scrolled .gd-logo img{width:172px;max-width:172px;max-height:78px}
  .gd-header.is-scrolled .gd-nav{min-height:48px;padding-top:13px;border-top-color:rgba(255,255,255,.14)}
}
@media (min-width:901px) and (max-width:1180px){
  .gd-header{height:176px;padding-top:14px}
  .gd-logo{height:100px}
  .gd-logo img{width:188px;max-width:188px}
  .gd-nav__list{gap:22px}
  .gd-nav__list a{font-size:12px}
}

/* ---------- Hero ---------- */
.gd-hero{position:relative;display:flex;isolation:isolate;overflow:hidden;background:var(--gd-earth)}
.gd-hero__poster{position:absolute;inset:-3%;z-index:-3;background-size:cover;background-position:center;transform:scale(1.04)}
.gd-hero__shade{position:absolute;inset:0;z-index:-1;pointer-events:none}
.gd-hero--home-video{min-height:100svh;width:100%;background:#10130f}
.gd-hero--home-video .gd-hero__video--home{
  display:block;
  position:absolute;
  z-index:-2;
  top:50%;
  left:50%;
  width:177.77777778vh;
  height:56.25vw;
  min-width:100%;
  min-height:100%;
  border:0;
  transform:translate(-50%,-50%) scale(1.012);
  pointer-events:none;
  background:transparent;
}
.gd-hero__shade--video{background:linear-gradient(180deg,rgba(8,12,9,.18) 0%,rgba(8,12,9,.03) 54%,rgba(8,12,9,.12) 100%)}

.gd-hero--service{
  min-height:min(68svh,760px);
  align-items:center;
  justify-content:center;
  background-image:var(--gd-hero-image);
  background-size:cover;
  background-position:center calc(50% + var(--gd-hero-shift,0px));
}
.gd-hero--service-video{
  min-height:100svh;
  background-image:none;
  background-color:#10130f
}
.gd-hero__video--service-local{
  position:absolute;
  z-index:-2;
  inset:-5% 0;
  width:100%;
  height:110%;
  object-fit:cover;
  object-position:center 50%;
  transform:translate3d(0,var(--gd-hero-shift,0px),0);
  transform-origin:center;
  pointer-events:none;
  background:#10130f;
  will-change:transform;
}
.gd-hero__shade--classic{
  background:
    linear-gradient(180deg,rgba(10,12,9,.38) 0%,rgba(10,12,9,.10) 43%,rgba(10,12,9,.43) 100%),
    linear-gradient(90deg,rgba(8,10,7,.24),rgba(8,10,7,.03) 58%,rgba(8,10,7,.14));
}
.gd-hero__content{position:relative;z-index:1}
.gd-hero__content--center{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding-top:clamp(128px,11vw,172px);
  padding-bottom:58px;
  text-align:center;
}
.gd-hero__content--center .gd-kicker{margin-bottom:18px;color:#fff;font-size:12px;letter-spacing:.20em;text-shadow:0 2px 18px rgba(0,0,0,.32)}
.gd-display--service{
  max-width:1120px;
  margin-inline:auto;
  color:#fff;
  font-family:var(--gd-serif);
  font-size:clamp(58px,5.4vw,88px);
  font-weight:500;
  line-height:1.02;
  letter-spacing:-.04em;
  text-shadow:0 3px 28px rgba(0,0,0,.34);
  text-wrap:balance;
}
.gd-actions{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:32px;flex-wrap:wrap}
.gd-hero__content--center .gd-btn{min-width:165px;min-height:52px;padding-inline:25px}

/* ---------- Home thumbnails ---------- */
.gd-showcase--thumbs-only{width:100%;margin:0;padding:0;background:#fff}
.gd-showcase__strip--full{
  width:100vw;
  max-width:none;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:0;
  padding:8px 0 0;
}
.gd-showcase__strip--full figure{height:clamp(220px,18vw,365px);margin:0;overflow:hidden;background:#1d1915}
.gd-showcase__strip--full img{width:100%;height:100%;object-fit:cover;filter:saturate(.98) contrast(1.02)}

/* Home editorial image: client photo integrated into the existing composition. */
.gd-editorial__image--home-acc img{object-position:center 54%}

/* ---------- Shared light scenes ---------- */
.gd-light-scene{
  --gd-light-accent:rgba(64,84,59,.13);
  --gd-light-warm:rgba(223,207,188,.24);
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(circle at calc(86% + var(--gd-light-x,0px)) 14%,var(--gd-light-accent),transparent 31%),
    radial-gradient(circle at calc(8% - var(--gd-light-x,0px)) 86%,var(--gd-light-warm),transparent 28%),
    linear-gradient(180deg,#fbfaf7 0%,var(--gd-paper) 100%);
}
.gd-light-scene:after{
  content:"";
  position:absolute;
  z-index:-1;
  top:clamp(58px,7vw,105px);
  right:calc((100vw - var(--gd-shell))/2 - 90px);
  width:min(25vw,330px);
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(64,84,59,.2) 42%,rgba(64,84,59,.03));
  transform:translate3d(var(--gd-light-line,0px),0,0);
}
.gd-light-scene>.gd-shell{position:relative;z-index:1}
.gd-light-scene .gd-kicker{display:inline-flex;align-items:center;gap:13px;margin-bottom:18px}
.gd-light-scene .gd-kicker:before{
  content:"";
  width:27px;
  height:1px;
  background:currentColor;
  opacity:.65;
  transform:scaleX(.45);
  transform-origin:left;
  transition:transform .75s var(--gd-ease),width .55s var(--gd-ease);
}
.gd-light-scene .gd-reveal.is-visible .gd-kicker:before,
.gd-light-scene .gd-copy.is-visible .gd-kicker:before,
.gd-light-scene .gd-kicker:hover:before{width:42px;transform:scaleX(1)}
.gd-light-scene h1,.gd-light-scene h2{color:#211c18;text-shadow:0 18px 55px rgba(39,31,24,.04);text-wrap:balance}
.gd-light-scene h1 em,.gd-light-scene h2 em{color:var(--gd-green);font-style:normal}
.gd-copy h2:not(.gd-home-seo-heading):not(.gd-service-seo-heading),.gd-home-title,.gd-about-title,.gd-contact-title,.gd-section-heading h2{position:relative}
.gd-copy h2:not(.gd-home-seo-heading):not(.gd-service-seo-heading):after,.gd-home-title:after,.gd-about-title:after,.gd-contact-title:after,.gd-section-heading h2:after,.gd-reviews-head h2:after{
  content:"";
  display:block;
  width:62px;
  height:1px;
  margin-top:22px;
  background:linear-gradient(90deg,var(--gd-green),rgba(63,81,57,.15));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 1s .38s var(--gd-ease),width .45s var(--gd-ease);
}
.gd-light-scene .gd-copy h2:not(.gd-home-seo-heading):not(.gd-service-seo-heading):after,.gd-light-scene .gd-home-title:after,.gd-light-scene .gd-about-title:after,.gd-light-scene .gd-contact-title:after,.gd-light-scene .gd-reviews-head h2:after{
  width:78px;
  height:2px;
  margin-top:24px;
  background:linear-gradient(90deg,var(--gd-green) 0 48px,var(--gd-sand) 48px 78px);
  box-shadow:98px 0 0 -0.5px rgba(64,84,59,.13);
}
.gd-copy.is-visible h2:not(.gd-home-seo-heading):not(.gd-service-seo-heading):after,.gd-reveal.is-visible h2:not(.gd-home-seo-heading):not(.gd-service-seo-heading):after,.gd-home-title.is-visible:after,.gd-about-title.is-visible:after,.gd-contact-title.is-visible:after,[data-gd-title].is-visible:after,.gd-reviews-head h2:after{transform:scaleX(1)}
.gd-copy:hover h2:not(.gd-home-seo-heading):not(.gd-service-seo-heading):after,.gd-home-title:hover:after,.gd-about-title:hover:after,.gd-contact-title:hover:after{width:98px}

/* ---------- Editorial / intro / about ---------- */
.gd-intro{padding-top:clamp(105px,8vw,140px);padding-bottom:clamp(110px,9vw,150px)}
.gd-editorial{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(65px,9vw,130px);align-items:center}
.gd-editorial--home{grid-template-columns:1.03fr .97fr;gap:clamp(70px,7vw,120px)}
.gd-editorial--home .gd-copy{max-width:650px}
.gd-editorial--home .gd-copy p{font-size:clamp(17px,1.12vw,20px)}
.gd-editorial__image,.gd-about-portrait{position:relative;margin:0}
.gd-editorial__image:before,.gd-about-portrait:before{
  content:"";
  position:absolute;
  inset:18px -18px -18px 18px;
  z-index:-1;
  border:1px solid rgba(63,81,57,.24);
  opacity:0;
  transform:translate(-16px,-12px);
  transition:opacity .8s .15s var(--gd-ease),transform .9s .15s var(--gd-ease);
}
.gd-editorial__image.is-visible:before,.gd-about-portrait.is-visible:before{opacity:1;transform:none}
.gd-editorial__image:after{
  content:"";
  position:absolute;
  right:-32px;
  bottom:-32px;
  z-index:-1;
  width:96px;
  height:170px;
  background:linear-gradient(180deg,var(--gd-green),#53694c);
  box-shadow:0 24px 55px rgba(64,84,59,.16);
}
.gd-editorial__image img{width:100%;height:clamp(450px,34vw,560px);object-fit:cover;filter:saturate(.98) contrast(1.02);transition:transform .9s var(--gd-ease),filter .7s var(--gd-ease)}
.gd-editorial__image:hover img{transform:scale(1.018);filter:saturate(1.03) contrast(1.02)}
.gd-light-scene--editorial .gd-copy,.gd-light-scene--quality .gd-copy,.gd-light-scene--about .gd-copy{position:relative}
.gd-light-scene--editorial .gd-copy:before,.gd-light-scene--quality .gd-copy:before,.gd-light-scene--about .gd-copy:before{
  content:"";
  position:absolute;
  z-index:-1;
  left:-54px;
  top:-36px;
  width:110px;
  height:110px;
  border:1px solid rgba(64,84,59,.10);
  border-radius:50%;
  opacity:.4;
  transform:scale(.72);
  transition:transform 1.1s var(--gd-ease),opacity 1.1s var(--gd-ease);
}
.gd-light-scene--editorial .gd-copy.is-visible:before,.gd-light-scene--quality .gd-copy.is-visible:before,.gd-light-scene--about .gd-copy.is-visible:before{opacity:1;transform:scale(1)}

.gd-about-intro{padding-top:clamp(165px,12vw,205px);padding-bottom:clamp(105px,8vw,140px)}
.gd-about-intro__grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(75px,8vw,125px);align-items:center;max-width:1220px}
.gd-about-portrait{max-width:520px;z-index:2}
.gd-about-portrait:before{inset:25px -24px -25px 25px;border-color:rgba(64,84,59,.3)}
.gd-about-portrait:after{
  content:"";
  position:absolute;
  left:-38px;
  bottom:-34px;
  z-index:-1;
  width:108px;
  height:188px;
  background:linear-gradient(180deg,var(--gd-sand),rgba(223,207,188,.38));
}
.gd-about-portrait img{width:100%;height:clamp(610px,45vw,720px);object-fit:cover;object-position:center top;transition:transform .9s var(--gd-ease),filter .7s var(--gd-ease)}
.gd-about-portrait:hover img{transform:scale(1.018);filter:saturate(1.03) contrast(1.02)}
.gd-light-scene--about .gd-copy{max-width:650px}
.gd-light-scene--about .gd-copy p{font-size:clamp(17px,1.15vw,20px)}
.gd-about-title{margin-bottom:36px;font-size:clamp(66px,6.2vw,96px);letter-spacing:-.045em}
.gd-quality .gd-editorial__image img{height:clamp(430px,32vw,540px)}

/* ---------- Services ---------- */
.gd-section-heading{display:grid;grid-template-columns:.82fr 1fr;align-items:end;gap:85px;margin-bottom:64px}
.gd-section-heading h2{font-size:clamp(54px,5vw,78px)}
.gd-section-heading>p:last-child{max-width:660px;margin-bottom:8px;color:#b9b1a7;font-size:18px}
.gd-services{
  isolation:isolate;
  overflow:hidden;
  padding-top:clamp(105px,8vw,135px);
  padding-bottom:clamp(110px,9vw,145px);
  color:#fff;
  background:
    radial-gradient(circle at 14% 15%,rgba(97,120,86,.18),transparent 34%),
    radial-gradient(circle at 88% 80%,rgba(217,196,167,.08),transparent 28%),
    linear-gradient(135deg,#171411 0%,#211c18 54%,#171411 100%);
}
.gd-services:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.42;
  background:
    linear-gradient(115deg,transparent 0 46%,rgba(255,255,255,.025) 46.15% 46.3%,transparent 46.45%),
    linear-gradient(20deg,transparent 0 72%,rgba(255,255,255,.018) 72.1% 72.25%,transparent 72.4%);
}
.gd-services .gd-kicker{color:#a8b89d}
.gd-services .gd-section-heading h2{color:#fff}
.gd-services .gd-section-heading h2 em{color:#c8d3be}
.gd-services .gd-section-heading h2:after{width:62px;height:1px;margin-top:22px;background:linear-gradient(90deg,#c8d3be,rgba(200,211,190,.12));box-shadow:none}
.gd-service-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.gd-service-grid.is-three{grid-template-columns:repeat(3,1fr);max-width:1120px}
.gd-service-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.11);
  background:rgba(255,255,255,.055);
  backdrop-filter:blur(4px);
  transition:transform .45s var(--gd-ease),box-shadow .45s,border-color .45s;
}
.gd-service-card:hover{transform:translateY(-8px);border-color:rgba(255,255,255,.22);box-shadow:0 30px 65px rgba(0,0,0,.28)}
.gd-service-card__image{height:clamp(275px,20vw,330px);overflow:hidden}
.gd-service-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--gd-ease)}
.gd-service-card:hover img{transform:scale(1.045)}
.gd-service-card__body{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px 22px 27px;color:#fff}
.gd-service-card__body strong{color:#fff;font-family:var(--gd-serif);font-size:22px;font-weight:500;line-height:1.1}
.gd-service-card__body i{color:#b9c7af;font-size:11px;font-style:normal;white-space:nowrap}

.gd-services--related{margin:0;border:0;padding-bottom:clamp(105px,8vw,130px)}
.gd-services--related .gd-section-heading{grid-template-columns:minmax(0,.78fr) minmax(0,1fr);align-items:end;margin-bottom:58px}
.gd-services--related .gd-section-heading h2{grid-column:1;justify-self:start;max-width:680px;margin:0;text-align:left}
.gd-services--related .gd-section-heading>p:last-child{grid-column:2;justify-self:start;margin:0;text-align:left}
.gd-main--service + .gd-footer{margin-top:-1px;border-top:0;box-shadow:0 -2px 0 #171411}

/* ---------- Service detail ---------- */
.gd-service-intro{padding-top:clamp(92px,7vw,125px);padding-bottom:clamp(105px,11vw,165px)}
.gd-service-intro__inner{max-width:none}
.gd-service-intro__inner>.gd-copy{max-width:980px;margin-bottom:clamp(58px,6vw,88px)}
.gd-service-lead--hero-follow{max-width:960px;font-size:clamp(20px,1.65vw,27px)!important;line-height:1.58;color:#5e574f}
.gd-service-gallery{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:0;perspective:1200px}
.gd-service-gallery:before{
  content:"";
  position:absolute;
  left:-64px;
  top:-68px;
  z-index:0;
  width:150px;
  height:150px;
  border:1px solid rgba(64,84,59,.16);
  border-radius:50%;
  pointer-events:none;
}
.gd-service-gallery:after{
  content:"";
  position:absolute;
  right:-42px;
  bottom:-36px;
  z-index:0;
  width:72px;
  height:155px;
  background:linear-gradient(180deg,var(--gd-green),#263322);
}
.gd-media{
  position:relative;
  z-index:1;
  overflow:hidden;
  height:clamp(410px,32vw,540px);
  margin:0;
  background:#1d1915;
  box-shadow:0 18px 50px rgba(37,30,23,.08);
  transition:transform .55s var(--gd-ease),box-shadow .55s var(--gd-ease);
}
.gd-service-gallery .gd-media:first-child{transform:translateY(18px)}
.gd-service-gallery .gd-media:last-child{transform:translateY(-10px)}
.gd-service-gallery .gd-media:hover:first-child{transform:translateY(8px)}
.gd-service-gallery .gd-media:hover:last-child{transform:translateY(-20px)}
.gd-service-gallery .gd-media:hover{box-shadow:0 30px 70px rgba(37,30,23,.15)}
.gd-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.98) contrast(1.02)}
.gd-service-gallery figcaption{
  position:absolute;
  left:20px;
  bottom:20px;
  z-index:3;
  padding:9px 13px;
  border:1px solid rgba(29,25,21,.06);
  background:rgba(255,255,255,.9);
  box-shadow:0 8px 22px rgba(37,30,23,.08);
  backdrop-filter:blur(8px);
  color:var(--gd-earth);
  font-size:11px;
  letter-spacing:.13em;
  text-transform:uppercase;
  transition:transform .45s var(--gd-ease),background .45s,color .45s;
}
.gd-service-gallery .gd-media:hover figcaption{transform:translate(5px,-5px);background:rgba(29,25,21,.86);color:#fff}

/* ---------- Reviews ---------- */
.gd-section--reviews{padding-top:clamp(105px,8vw,140px);padding-bottom:clamp(110px,8vw,145px);border:0}
.gd-reviews-head{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:68px}
.gd-reviews-head h2{font-size:clamp(50px,4.6vw,72px)}
.gd-rating{display:flex;flex-direction:column;align-items:flex-end;padding:18px 22px;border-left:1px solid rgba(64,84,59,.18);background:rgba(255,255,255,.36);backdrop-filter:blur(8px);text-align:right}
.gd-rating b{font-family:var(--gd-serif);font-size:27px}
.gd-rating span,.gd-review span{color:#c0902a;letter-spacing:.08em}
.gd-rating small{display:block;max-width:290px;margin-top:3px;color:#7a736b}
.gd-review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}
.gd-review{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:255px;
  padding:34px;
  border:1px solid rgba(64,84,59,.10);
  background:#fff;
  box-shadow:0 22px 60px rgba(37,30,23,.055);
  transition:transform .55s var(--gd-ease),box-shadow .55s var(--gd-ease),border-color .55s;
}
.gd-review:before{
  content:"";
  position:absolute;
  z-index:-1;
  right:-85px;
  top:-85px;
  width:150px;
  height:150px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(63,81,57,.13),transparent 70%);
  opacity:.55;
  transform:scale(.72);
  transition:transform .55s var(--gd-ease),opacity .55s;
}
.gd-review:nth-child(2){transform:translateY(18px)}
.gd-review:hover{transform:translateY(-7px);border-color:rgba(64,84,59,.22);box-shadow:0 32px 75px rgba(37,30,23,.10)}
.gd-review:nth-child(2):hover{transform:translateY(9px)}
.gd-review:hover:before{transform:scale(1.35);opacity:1}
.gd-review span{transition:letter-spacing .45s var(--gd-ease),transform .45s var(--gd-ease)}
.gd-review:hover span{letter-spacing:.13em;transform:translateX(3px)}
.gd-review p{margin:22px 0 auto;font-family:var(--gd-serif);font-size:20px;line-height:1.48}
.gd-review b{display:block;margin-top:22px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}

/* ---------- Contact / form / map ---------- */
.gd-contact-flow{position:relative;isolation:isolate;padding-top:clamp(115px,8vw,145px);padding-bottom:clamp(105px,8vw,135px);background:var(--gd-paper)}
.gd-contact-flow:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  z-index:-1;
  height:clamp(520px,58vw,720px);
  background:
    radial-gradient(circle at 12% 12%,rgba(87,109,78,.22),transparent 36%),
    radial-gradient(circle at 82% 16%,rgba(226,213,198,.07),transparent 26%),
    linear-gradient(130deg,#181512 0%,#25201b 62%,#171411 100%);
  clip-path:polygon(0 0,100% 0,100% 87%,0 100%);
}
.gd-contact-flow__top{position:relative;z-index:3;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(65px,6vw,100px);align-items:start}
.gd-contact-flow__top .gd-copy{max-width:500px;padding-top:36px}
.gd-contact-flow__top .gd-copy .gd-kicker{color:#9fb296}
.gd-contact-flow__top .gd-copy h2,.gd-contact-flow__top .gd-copy h2 em{color:#fff}
.gd-contact-flow__top .gd-copy h2{margin-bottom:25px;font-size:clamp(55px,5vw,78px)}
.gd-contact-flow__top .gd-copy p{color:#c8c0b7}
.gd-form-wrap{box-shadow:0 34px 90px rgba(13,11,9,.24);transition:transform .6s var(--gd-ease),box-shadow .6s var(--gd-ease)}
.gd-form-wrap:hover{transform:translateY(3px);box-shadow:0 42px 100px rgba(13,11,9,.34)}
.gd-form{padding:clamp(38px,3.4vw,58px);border:1px solid rgba(32,27,23,.07);background:#fff;color:var(--gd-ink)}
.gd-form h3{margin-bottom:30px;font-size:clamp(31px,2.5vw,42px)}
.gd-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.gd-form label{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;color:#6a635c;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.gd-form input,.gd-form select,.gd-form textarea{width:100%;padding:10px 0;border:0;border-bottom:1px solid #cfc7bd;border-radius:0;outline:none;background:transparent;color:var(--gd-ink);font-family:var(--gd-sans);font-size:15px}
.gd-form textarea{padding:12px;border:1px solid #cfc7bd;resize:vertical}
.gd-form input:focus,.gd-form select:focus,.gd-form textarea:focus{border-color:var(--gd-green)}
.gd-form .gd-btn{margin-top:3px}
.gd-form__v1{display:none;margin:16px 0 0;color:#83796f;font-size:11px}
.gd-form.is-tested .gd-form__v1{display:block}
.gd-map-card{position:relative;z-index:1;margin-top:88px;padding-right:0}
.gd-map-card iframe{display:block;width:100%;height:clamp(470px,35vw,570px);border:0;filter:saturate(.82) contrast(.96);box-shadow:0 20px 55px rgba(30,24,19,.10)}
.gd-contact-details{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:48px;padding-top:35px}
.gd-contact-details div{position:relative;display:flex;flex-direction:column;padding-top:17px;border-top:1px solid #d8d0c6;transition:transform .45s var(--gd-ease),border-color .45s}
.gd-contact-details div:before{content:"";position:absolute;left:0;top:-1px;width:0;height:1px;background:var(--gd-green);transition:width .65s var(--gd-ease)}
.gd-contact-details div:hover{transform:translateY(-4px);border-color:transparent}
.gd-contact-details div:hover:before{width:72px}
.gd-contact-details small{color:var(--gd-green);font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.gd-contact-details b,.gd-contact-details a{color:#39342f;font-size:15px;font-weight:500}
.gd-contact-details__note{margin-top:5px;color:#7d756c!important;font-size:12px!important;font-weight:400!important}

/* ---------- Contact page / generic ---------- */
.gd-contact-hero{min-height:520px;display:flex;align-items:flex-end;padding:200px 0 95px}
.gd-contact-title{max-width:980px;font-size:clamp(58px,7vw,95px);letter-spacing:-.04em}
.gd-contact-hero p:last-child{max-width:620px;margin-top:25px;color:#645d56;font-size:20px}
.gd-generic,.gd-404{min-height:70vh;padding:180px 0 110px;background:var(--gd-paper);color:var(--gd-ink)}
.gd-generic h1,.gd-404 h1{margin-bottom:40px;font-size:clamp(48px,6vw,90px)}
.gd-prose{max-width:900px}
.gd-prose a{text-decoration:underline}

/* ---------- Footer ---------- */
.gd-footer{margin:0;background:var(--gd-earth);color:#c9c0b6;padding:105px 0 34px}
.gd-footer__grid{display:grid;grid-template-columns:1.55fr repeat(3,1fr);gap:68px}
.gd-footer__brand{max-width:340px}
.gd-footer__brand .gd-logo img{width:220px;margin-bottom:20px}
.gd-footer__brand p,.gd-footer__grid a,.gd-footer__grid span{font-size:14px}
.gd-footer__grid>div:not(:first-child){display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.gd-footer__grid b{margin-bottom:8px;color:#fff;font-family:var(--gd-serif);font-size:20px;font-weight:500}
.gd-footer a{transition:transform .35s var(--gd-ease),opacity .35s}
.gd-footer__grid>div:not(.gd-footer__brand) a:hover{transform:translateX(5px);color:#fff}
.gd-footer__bottom{display:flex;justify-content:space-between;gap:20px;margin-top:64px;padding-top:24px;border-top:1px solid rgba(255,255,255,.09);color:#817970;font-size:12px}

/* ---------- Media motion ---------- */
.gd-depth-media{position:relative;overflow:hidden}
.gd-depth-media>img{transform:translate3d(0,var(--gd-media-shift,0px),0) scale(1.045);transition:transform .75s var(--gd-ease),filter .6s var(--gd-ease)}
.gd-depth-media:hover>img{transform:translate3d(0,var(--gd-media-shift,0px),0) scale(1.065);filter:saturate(1.04) contrast(1.025)}
.gd-showcase .gd-depth-media:after,.gd-service-gallery .gd-depth-media:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(120deg,transparent 0 58%,rgba(255,255,255,.12) 68%,transparent 78%);
  transform:translateX(-130%);
  transition:transform 1.05s var(--gd-ease);
}
.gd-showcase .gd-depth-media:hover:after,.gd-service-gallery .gd-depth-media:hover:after{transform:translateX(130%)}

@media (min-width:901px){
  .gd-light-scene--editorial .gd-editorial__image,
  .gd-light-scene--quality .gd-editorial__image,
  .gd-light-scene--about .gd-about-portrait{transform:translate3d(0,var(--gd-light-media,0px),0)}
}

/* ---------- Responsive ---------- */
@media (min-width:1280px){
  :root{--gd-shell:min(1420px,calc(100vw - 96px))}
}
@media (max-width:1180px){
  :root{--gd-shell:min(100% - 46px,1080px)}
  .gd-service-grid{grid-template-columns:repeat(2,1fr)}
  .gd-service-grid.is-three{grid-template-columns:repeat(3,1fr)}
  .gd-services .gd-service-card__image{height:285px}
  .gd-service-gallery .gd-media{height:410px}
}
@media (max-width:900px){
  :root{--gd-shell:calc(100vw - 38px)}
  .admin-bar .gd-header{top:46px}
  .gd-header{height:84px;padding:0;background:linear-gradient(180deg,rgba(15,13,11,.72),rgba(15,13,11,.08))}
  .gd-header.is-scrolled{height:76px;background:rgba(29,25,21,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 10px 40px rgba(0,0,0,.12)}
  .gd-header__inner{width:var(--gd-shell);min-height:84px;margin-inline:auto;align-items:center;justify-content:space-between;gap:20px}
  .gd-header.is-scrolled .gd-header__inner{min-height:76px}
  .gd-logo{height:auto}
  .gd-logo img{width:158px;max-width:158px;max-height:68px}
  .gd-menu-toggle{display:block;z-index:2}
  .gd-nav{position:fixed;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:100px 28px 50px;border:0;background:#181410;transform:translateX(100%);transition:transform .5s var(--gd-ease)}
  .gd-nav.is-open{transform:none}
  .gd-nav__list{flex-direction:column;align-items:flex-start;gap:16px}
  .gd-nav__list a{color:#fff;font-family:var(--gd-serif);font-size:30px}
  .gd-menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .gd-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .gd-menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  .gd-hero--home-video{min-height:82svh}
  .gd-hero--service{min-height:58svh}
  .gd-hero--service-video{min-height:100svh}
  .gd-hero__content--center{padding-top:105px;padding-bottom:36px}
  .gd-display--service{font-size:clamp(44px,8vw,66px)}
  .gd-showcase__strip--full{grid-template-columns:1fr 1fr;gap:7px;padding-top:7px}
  .gd-showcase__strip--full figure{height:clamp(180px,42vw,270px)}

  .gd-section{padding:85px 0}
  .gd-editorial,.gd-editorial--home,.gd-section-heading,.gd-contact-flow__top,.gd-about-intro__grid{grid-template-columns:1fr;gap:50px}
  .gd-editorial__image{max-width:650px}
  .gd-light-scene:after{right:-85px;width:230px}
  .gd-service-grid{grid-template-columns:repeat(2,1fr)}
  .gd-service-grid.is-three{grid-template-columns:repeat(3,1fr)}
  .gd-services .gd-section-heading{margin-bottom:48px}
  .gd-services--related .gd-section-heading{grid-template-columns:1fr;gap:18px}
  .gd-services--related .gd-section-heading h2,.gd-services--related .gd-section-heading>p:last-child{grid-column:1}
  .gd-service-gallery .gd-media:first-child,.gd-service-gallery .gd-media:last-child{transform:none}
  .gd-service-gallery .gd-media{height:360px}
  .gd-reviews-head{align-items:flex-start;flex-direction:column;gap:25px}
  .gd-rating{align-items:flex-start;text-align:left}
  .gd-review-grid{grid-template-columns:1fr}
  .gd-review:nth-child(2){transform:none}
  .gd-form-wrap:hover{transform:none}
  .gd-contact-flow:before{height:760px;clip-path:polygon(0 0,100% 0,100% 94%,0 100%)}
  .gd-map-card{margin-top:60px}
  .gd-contact-details{grid-template-columns:1fr 1fr}
  .gd-contact-details div:first-child{grid-column:1/-1}
  .gd-about-intro{padding-top:128px}
  .gd-about-portrait{max-width:440px}
  .gd-about-portrait img{height:540px}
  .gd-footer{padding-top:78px}
  .gd-footer__grid{grid-template-columns:1.4fr 1fr 1fr}
  .gd-footer__grid>div:last-child{grid-column:2/4}
  .gd-contact-hero{min-height:auto;padding-top:140px;padding-bottom:72px}
}
@media (max-width:620px){
  :root{--gd-shell:calc(100vw - 30px)}
  body{font-size:16px}
  .gd-hero--home-video{min-height:76svh}
  .gd-hero--service{min-height:54svh;background-position:center calc(50% + var(--gd-hero-shift,0px))}
  .gd-hero--service-video{min-height:100svh}
  .gd-hero__content--center .gd-kicker{margin-bottom:12px;font-size:10px;letter-spacing:.14em}
  .gd-display--service{font-size:clamp(36px,10vw,50px)}
  .gd-actions{gap:8px;margin-top:20px}
  .gd-hero__content--center .gd-btn{min-width:0;min-height:0;padding:13px 17px;font-size:12px}
  .gd-showcase__strip--full figure{height:43vw}

  .gd-section{padding:70px 0}
  .gd-light-scene{background:radial-gradient(circle at 100% 8%,rgba(64,84,59,.09),transparent 25%),linear-gradient(180deg,#fbfaf7 0%,var(--gd-paper) 100%)}
  .gd-light-scene:after{display:none}
  .gd-light-scene .gd-kicker{gap:9px}
  .gd-light-scene .gd-kicker:before{width:20px}
  .gd-copy h2:not(.gd-home-seo-heading):not(.gd-service-seo-heading):after,.gd-home-title:after,.gd-about-title:after,.gd-contact-title:after,.gd-section-heading h2:after,.gd-reviews-head h2:after{width:66px;margin-top:17px;box-shadow:none}
  .gd-intro{padding-top:78px}
  .gd-editorial__image:before,.gd-about-portrait:before{inset:12px -10px -10px 12px}
  .gd-editorial__image img{height:330px}
  .gd-editorial__image:after{right:-18px;bottom:-20px;width:52px;height:110px}
  .gd-services{padding-top:82px;padding-bottom:88px}
  .gd-service-grid,.gd-service-grid.is-three{grid-template-columns:1fr}
  .gd-services .gd-section-heading{margin-bottom:38px}
  .gd-services .gd-service-card__image{height:300px}
  .gd-service-intro{padding-top:76px;padding-bottom:80px}
  .gd-service-intro__inner>.gd-copy{margin-bottom:45px}
  .gd-service-gallery{grid-template-columns:1fr}
  .gd-service-gallery:before,.gd-service-gallery:after{display:none}
  .gd-service-gallery .gd-media{height:315px}
  .gd-form{padding:27px 20px}
  .gd-form__grid{grid-template-columns:1fr;gap:0}
  .gd-contact-flow{padding-top:84px;padding-bottom:88px}
  .gd-contact-flow:before{height:860px;clip-path:polygon(0 0,100% 0,100% 96%,0 100%)}
  .gd-map-card{margin-top:50px}
  .gd-map-card iframe{height:390px}
  .gd-contact-details{grid-template-columns:1fr;gap:14px}
  .gd-contact-details div:first-child{grid-column:auto}
  .gd-review{min-height:220px;padding:27px}
  .gd-review p{font-size:18px}
  .gd-about-portrait img{height:540px}
  .gd-about-portrait:after{left:-14px;bottom:-16px;width:60px;height:105px}
  .gd-about-title{font-size:clamp(52px,14vw,72px)}
  .gd-rating{padding:0;border-left:0;background:none;backdrop-filter:none}
  .gd-footer__grid{grid-template-columns:1fr 1fr;gap:38px 22px}
  .gd-footer__brand{grid-column:1/-1}
  .gd-footer__grid>div:last-child{grid-column:auto}
  .gd-footer__bottom{flex-direction:column}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .gd-reveal,[data-gd-title],.gd-depth-media>img,.gd-service-card,.gd-service-card img{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
  .gd-copy h2:not(.gd-home-seo-heading):not(.gd-service-seo-heading):after,.gd-home-title:after,.gd-about-title:after,.gd-contact-title:after,.gd-section-heading h2:after,.gd-reviews-head h2:after{transform:none!important;transition:none!important}
  .gd-hero--service{background-position:center!important}
  .gd-hero__video--service-local{transform:none!important;inset:0;height:100%}
  .gd-light-scene:after,.gd-editorial__image,.gd-about-portrait,.gd-review{transform:none!important;transition:none!important}
}

/* ---------- V2 plugin integrations ---------- */
.gd-form--plugin .wpcf7{margin:0}
.gd-form--plugin .wpcf7-form{margin:0}
.gd-form--plugin .wpcf7-form>p{margin:0 0 18px}
.gd-form--plugin .wpcf7-form label{display:block;margin:0;color:#6a635c;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.gd-form--plugin .wpcf7-form-control-wrap{display:block;margin-top:7px}
.gd-form--plugin .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.gd-form--plugin .wpcf7 select,
.gd-form--plugin .wpcf7 textarea{width:100%;max-width:100%;padding:10px 0;border:0;border-bottom:1px solid #cfc7bd;border-radius:0;outline:none;background:transparent;color:var(--gd-ink);font-family:var(--gd-sans);font-size:15px;box-shadow:none}
.gd-form--plugin .wpcf7 textarea{min-height:132px;padding:12px;border:1px solid #cfc7bd;resize:vertical}
.gd-form--plugin .wpcf7 input:focus,.gd-form--plugin .wpcf7 select:focus,.gd-form--plugin .wpcf7 textarea:focus{border-color:var(--gd-green)}
.gd-form--plugin .wpcf7 input[type="submit"]{display:inline-flex;align-items:center;justify-content:center;margin-top:3px;padding:14px 23px;border:1px solid var(--gd-green);border-radius:0;background:var(--gd-green);color:#fff;font-family:var(--gd-sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .3s,border-color .3s,transform .3s}
.gd-form--plugin .wpcf7 input[type="submit"]:hover{transform:translateY(-2px);background:#31412e;border-color:#31412e}
.gd-form--plugin .wpcf7 .wpcf7-not-valid-tip{margin-top:7px;color:#9a3228;font-size:11px;letter-spacing:0;text-transform:none}
.gd-form--plugin .wpcf7 form .wpcf7-response-output{margin:22px 0 0;padding:14px 16px;border-width:1px;font-size:13px;line-height:1.5}
.gd-form--plugin .wpcf7 .wpcf7-spinner{vertical-align:middle}
.gd-reviews-plugin{width:100%}
.gd-reviews-plugin>div{max-width:100%}

@media(max-width:900px){
  .gd-form--plugin .wpcf7-form>p{margin-bottom:16px}
}
