/* =========================================================
   Godfrey Digital: site stylesheet
   Loaded on every page by the "Godfrey Digital: site assets" snippet.
   Elementor elements get these classes in Advanced > CSS Classes.
   Layout spacing uses Elementor's own container variables
   (--padding-*, --gap, --content-width) so the editor stays in sync.
   ========================================================= */

:root{
  /* Brand colors (same in both themes) */
  --gd-cream:#FAEEE5; --gd-white:#FFFFFF; --gd-ink:#0F172A; --gd-slate:#364151;
  --gd-navy:#18334B; --gd-navy-line:#2C4864; --gd-on-navy-muted:#D5E2EC; --gd-on-dark:#FAEEE5;
  --gd-olive:#566746; --gd-olive-dark:#46553A; --gd-mist:#C9D6E2;
  --gd-display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;
  --gd-serif-font:"Instrument Serif",Georgia,"Times New Roman",serif;
  --gd-gutter:clamp(16px,4vw,32px);
  --gd-band:clamp(64px,9vw,110px);
  --gd-frame-h:620px;
  /* Theme colors: dark is the default */
  --gd-bg:#0F172A; --gd-surface:#17233A; --gd-fg:#FAEEE5; --gd-muted:#C3CEDA; --gd-line:#2A3A52;
  --gd-deep:#081020; --gd-ice:#132A40; --gd-ice-line:#2A4660; --gd-ice-heading:#E7F6FF;
  --gd-olive-text:#AFC394; --gd-soft-olive:#AFC394; --gd-chip:#1E2C44; --gd-input-line:#3A4C66;
  --gd-cta-bg:#FAEEE5; --gd-cta-fg:#0F172A; --gd-cta-hover:#FFFFFF;
  --gd-header-bg:rgba(15,23,42,.88); --gd-photo-ring:rgba(250,238,229,.12);
  --gd-shadow:0 30px 60px -24px rgba(0,0,0,.7);
  color-scheme:dark;
}
:root[data-theme="light"]{
  --gd-bg:#FAEEE5; --gd-surface:#FFFFFF; --gd-fg:#0F172A; --gd-muted:#364151; --gd-line:#E0D1C4;
  --gd-deep:#0F172A; --gd-ice:#E7F6FF; --gd-ice-line:#B9CFDF; --gd-ice-heading:#18334B;
  --gd-olive-text:#566746; --gd-soft-olive:#9DB083; --gd-chip:#FFFFFF; --gd-input-line:#C9B8AA;
  --gd-cta-bg:#0F172A; --gd-cta-fg:#FAEEE5; --gd-cta-hover:#1E293B;
  --gd-header-bg:rgba(250,238,229,.9); --gd-photo-ring:rgba(15,23,42,.12);
  --gd-shadow:0 30px 60px -24px rgba(15,23,42,.45);
  color-scheme:light;
}
@media (max-width:640px){:root{--gd-frame-h:460px}}

html{scroll-behavior:smooth}
body{background:var(--gd-bg);color:var(--gd-fg);font-family:var(--gd-display);font-size:17px;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body a{color:inherit}
body :focus-visible{outline:3px solid var(--gd-soft-olive);outline-offset:3px;border-radius:6px}
img{max-width:100%}

/* ---------- Layout ---------- */
.e-con.gd-wrap{--content-width:1240px;--padding-left:var(--gd-gutter);--padding-right:var(--gd-gutter)}
.e-con.gd-band{--padding-top:var(--gd-band);--padding-bottom:var(--gd-band)}
.e-con.gd-band-top0{--padding-top:0px}
.e-con.gd-bg-cream{background:var(--gd-bg)}
.e-con.gd-bg-white{background:var(--gd-surface)}
.e-con.gd-bg-navy{background:var(--gd-navy);color:var(--gd-on-dark)}
.e-con.gd-bg-deep{background:var(--gd-deep);color:#FAEEE5}
.e-con.gd-bg-ice{background:var(--gd-ice)}
.gd-min0{min-width:0}

/* ---------- Type ---------- */
.gd-serif{font-family:var(--gd-serif-font);font-style:italic;font-weight:400;letter-spacing:0;color:var(--gd-olive-text)}
.gd-bg-navy .gd-serif,.gd-bg-deep .gd-serif,.gd-serif.gd-light{color:#E7F6FF}
.gd-h1 .elementor-heading-title,.gd-h2 .elementor-heading-title,.gd-h3 .elementor-heading-title{font-family:var(--gd-display);color:inherit;margin:0;text-wrap:balance}
.gd-h1 .elementor-heading-title{font-weight:800;font-size:clamp(44px,6.6vw,88px);line-height:.97;letter-spacing:-.03em}
.gd-h1-sm .elementor-heading-title{font-size:clamp(42px,6vw,76px)}
.gd-h2 .elementor-heading-title{font-weight:800;font-size:clamp(32px,4.4vw,54px);line-height:1.04;letter-spacing:-.025em}
.gd-h3 .elementor-heading-title{font-weight:800;font-size:22px;line-height:1.25}
.gd-eyebrow .elementor-heading-title,.gd-eyebrow{font-family:var(--gd-display);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gd-olive-text)}
.gd-bg-navy .gd-eyebrow .elementor-heading-title,.gd-bg-deep .gd-eyebrow .elementor-heading-title{color:var(--gd-soft-olive)}
.gd-lede,.gd-lede p{font-size:clamp(18px,1.7vw,21px);line-height:1.6;color:var(--gd-muted);max-width:640px}
.gd-body,.gd-body p{font-size:17px;line-height:1.65;color:var(--gd-muted)}
.gd-bg-navy .gd-lede,.gd-bg-navy .gd-lede p,.gd-bg-navy .gd-body,.gd-bg-navy .gd-body p{color:var(--gd-on-navy-muted)}
.gd-bg-deep .gd-lede,.gd-bg-deep .gd-lede p,.gd-bg-deep .gd-body,.gd-bg-deep .gd-body p{color:#C9D6E2}
.gd-lede p:last-child,.gd-body p:last-child{margin-bottom:0}
.gd-ice-heading .elementor-heading-title{color:var(--gd-ice-heading)}

/* ---------- Buttons ---------- */
.gd-btn .elementor-button{display:inline-flex;align-items:center;gap:10px;font-family:var(--gd-display);font-weight:700;font-size:16px;line-height:1.2;padding:16px 26px;border-radius:999px;border:0;min-height:48px;transition:transform .2s ease,background-color .2s ease;text-decoration:none}
.gd-btn .elementor-button:hover{transform:translateY(-2px)}
.gd-btn .elementor-button-icon svg{width:18px;height:18px;fill:currentColor}
.gd-btn-primary .elementor-button{background:var(--gd-olive);color:#FFFFFF}
.gd-btn-primary .elementor-button:hover{background:var(--gd-olive-dark);color:#FFFFFF}
.gd-btn-dark .elementor-button{background:var(--gd-cta-bg);color:var(--gd-cta-fg)}
.gd-btn-dark .elementor-button:hover{background:var(--gd-cta-hover);color:var(--gd-cta-fg)}
.gd-btn-light .elementor-button{background:#FAEEE5;color:#0F172A}
.gd-btn-link .elementor-button{background:transparent;color:var(--gd-fg);padding:12px 4px;text-decoration:underline;text-underline-offset:5px}
.gd-bg-navy .gd-btn-link .elementor-button,.gd-bg-deep .gd-btn-link .elementor-button{color:#FAEEE5}
.gd-btn-big .elementor-button{padding:20px 32px;font-size:17px}

/* ---------- Pills, stickers, cards ---------- */
.gd-pill,.gd-pill .elementor-heading-title{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:var(--gd-muted)}
.gd-pill .elementor-heading-title{background:var(--gd-surface);border:1px solid var(--gd-line);padding:8px 16px 8px 12px;border-radius:999px}
.gd-dot{width:10px;height:10px;border-radius:50%;background:var(--gd-olive);box-shadow:0 0 0 4px rgba(86,103,70,.25);display:inline-block;flex:none}
.gd-sticker .elementor-heading-title,.gd-sticker{background:var(--gd-navy);color:var(--gd-on-dark);padding:14px 18px;border-radius:14px;font-weight:700;font-size:15px;line-height:1.25;box-shadow:0 12px 24px -10px rgba(15,23,42,.5)}
.gd-sticker-olive .elementor-heading-title{background:var(--gd-olive);color:#FFFFFF}
.e-con.gd-card{background:var(--gd-surface);border-radius:20px;--padding-top:30px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px}
.e-con.gd-card.gd-on-cream{background:var(--gd-bg)}
.gd-lift{transition:transform .25s ease,box-shadow .25s ease}
.gd-lift:hover{transform:translateY(-4px) rotate(-.4deg);box-shadow:0 24px 48px -28px rgba(15,23,42,.45)}
.gd-tilt-l{transform:rotate(-1deg)}
.gd-tilt-r{transform:rotate(1deg)}

/* ---------- Motion ---------- */
@keyframes gd-marquee{to{transform:translateX(-50%)}}
@keyframes gd-float{50%{translate:0 -10px}}
@keyframes gd-nudge{0%,100%{transform:translateY(-3px)}50%{transform:translateY(4px)}}
.gd-float{animation:gd-float 7s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .gd-float,.gd-marquee-track,.gd-cue-arrow{animation:none!important}
  .gd-lift,.gd-lift:hover,.gd-btn .elementor-button,.gd-btn .elementor-button:hover{transition:none;transform:none}
}

/* Section-specific styles are appended below as each part of the site is built. */

/* =========================================================
   Portfolio window  [gd_portfolio]
   ========================================================= */
.gd-browser-wrap{display:flex;flex-wrap:wrap;gap:28px;align-items:stretch;font-family:var(--gd-display)}
.gd-browser{flex:999 1 620px;min-width:0;background:#1D2B40;border:1px solid #33475F;border-radius:18px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);display:flex;flex-direction:column}
.gd-b-top{display:flex;align-items:flex-end;gap:14px;padding:12px 14px 0}
.gd-b-dots{display:flex;gap:8px;padding:0 6px 16px}
.gd-b-dots i{width:13px;height:13px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);display:block}
.gd-b-tabs{display:flex;gap:6px;overflow-x:auto;min-width:0;scrollbar-width:none}
.gd-b-tabs::-webkit-scrollbar{display:none}
.gd-browser .gd-b-tab{display:flex;align-items:center;gap:8px;white-space:nowrap;border:1px solid #4A6080;border-bottom:0;background:#33475F;color:#FFFFFF;padding:10px 18px;border-radius:10px 10px 0 0;font-family:var(--gd-display);font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;min-height:44px;transition:background-color .15s;text-transform:none;letter-spacing:0}
.gd-browser .gd-b-tab:hover,.gd-browser .gd-b-tab:focus{background:#45607F;color:#FFFFFF}
.gd-browser .gd-b-tab[aria-selected="true"]{background:#E7F6FF;border-color:#E7F6FF;color:#0F172A;font-weight:700}
.gd-sw{width:14px;height:14px;border-radius:4px;border:1px solid rgba(255,255,255,.35);display:inline-block;flex:none}
.gd-b-tab[aria-selected="true"] .gd-sw{border-color:#0F172A}
.gd-b-panel[hidden]{display:none!important}
.gd-b-bar{background:#E7F6FF;padding:10px 14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.gd-b-url{flex:1 1 220px;min-width:0;display:flex;align-items:center;gap:8px;background:#FFFFFF;border-radius:999px;padding:9px 16px;font-size:14px;color:#364151}
.gd-b-url span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-b-url svg{width:14px;height:14px;color:#566746;flex:none}
a.gd-b-visit{display:inline-flex;align-items:center;gap:6px;text-decoration:none;background:#0F172A;color:#FAEEE5;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:700}
a.gd-b-visit:hover{color:#FFFFFF;background:#1E293B}
.gd-b-visit svg{width:14px;height:14px}
.gd-b-view{position:relative;background:#FFFFFF}
.gd-b-scroll{height:var(--gd-frame-h);overflow-y:scroll;overscroll-behavior:contain;scrollbar-width:auto;scrollbar-color:#566746 #E7F6FF}
.gd-b-scroll::-webkit-scrollbar{width:14px}
.gd-b-scroll::-webkit-scrollbar-track{background:#E7F6FF}
.gd-b-scroll::-webkit-scrollbar-thumb{background:#566746;border-radius:999px;border:3px solid #E7F6FF}
.gd-b-scroll img{display:block;width:100%;height:auto;max-width:none}
.gd-b-missing{height:100%;min-height:200px;display:grid;place-items:center;color:#364151;background:#E7F6FF;font-size:15px}
.gd-b-progress{position:absolute;left:0;right:14px;top:0;height:5px;background:rgba(15,23,42,.12);pointer-events:none}
.gd-b-progress span{display:block;height:100%;width:0;background:#566746;transition:width .1s linear}
.gd-b-cue{position:absolute;left:50%;bottom:26px;translate:-50% 0;pointer-events:none;display:flex;align-items:center;gap:10px;background:#566746;color:#FFFFFF;padding:14px 22px 14px 16px;border-radius:999px;font-size:16px;font-weight:700;white-space:nowrap;box-shadow:0 16px 30px -12px rgba(15,23,42,.55);transition:opacity .3s ease,transform .3s ease}
.gd-cue-arrow{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;animation:gd-nudge 1.4s ease-in-out infinite}
.gd-cue-arrow svg{width:18px;height:18px}
.gd-b-view.is-scrolled .gd-b-cue{opacity:0;transform:translateY(10px)}
.gd-b-details{flex:1 1 300px;min-width:0;padding:8px 4px;color:#FAEEE5}
.gd-b-detail{display:flex;flex-direction:column;gap:20px;height:100%}
.gd-b-detail[hidden]{display:none!important}
.gd-b-detail h3{font-family:var(--gd-display);font-size:clamp(28px,3vw,36px);font-weight:800;line-height:1.05;letter-spacing:-.02em;color:#FAEEE5;margin:0}
.gd-b-meta{display:flex;flex-direction:column;gap:2px;font-size:15px;color:#C9D6E2}
.gd-b-detail p{color:#E7F6FF;margin:0;font-size:17px;line-height:1.65}
.gd-tags{display:flex;flex-wrap:wrap;gap:8px}
.gd-tags span{border:1px solid #364151;color:#E7F6FF;padding:7px 12px;border-radius:999px;font-size:13px;font-weight:500}
a.gd-b-case{align-self:flex-start;color:#FAEEE5;font-weight:700;text-decoration:underline;text-underline-offset:5px}
a.gd-b-case:hover{color:#FFFFFF}
.gd-b-steps{margin-top:auto;display:flex;gap:10px;padding-top:12px}
.gd-b-details .gd-ghost{font-family:var(--gd-display);background:transparent;border:2px solid #364151;color:#E7F6FF;padding:10px 18px;border-radius:999px;font-weight:700;font-size:14px;cursor:pointer;min-height:44px;text-transform:none;letter-spacing:0}
.gd-b-details .gd-ghost:hover,.gd-b-details .gd-ghost:focus{border-color:#E7F6FF;background:transparent;color:#FFFFFF}
@media (max-width:640px){.gd-b-cue{font-size:14px;padding:12px 18px 12px 12px}}

/* =========================================================
   Project cards  [gd_work_cards]
   ========================================================= */
.gd-work-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
a.gd-work-card{text-decoration:none;color:var(--gd-fg);background:var(--gd-surface);border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
a.gd-work-card:hover{color:var(--gd-fg)}
.gd-work-card img{display:block;width:100%;object-fit:cover;object-position:top;max-width:100%}
.gd-work-missing{background:var(--gd-ice)}
.gd-work-body{padding:24px 26px 28px;display:flex;flex-direction:column;gap:8px}
.gd-work-eyebrow{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gd-olive-text)}
.gd-work-body h3{font-family:var(--gd-display);font-size:26px;font-weight:800;line-height:1.2;margin:0;color:var(--gd-fg)}
.gd-work-body p{color:var(--gd-muted);margin:0}
.gd-more{font-weight:700;color:var(--gd-fg);padding-top:4px}

/* =========================================================
   Case study pieces
   ========================================================= */
.gd-meta-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));border-top:1px solid var(--gd-line);padding-top:28px;margin:0}
.gd-meta-grid dt{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gd-olive-text)}
.gd-meta-grid dd{margin:6px 0 0;font-size:17px}
.gd-meta-grid a{font-weight:700;color:var(--gd-ice-heading)}
.gd-highlights{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.gd-highlight{background:var(--gd-surface);border-radius:20px;padding:30px;display:flex;flex-direction:column;gap:14px;font-size:18px;font-weight:700;line-height:1.4}
.gd-hl-icon{color:var(--gd-olive-text);width:26px;height:26px;display:block}
.gd-hl-icon svg{width:26px;height:26px}
.gd-result{font-weight:800;font-size:clamp(26px,3.2vw,38px);line-height:1.18;letter-spacing:-.02em;margin:0 0 26px}
.gd-quote{background:var(--gd-surface);border-radius:22px;padding:30px;display:flex;flex-direction:column;gap:16px;margin:0;transform:rotate(1deg)}
.gd-quote blockquote{margin:0;padding:0;border:0;font-family:var(--gd-serif-font);font-size:26px;line-height:1.35;color:var(--gd-ice-heading);font-style:normal}
.gd-quote figcaption{font-weight:700;color:var(--gd-muted)}
a.gd-next{display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:space-between;text-decoration:none;color:#FAEEE5}
.gd-next-text{display:flex;flex-direction:column;gap:8px}
.gd-next-label{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#9DB083}
.gd-next-name{font-weight:800;font-size:clamp(32px,4.4vw,54px);line-height:1.04;letter-spacing:-.025em}
a.gd-next img{width:360px;max-width:100%;height:200px;object-fit:cover;object-position:top;border-radius:16px;transform:rotate(2deg)}

/* iPhone frame */
.gd-iphone-wrap{padding:12px}
.gd-iphone{position:relative;width:300px;max-width:100%;aspect-ratio:300/620;margin-inline:auto;padding:11px;border-radius:58px;background:#16191F;border:3px solid #A7AFBB;box-shadow:0 0 0 1.5px #5E6774,inset 0 0 0 2px #303744,0 44px 80px -30px rgba(15,23,42,.65),0 0 0 10px rgba(15,23,42,.06);transform:rotate(-4deg);box-sizing:border-box}
.ip-screen{position:relative;width:100%;height:100%;border-radius:47px;overflow:hidden;background:#000}
.ip-screen img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;max-width:none}
.ip-island{position:absolute;top:11px;left:50%;translate:-50% 0;width:31%;height:27px;border-radius:999px;background:#000;box-shadow:0 0 0 1px rgba(255,255,255,.06)}
.ip-btn{position:absolute;width:4px;background:#A7AFBB;border:1px solid #5E6774}
.ip-action{left:-7px;top:19%;height:30px;border-radius:3px 0 0 3px}
.ip-vol-up{left:-7px;top:27%;height:52px;border-radius:3px 0 0 3px}
.ip-vol-down{left:-7px;top:37%;height:52px;border-radius:3px 0 0 3px}
.ip-power{right:-7px;top:29%;height:80px;border-radius:0 3px 3px 0}
@media (prefers-reduced-motion:reduce){.gd-iphone{transform:none}}
/* ===== HEADER+FOOTER START ===== */
/* =========================================================
   Header (Xpro Theme Builder "Site header" + Xpro Horizontal Menu)
   ========================================================= */
.xpro-theme-builder-header{position:sticky;top:0;z-index:100;background:var(--gd-header-bg);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.admin-bar .xpro-theme-builder-header{top:32px}
@media (max-width:782px){.admin-bar .xpro-theme-builder-header{top:46px}}
@media (max-width:600px){.admin-bar .xpro-theme-builder-header{top:0}}
html.gd-scrolled .xpro-theme-builder-header{border-bottom-color:var(--gd-line);box-shadow:0 10px 30px -24px rgba(15,23,42,.6)}
.xpro-theme-builder-header .xpro-hidden{display:none}
.e-con.gd-header{background:transparent;--padding-top:0px;--padding-bottom:0px}
.e-con.gd-header-inner{--padding-top:0px;--padding-bottom:0px;min-height:76px}
.e-con.gd-header-inner>.e-con-inner{min-height:76px}
.e-con.gd-header-nav{--width:auto;width:auto;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}

.gd-logo .elementor-heading-title a{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--gd-fg)}
.gd-logo-mark{width:40px;height:40px;border-radius:12px;background:var(--gd-navy);color:var(--gd-on-dark);display:grid;place-items:center;font-family:var(--gd-display);font-weight:800;font-size:20px;line-height:1;transform:rotate(-6deg);transition:transform .3s}
.gd-logo a:hover .gd-logo-mark{transform:rotate(6deg)}
.gd-logo-word{font-family:var(--gd-display);font-weight:800;font-size:21px;letter-spacing:-.02em;line-height:1.2;color:var(--gd-fg)}
.gd-logo-word .gd-serif{font-size:24px;color:var(--gd-olive-text)}

.gd-header-cta .elementor-button{padding:12px 20px;font-size:15px;min-height:44px;margin-left:8px}

/* Top level links */
.gd-nav .xpro-elementor-horizontal-navbar-nav>li>a,
.gd-nav .xpro-elementor-horizontal-navbar-nav>li.current_page_item>a{margin:0;padding:10px 14px;border-radius:999px;font-family:var(--gd-display);font-size:15px;font-weight:500;line-height:1.2;color:var(--gd-fg);min-height:44px;text-decoration:none;transition:background-color .15s}
.gd-nav .xpro-elementor-horizontal-navbar-nav>li.current-menu-item>a,
.gd-nav .xpro-elementor-horizontal-navbar-nav>li.current-menu-ancestor>a,
.gd-nav .xpro-elementor-horizontal-navbar-nav>li.current-menu-parent>a,
.gd-nav .xpro-elementor-horizontal-navbar-nav>li.current-page-ancestor>a{color:var(--gd-olive-text);font-weight:700}
.gd-nav .xpro-elementor-horizontal-navbar-nav>li>a>.xpro-dropdown-menu-toggle{margin-left:6px;font-size:14px;display:inline-flex;align-items:center}
.gd-nav .xpro-elementor-horizontal-navbar-nav li>a>.xpro-dropdown-menu-toggle::before{content:"";border:0;width:14px;height:14px;top:0;transform:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .2s}
.gd-nav li.gd-menu-cta{display:none}

/* Desktop dropdowns */
@media (min-width:1025px){
  .gd-nav .xpro-elementor-horizontal-navbar-nav{gap:6px;flex-wrap:nowrap}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li:hover>a,
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li:focus-within>a{background:var(--gd-chip)}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li.dropdown>a:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li:hover>a>.xpro-dropdown-menu-toggle::before,
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li:focus-within>a>.xpro-dropdown-menu-toggle::before{transform:rotate(180deg)}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li:hover,.gd-nav .xpro-elementor-horizontal-navbar-nav>li:focus-within{z-index:5}

  .gd-nav .xpro-elementor-horizontal-navbar .xpro-elementor-dropdown-menu{top:calc(100% + 10px);left:50%;translate:-50% 0;background:var(--gd-surface);color:var(--gd-fg);border:1px solid var(--gd-line);border-radius:20px;box-shadow:var(--gd-shadow);padding:14px;min-width:300px;width:max-content;max-width:min(560px,92vw);transform:translateY(8px);transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s}
  .gd-nav .xpro-elementor-horizontal-navbar-nav li.dropdown:hover>.xpro-elementor-dropdown-menu,
  .gd-nav .xpro-elementor-horizontal-navbar-nav li.dropdown:focus-within>.xpro-elementor-dropdown-menu{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease,transform .18s ease}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li>.xpro-elementor-dropdown-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li>.xpro-elementor-dropdown-menu::after{display:none}
  .gd-nav .xpro-elementor-horizontal-navbar .xpro-elementor-dropdown-menu>li>a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:0;border-radius:12px;background:transparent;color:var(--gd-fg);font-family:var(--gd-display);font-size:16px;font-weight:400;line-height:1.3;text-decoration:none;transition:background-color .15s}
  .gd-nav .xpro-elementor-horizontal-navbar .xpro-elementor-dropdown-menu>li>a:hover,
  .gd-nav .xpro-elementor-horizontal-navbar .xpro-elementor-dropdown-menu>li>a:focus-visible{background:var(--gd-bg);color:var(--gd-fg)}
  .gd-nav .gd-mi-text strong{display:block;font-size:16px;font-weight:700;line-height:1.3}
  .gd-nav .gd-mi-text span{display:block;font-size:14px;color:var(--gd-muted);line-height:1.4}
  .gd-nav .gd-menu-services>.xpro-elementor-dropdown-menu{min-width:240px}

  /* Work: two-column cards with screenshot thumbnails */
  .gd-nav .gd-menu-work>.xpro-elementor-dropdown-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:550px;max-width:min(560px,92vw)}
  .gd-nav .xpro-elementor-dropdown-menu>li.gd-thumb>a{flex-direction:row;align-items:center;gap:12px;padding:10px;border-radius:14px}
  .gd-nav .gd-mi-img{width:84px;height:56px;object-fit:cover;object-position:top;border-radius:8px;flex:none;border:1px solid var(--gd-line);display:block}
  .gd-nav li.gd-thumb .gd-mi-text strong{font-size:15px;line-height:1.25}
  .gd-nav li.gd-thumb .gd-mi-text span{font-size:13px;line-height:1.3}

  /* "See all" row at the bottom of a dropdown */
  .gd-nav li.gd-menu-foot{grid-column:1/-1}
  .gd-nav .xpro-elementor-horizontal-navbar .xpro-elementor-dropdown-menu>li.gd-menu-foot>a{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--gd-line);border-radius:0;margin-top:10px;padding:12px 14px 4px;font-size:14px;color:var(--gd-muted);background:transparent}
  .gd-nav .gd-mf-link{font-weight:700;color:var(--gd-fg)}
  .gd-nav li.gd-menu-foot>a:hover .gd-mf-link{text-decoration:underline;text-underline-offset:4px}
}

/* Tablet and phone: slide-in panel */
@media (max-width:1024px){
  .gd-header-cta{display:none}
  .gd-nav button.xpro-elementor-horizontal-menu-toggler{width:48px;height:48px;border-radius:14px;border:1px solid var(--gd-line);background:var(--gd-surface);color:var(--gd-fg);font-size:20px;cursor:pointer}
  .gd-nav .xpro-elementor-horizontal-navbar-wrapper{background:var(--gd-bg);width:420px;max-width:100%;padding:16px 24px 32px;text-align:left;box-shadow:var(--gd-shadow)}
  .gd-nav button.xpro-elementor-horizontal-menu-close{width:48px;height:48px;border-radius:14px;border:1px solid var(--gd-line);background:var(--gd-surface);color:var(--gd-fg);font-size:20px}
  .gd-nav .xpro-elementor-horizontal-menu-overlay{background:rgba(15,23,42,.45)}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li{border-bottom:1px solid var(--gd-line)}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li>a,
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li.current_page_item>a{padding:16px 56px 16px 4px;font-size:19px;font-weight:700;min-height:52px;border:0;border-radius:0;background:transparent;color:var(--gd-fg)}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li>a>.xpro-dropdown-menu-toggle{width:48px;margin:0;border-radius:12px}
  .gd-nav .xpro-elementor-horizontal-navbar-nav li>a>.xpro-dropdown-menu-toggle::before{width:16px;height:16px}
  .gd-nav .xpro-elementor-horizontal-navbar-nav li>a.active>.xpro-dropdown-menu-toggle::before{transform:rotate(180deg)}
  .gd-nav .xpro-elementor-dropdown-menu{padding:0 0 12px 12px;background:transparent;border:0;box-shadow:none}
  .gd-nav .xpro-elementor-horizontal-navbar .xpro-elementor-dropdown-menu>li>a{display:block;padding:10px 4px;border:0;background:transparent;color:var(--gd-muted);font-size:16px;font-weight:400}
  .gd-nav .xpro-elementor-horizontal-navbar .xpro-elementor-dropdown-menu>li>a:hover{color:var(--gd-fg);background:transparent}
  .gd-nav .xpro-elementor-dropdown-menu .gd-mi-img,
  .gd-nav .xpro-elementor-dropdown-menu .gd-mi-text span,
  .gd-nav .xpro-elementor-dropdown-menu li.gd-menu-foot{display:none}
  .gd-nav .gd-mi-text strong{font-weight:400}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li.gd-menu-cta{display:block;border:0;margin-top:20px}
  .gd-nav .xpro-elementor-horizontal-navbar-nav>li.gd-menu-cta>a{justify-content:center;padding:16px 26px;border-radius:999px;background:var(--gd-olive);color:#FFFFFF;font-size:16px;font-weight:700}
}

/* =========================================================
   Footer (Xpro Theme Builder "Site footer")
   ========================================================= */
.e-con.gd-footer{background:var(--gd-deep);color:#C9D6E2;--padding-top:0px;--padding-bottom:0px}
.e-con.gd-foot-grid{--padding-top:72px;--padding-bottom:48px}
.e-con.gd-foot-grid>.e-con-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:40px}
.e-con.gd-foot-col{--width:100%;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;min-width:0}
.gd-foot-h .elementor-heading-title{font-family:var(--gd-display);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;color:var(--gd-soft-olive);margin:0 0 6px}
.gd-foot-links .elementor-icon-list-items{display:flex;flex-direction:column;gap:12px;margin:0;padding:0}
.gd-foot-links .elementor-icon-list-item{margin:0!important;padding:0!important}
.gd-foot-links .elementor-icon-list-item a{color:#E7F6FF;font-size:15px;line-height:1.5;text-decoration:none}
.gd-foot-links .elementor-icon-list-item a:hover{text-decoration:underline;text-underline-offset:4px}
.gd-foot-links .elementor-icon-list-text{color:inherit;padding:0}
.gd-foot-logo .elementor-heading-title{font-family:var(--gd-display);font-weight:800;font-size:21px;letter-spacing:-.02em;line-height:1.2;color:#FAEEE5}
.gd-foot-logo .elementor-heading-title a{color:inherit;text-decoration:none}
.gd-foot-logo .gd-serif{font-size:24px;color:var(--gd-soft-olive)}
.gd-foot-text,.gd-foot-text p{color:#C9D6E2;font-size:15px;line-height:1.6;margin:0}
.gd-btn-sm .elementor-button{padding:12px 18px;font-size:14px;min-height:44px}
.gd-foot-brand .gd-btn{align-self:flex-start}
.gd-foot-social,.gd-foot-social .elementor-widget-container{text-align:left}
.gd-foot-social .elementor-social-icons-wrapper{display:flex;justify-content:flex-start}
.gd-foot-social .elementor-social-icon{background:var(--gd-olive)!important;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;padding:0;font-size:24px;--icon-size:24px;--icon-padding:0;transform:rotate(-6deg);transition:transform .25s ease;margin-top:4px}
.gd-foot-social .elementor-social-icon:hover{transform:rotate(6deg) scale(1.05);opacity:1}
.gd-foot-social .elementor-social-icon i{color:#FFFFFF}
.gd-foot-social .elementor-social-icon svg{fill:none!important;color:#FFFFFF;width:24px;height:24px}
.e-con.gd-foot-base{--padding-top:0px;--padding-bottom:32px}
.e-con.gd-foot-base>.e-con-inner{border-top:1px solid #364151;padding-top:20px}
.gd-foot-small .elementor-heading-title{font-family:var(--gd-display);font-size:13px;font-weight:400;line-height:1.5;color:#C9D6E2}
.gd-foot-small .elementor-heading-title a{color:#E7F6FF;text-decoration:none}
.gd-foot-small .elementor-heading-title a:hover{text-decoration:underline;text-underline-offset:4px}
/* ===== HEADER+FOOTER END ===== */

/* ===== PAGES START ===== */
/* =========================================================
   Page building blocks
   Every class here is added in Elementor > Advanced > CSS Classes.
   ========================================================= */

/* ---------- Layout ---------- */
.e-con.gd-wrap{--content-width:calc(1240px - 2 * var(--gd-gutter))}
.e-con.gd-sec-hero{--padding-top:clamp(40px,6vw,64px);--padding-bottom:clamp(64px,8vw,96px)}
.e-con.gd-sec-head{--padding-top:clamp(40px,6vw,64px);--padding-bottom:64px}
.e-con.gd-pt-0{--padding-top:0px}
.e-con.gd-pt-56{--padding-top:clamp(40px,6vw,56px)}
.e-con.gd-pt-48{--padding-top:clamp(32px,5vw,48px)}
.e-con.gd-pb-40{--padding-bottom:40px}
.e-con.gd-pb-56{--padding-bottom:56px}
.e-con.gd-pb-64{--padding-bottom:64px}
.e-con.gd-pb-72{--padding-bottom:72px}
.e-con.gd-pb-100{--padding-bottom:clamp(64px,9vw,100px)}
.e-con.gd-py-40{--padding-top:40px;--padding-bottom:40px}
.e-con.gd-py-48{--padding-top:48px;--padding-bottom:48px}
.e-con.gd-py-56{--padding-top:56px;--padding-bottom:56px}
.e-con.gd-overflow{overflow:hidden}

.e-con.gd-split{--flex-wrap:wrap;--row-gap:clamp(32px,5vw,56px);--column-gap:clamp(32px,5vw,56px)}
.e-con.gd-row{--flex-wrap:wrap;--align-items:center}
.e-con.gd-between{--justify-content:space-between}
.e-con.gd-items-end{--align-items:flex-end}
.e-con.gd-items-center{--align-items:center}
.e-con.gd-items-start{--align-items:flex-start}
.e-con.gd-items-stretch{--align-items:stretch}
.e-con.gd-row>.elementor-widget,.e-con.gd-split>.elementor-widget{flex-grow:0!important;align-self:auto!important}
.e-con.gd-f{--flex-grow:1;--flex-shrink:1;--width:auto;min-width:0}
.e-con.gd-f0{--flex-grow:0;--flex-shrink:1;--width:auto;min-width:0}
.e-con.gd-f2{--flex-grow:2}
.e-con.gd-b-300{--flex-basis:300px}.e-con.gd-b-320{--flex-basis:320px}.e-con.gd-b-340{--flex-basis:340px}
.e-con.gd-b-360{--flex-basis:360px}.e-con.gd-b-380{--flex-basis:380px}.e-con.gd-b-420{--flex-basis:420px}
.e-con.gd-b-440{--flex-basis:440px}.e-con.gd-b-460{--flex-basis:460px}.e-con.gd-b-480{--flex-basis:480px}
.e-con.gd-b-520{--flex-basis:520px}.e-con.gd-b-560{--flex-basis:560px}.e-con.gd-b-600{--flex-basis:600px}
.e-con.gd-b-auto{--flex-basis:auto}
.elementor-widget.gd-wf-360{flex:1 1 360px!important;min-width:0}
.elementor-widget.gd-wf-380{flex:0 1 380px!important;min-width:0}
.elementor-widget.gd-wf-480{flex:1 1 480px!important;min-width:0}
.gd-mx-auto{margin-inline:auto}
.e-con.gd-self-start,.elementor-widget.gd-self-start{align-self:flex-start}

.e-con.gd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));--row-gap:20px;--column-gap:20px}
.e-con.gd-grid-5{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.e-con.gd-grid-170{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}
.e-con.gd-grid-wide{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));--row-gap:24px;--column-gap:24px}
.e-con.gd-grid-wide-56{--row-gap:56px;--column-gap:56px}
.e-con.gd-grid>.e-con{--width:auto}

.gd-mw-360{max-width:360px}.gd-mw-380{max-width:380px}.gd-mw-420{max-width:420px}.gd-mw-520{max-width:520px}
.gd-mw-640{max-width:640px}.gd-mw-760{max-width:760px}.gd-mw-800{max-width:800px}.gd-mw-1000{max-width:1000px}

/* ---------- Type helpers ---------- */
.gd-h1-home .elementor-heading-title{font-size:clamp(46px,6.4vw,84px)}
.gd-h2-36 .elementor-heading-title{font-size:36px}
.gd-h2-46 .elementor-heading-title{font-size:clamp(30px,4vw,46px)}
.gd-h2-44 .elementor-heading-title{font-size:clamp(30px,4vw,44px)}
.gd-h2-42 .elementor-heading-title{font-size:clamp(30px,3.6vw,42px)}
.gd-h2-64 .elementor-heading-title{font-size:clamp(36px,5vw,64px);line-height:.98}
.gd-h3-24 .elementor-heading-title{font-size:24px}
.gd-h3-26 .elementor-heading-title{font-size:26px}
.gd-h3-30 .elementor-heading-title{font-size:30px;letter-spacing:-.02em}
.gd-h3-svc .elementor-heading-title{font-size:clamp(26px,3vw,34px);letter-spacing:-.02em}
.gd-lede,.gd-body{font-family:var(--gd-display)}
.gd-lede-18,.gd-lede-18 p{font-size:18px}
.gd-p-18,.gd-p-18 p{font-size:18px;line-height:1.7}
.gd-p-19,.gd-p-19 p{font-size:19px;line-height:1.75}
.gd-p-15,.gd-p-15 p{font-size:15px}
.gd-p-14,.gd-p-14 p{font-size:14px}
.gd-ink,.gd-ink p{color:var(--gd-fg)}
.gd-body a,.gd-lede a{color:var(--gd-fg);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.gd-bg-navy .gd-body a,.gd-bg-deep .gd-body a,.gd-contact-panel .gd-body a{color:#FFFFFF}
.gd-heading-light .elementor-heading-title{color:#FAEEE5}

.gd-underline{position:relative;display:inline-block;padding-inline:4px}
.gd-underline::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 20' preserveAspectRatio='none'%3E%3Cpath d='M4 14 C 60 4, 140 4, 296 10' fill='none' stroke='%23566746' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;pointer-events:none}

.gd-trust .elementor-heading-title{display:flex;flex-wrap:wrap;gap:6px 18px;font-family:var(--gd-display);font-size:14px;font-weight:400;line-height:1.6;color:var(--gd-muted)}
.gd-trust b{color:var(--gd-fg)}

.gd-crumbs .elementor-heading-title{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--gd-display);font-size:14px;font-weight:400;line-height:1.6;color:var(--gd-muted)}
.gd-crumbs .elementor-heading-title a{color:var(--gd-fg);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* Pill with an icon */
.e-con.gd-pill-con{--width:auto;--flex-direction:row;--align-items:center;--row-gap:10px;--column-gap:10px;align-self:flex-start;background:var(--gd-surface);border:1px solid var(--gd-line);border-radius:999px;--padding-top:8px;--padding-bottom:8px;--padding-left:12px;--padding-right:16px}
.gd-pill-con .gd-pill-text .elementor-heading-title{font-family:var(--gd-display);font-size:14px;font-weight:500;line-height:1.4;color:var(--gd-muted)}
.gd-pill .elementor-heading-title{align-self:flex-start}
.elementor-widget.gd-pill{align-self:flex-start}

/* SVG icons from the media library */
.gd-ico .elementor-icon{display:inline-flex;font-size:inherit;color:inherit;line-height:0}
.gd-ico .elementor-icon svg,.gd-ico svg{fill:none!important;width:1em;height:1em}
.gd-ico-16 .elementor-icon{font-size:16px}
.gd-ico-22 .elementor-icon{font-size:22px}
.gd-ico-26 .elementor-icon{font-size:26px}
.gd-ico-olive .elementor-icon{color:var(--gd-olive-text)}
.gd-icon-tile .elementor-icon{width:52px;height:52px;border-radius:14px;background:var(--gd-ice);color:var(--gd-ice-heading);display:grid;place-items:center;font-size:26px}
.gd-rot-n4 .elementor-icon{transform:rotate(-4deg)}.gd-rot-3 .elementor-icon{transform:rotate(3deg)}
.gd-rot-n2 .elementor-icon{transform:rotate(-2deg)}.gd-rot-4 .elementor-icon{transform:rotate(4deg)}
.gd-rot-n3 .elementor-icon{transform:rotate(-3deg)}
.gd-btn .elementor-button-icon svg{fill:none!important;stroke:currentColor}

/* ---------- Cards ---------- */
a.e-con{text-decoration:none}
a.e-con.gd-card,a.e-con.gd-card:hover{color:var(--gd-fg)}
.e-con.gd-card-bg{background:var(--gd-bg)}
.e-con.gd-card.gd-card-navy{background:var(--gd-navy);color:var(--gd-on-dark)}
.e-con.gd-card.gd-card-ice{background:var(--gd-ice)}
.gd-card-navy .gd-body,.gd-card-navy .gd-body p{color:var(--gd-on-navy-muted)}
.gd-card-navy .gd-eyebrow .elementor-heading-title{color:var(--gd-soft-olive)}
a.e-con.gd-card.gd-card-navy,a.e-con.gd-card.gd-card-navy:hover{color:var(--gd-on-dark)}
.gd-shadow-soft{box-shadow:0 24px 50px -30px rgba(15,23,42,.35)}
.gd-more .elementor-heading-title{font-family:var(--gd-display);font-size:17px;font-weight:700;line-height:1.5;color:inherit;padding-top:4px}
.gd-more-olive .elementor-heading-title{font-family:var(--gd-display);font-size:17px;font-weight:700;line-height:1.5;color:var(--gd-soft-olive);padding-top:6px}
.gd-more-link .elementor-heading-title a{color:var(--gd-fg);font-weight:700}

/* Steps */
.e-con.gd-step{background:var(--gd-surface);border-radius:20px;--padding-top:30px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px}
.e-con.gd-step.gd-step-feature{background:var(--gd-navy);color:var(--gd-on-dark)}
.gd-step-feature .gd-body,.gd-step-feature .gd-body p{color:var(--gd-on-navy-muted)}
.gd-num .elementor-heading-title{font-family:var(--gd-serif-font);font-style:italic;font-weight:400;font-size:46px;line-height:1;color:var(--gd-olive-text)}
.gd-num-44 .elementor-heading-title{font-size:44px}
.gd-num-56 .elementor-heading-title{font-size:56px}
.gd-step-feature .gd-num .elementor-heading-title{color:#E7F6FF}
.gd-badge .elementor-heading-title{display:inline-block;background:var(--gd-olive);color:#FFFFFF;font-family:var(--gd-display);font-size:12px;font-weight:700;line-height:1.4;padding:5px 10px;border-radius:999px}

/* Quote factors */
.e-con.gd-factor{--flex-direction:row;--align-items:flex-start;--row-gap:14px;--column-gap:14px;--padding-bottom:16px;border-bottom:1px dashed var(--gd-line)}
.e-con.gd-factor:last-child{border-bottom:0;--padding-bottom:0px}
.gd-factor-n .elementor-heading-title{width:28px;height:28px;border-radius:50%;background:var(--gd-ice);color:var(--gd-ice-heading);display:grid;place-items:center;font-family:var(--gd-display);font-weight:800;font-size:13px;line-height:1}
.elementor-widget.gd-factor-n{flex:none!important}
.gd-factor-t .elementor-heading-title{font-family:var(--gd-display);font-size:17px;font-weight:400;line-height:1.6;color:var(--gd-fg)}
.gd-factor-t b{display:block;font-weight:700}
.gd-factor-t small{display:block;color:var(--gd-muted);font-size:15px;line-height:1.5}
.gd-card-title .elementor-heading-title{font-family:var(--gd-display);font-weight:700;font-size:18px;line-height:1.4;color:var(--gd-ice-heading)}

/* Photo placeholder + stickers */
.e-con.gd-photo-wrap{--width:auto;--flex-grow:1;--flex-shrink:1;--flex-basis:300px;max-width:420px;margin-inline:auto;position:relative;min-width:0}
.e-con.gd-photo{aspect-ratio:4/5;max-width:100%;background:#000000;border-radius:24px;box-shadow:0 0 0 1px var(--gd-photo-ring)}
.e-con.gd-rot-n3{transform:rotate(-3deg)}.e-con.gd-rot-3{transform:rotate(3deg)}
.elementor-widget.gd-abs{position:absolute!important;width:auto!important;max-width:none;z-index:2;margin:0}
.gd-sticker .gd-serif{font-size:20px;color:#E7F6FF}
.gd-st-hero{right:18px;bottom:0;transform:rotate(-8deg)}
.gd-st-hero .elementor-heading-title{max-width:170px}
.gd-st-home-photo{right:-10px;bottom:28px;transform:rotate(5deg)}
.gd-st-about-photo{left:-18px;bottom:36px;transform:rotate(-6deg)}
.gd-st-svc{left:-16px;bottom:-22px;transform:rotate(-7deg)}
.gd-st-area{left:0;bottom:0;transform:rotate(-7deg)}
.gd-st-area .elementor-heading-title{max-width:220px;font-size:16px}

/* Hero art: floating browser windows */
.e-con.gd-hero-art{--width:auto;--flex-grow:1;--flex-shrink:1;--flex-basis:420px;min-width:0;position:relative;height:520px}
.e-con.gd-hero-art.gd-hero-art-sm{height:420px}
.e-con.gd-mini{position:absolute;border-radius:14px;overflow:hidden;box-shadow:var(--gd-shadow);background:var(--gd-deep);--row-gap:0px;--column-gap:0px}
.e-con.gd-mini-a{right:0;top:0;--width:82%;transform:rotate(3deg)}
.e-con.gd-mini-b{left:0;bottom:20px;--width:70%;transform:rotate(-4deg);animation-duration:9s;background:#FFFFFF}
.e-con.gd-mini-c{right:0;top:10px;--width:92%;transform:rotate(3deg)}
.gd-mini-bar .elementor-heading-title{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#1C2433;font-family:var(--gd-display);font-size:11px;font-weight:400;line-height:1.4;color:#C9D6E2}
.gd-mini-bar.gd-mini-bar-light .elementor-heading-title{background:#E7F6FF;color:#364151}
.gd-mini-bar i{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.gd-mini-bar i:nth-child(1){background:#FF5F57}.gd-mini-bar i:nth-child(2){background:#FEBC2E}.gd-mini-bar i:nth-child(3){background:#28C840}
.gd-mini-bar span{margin-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.elementor-widget.gd-mini-img img{display:block;width:100%;max-width:none;height:280px;object-fit:cover;object-position:top;border-radius:0}
.elementor-widget.gd-mini-img.gd-h220 img{height:220px}
.elementor-widget.gd-mini-img.gd-h320 img{height:320px}
@media (max-width:640px){.e-con.gd-hero-art{height:380px}}

/* Marquee */
.e-con.gd-marquee{background:var(--gd-navy);color:var(--gd-on-dark);overflow:hidden;--padding-top:18px;--padding-bottom:18px;transform:rotate(-1deg);--margin-left:-20px;--margin-right:-20px;--width:calc(100% + 40px);max-width:none!important;position:relative;z-index:2}
.gd-marquee-track .elementor-heading-title{display:flex;width:max-content;animation:gd-marquee 36s linear infinite;font-family:var(--gd-display);color:var(--gd-on-dark)}
.gd-mq{display:flex;gap:40px;padding-right:40px;align-items:center;font-size:22px;font-weight:700;line-height:1.3;white-space:nowrap}
.gd-mq .gd-serif{font-size:26px;color:var(--gd-on-dark)}
.gd-mq .gd-star{color:var(--gd-soft-olive)}
.e-con.gd-after-marquee{--margin-top:-10px;--padding-top:calc(var(--gd-band) + 10px)}
@media (prefers-reduced-motion:reduce){.gd-marquee-track .elementor-heading-title{animation:none}}

/* Service rows */
a.e-con.gd-svc-row{--flex-direction:row;--flex-wrap:wrap;--align-items:center;--row-gap:24px;--column-gap:32px;background:var(--gd-surface);color:var(--gd-fg);border-radius:24px;--padding-top:clamp(26px,3vw,40px);--padding-bottom:clamp(26px,3vw,40px);--padding-left:clamp(26px,3vw,40px);--padding-right:clamp(26px,3vw,40px)}
a.e-con.gd-svc-row:hover{color:var(--gd-fg)}
a.e-con.gd-svc-row.gd-svc-alt,a.e-con.gd-svc-row.gd-svc-alt:hover{background:var(--gd-navy);color:var(--gd-on-dark)}
.gd-svc-alt .gd-body,.gd-svc-alt .gd-body p{color:var(--gd-on-navy-muted)}
.elementor-widget.gd-svc-num{flex:0 0 90px!important}
.gd-svc-num .elementor-heading-title{font-family:var(--gd-serif-font);font-style:italic;font-weight:400;font-size:64px;line-height:1;color:var(--gd-olive-text)}
.gd-svc-alt .gd-svc-num .elementor-heading-title{color:#E7F6FF}

/* Service outline cards (on navy) */
a.e-con.gd-svc-outline,a.e-con.gd-svc-outline:hover{color:var(--gd-on-dark);border:1px solid var(--gd-navy-line);border-radius:18px;--padding-top:26px;--padding-bottom:26px;--padding-left:26px;--padding-right:26px}
.gd-svc-o-title .elementor-heading-title{font-family:var(--gd-display);font-size:21px;font-weight:800;line-height:1.3;color:inherit}
.gd-svc-o-one,.gd-svc-o-one p{color:var(--gd-on-navy-muted);line-height:1.55;font-size:17px}

/* Service page tile */
.e-con.gd-svc-art{--width:auto;--flex-grow:0;--flex-shrink:1;--flex-basis:340px;min-width:0;margin-inline:auto;position:relative}
.e-con.gd-svc-tile{background:var(--gd-navy);color:var(--gd-on-dark);border-radius:24px;--padding-top:36px;--padding-bottom:36px;--padding-left:32px;--padding-right:32px;transform:rotate(3deg)}
.gd-svc-tile-num .elementor-heading-title{font-family:var(--gd-serif-font);font-style:italic;font-weight:400;font-size:80px;line-height:.9;color:#E7F6FF}
.gd-svc-tile-title .elementor-heading-title{font-family:var(--gd-display);font-weight:800;font-size:26px;line-height:1.15;color:var(--gd-on-dark)}

/* Check lists (Icon List widget) */
.gd-checks .elementor-icon-list-items{display:grid;gap:16px 28px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));margin:0;padding:0}
.gd-checks .elementor-icon-list-item{display:flex!important;gap:12px;align-items:flex-start!important;margin:0!important;padding:0!important;font-size:17px;line-height:1.6}
.gd-checks .elementor-icon-list-icon{display:flex;width:auto;padding-top:3px}
.gd-checks .elementor-icon-list-icon svg{width:22px!important;height:22px!important;fill:none!important;color:var(--gd-soft-olive);stroke:currentColor}
.gd-checks .elementor-icon-list-text{color:inherit;padding:0!important}
.gd-checks-light .elementor-icon-list-item{color:#FAEEE5}
.gd-checks-boxed .elementor-icon-list-items{gap:14px}
.gd-checks-boxed .elementor-icon-list-item{background:var(--gd-bg);border-radius:16px;padding:20px 22px!important;font-weight:500;color:var(--gd-fg)}

/* FAQ (Toggle widget) */
.gd-faq .elementor-toggle{border-bottom:1px solid var(--gd-line)}
.gd-faq .elementor-toggle .elementor-toggle-item{border-top:1px solid var(--gd-line);margin:0!important;padding:22px 0}
.gd-faq .elementor-toggle .elementor-tab-title{border:0!important;padding:0!important;display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;font-family:var(--gd-display);font-size:20px;font-weight:700;line-height:1.35;color:var(--gd-fg)}
.gd-faq .elementor-toggle .elementor-toggle-title{color:var(--gd-fg)!important;text-decoration:none;font:inherit}
.gd-faq .elementor-toggle .elementor-tab-title::after{content:"+";font-size:28px;line-height:1;color:var(--gd-olive-text);transition:transform .2s;flex:none}
.gd-faq .elementor-toggle .elementor-tab-title.elementor-active::after{transform:rotate(45deg)}
.gd-faq .elementor-toggle .elementor-toggle-icon{display:none}
.gd-faq .elementor-toggle .elementor-tab-content{border:0!important;padding:14px 0 0!important;color:var(--gd-muted);max-width:62ch;font-family:var(--gd-display);font-size:17px;line-height:1.6}
.gd-faq .elementor-tab-content p{margin:0}
.gd-faq .elementor-tab-content a{color:var(--gd-fg);font-weight:700}
.gd-bg-ice .gd-faq .elementor-toggle,.gd-bg-ice .gd-faq .elementor-toggle .elementor-toggle-item{border-color:var(--gd-ice-line)}

/* Chips + link rows */
.gd-chip-link .elementor-heading-title a,.gd-chip-link .elementor-heading-title{display:inline-block;background:var(--gd-surface);color:var(--gd-fg);padding:10px 16px;border-radius:999px;font-family:var(--gd-display);font-weight:700;font-size:14px;line-height:1.4;text-decoration:none}
.gd-chip-link .elementor-heading-title{padding:0;background:none}
.gd-chip-plain .elementor-heading-title{display:inline-block;background:var(--gd-surface);color:var(--gd-muted);padding:10px 16px;border-radius:999px;font-family:var(--gd-display);font-weight:400;font-size:15px;line-height:1.4}
.gd-link-bold .elementor-heading-title{font-family:var(--gd-display);font-size:17px;font-weight:700;line-height:1.6}
.gd-link-bold .elementor-heading-title a{color:var(--gd-fg);text-decoration:underline;text-underline-offset:3px}
.gd-link-bold.gd-link-navy .elementor-heading-title a{color:var(--gd-ice-heading)}
.gd-inline-strong .elementor-heading-title{font-family:var(--gd-display);font-weight:800;font-size:20px;line-height:1.4;color:var(--gd-fg)}

/* Areas: town stickers */
.e-con.gd-town-cloud{height:460px}
a.e-con.gd-town{position:absolute;--width:auto;--row-gap:2px;--column-gap:2px;--padding-top:14px;--padding-bottom:14px;--padding-left:20px;--padding-right:20px;border-radius:16px;box-shadow:0 14px 28px -14px rgba(15,23,42,.55);transition:transform .2s ease}
a.e-con.gd-town:hover{transform:rotate(0deg) scale(1.05)!important}
.e-con.gd-town{position:absolute;--width:auto;--padding-top:14px;--padding-bottom:14px;--padding-left:20px;--padding-right:20px;border-radius:16px}
.gd-town-name .elementor-heading-title{font-family:var(--gd-display);font-size:24px;font-weight:800;line-height:1.1;color:inherit}
.gd-town-county .elementor-heading-title{font-family:var(--gd-display);font-size:13px;font-weight:400;line-height:1.4;opacity:.85;color:inherit}
.e-con.gd-ts-navy,a.e-con.gd-ts-navy:hover{background:var(--gd-navy);color:var(--gd-on-dark)}
.e-con.gd-ts-olive,a.e-con.gd-ts-olive:hover{background:var(--gd-olive);color:#FFFFFF}
.e-con.gd-ts-light,a.e-con.gd-ts-light:hover{background:var(--gd-surface);color:var(--gd-fg);border:2px solid currentColor}
.e-con.gd-ts-dashed{background:transparent;color:var(--gd-olive-text);border:2px dashed currentColor;box-shadow:none}
.gd-ts-dashed .gd-town-name .elementor-heading-title{font-family:var(--gd-serif-font);font-style:italic;font-weight:400}
.gd-town-1{left:4%;top:4%;transform:rotate(-6deg)}
.gd-town-2{left:50%;top:0;transform:rotate(5deg)}
.gd-town-3{left:22%;top:33%;transform:rotate(-2deg)}
.gd-town-4{left:60%;top:42%;transform:rotate(7deg)}
.gd-town-5{left:2%;top:68%;transform:rotate(4deg)}
.gd-town-6{left:48%;top:80%;transform:rotate(-4deg)}
@media (max-width:640px){
  .e-con.gd-town-cloud{height:auto;--flex-direction:row;--flex-wrap:wrap;--row-gap:12px;--column-gap:12px;flex-direction:row!important;flex-wrap:wrap!important}
  .e-con.gd-town,a.e-con.gd-town{position:static}
}
.gd-pin .elementor-icon{font-size:22px;color:var(--gd-olive-text)}
.gd-card-navy .gd-pin .elementor-icon{color:var(--gd-soft-olive)}

/* Book band */
.gd-contact-link .elementor-heading-title{font-family:var(--gd-display);font-size:15px;font-weight:400;line-height:1.5;color:var(--gd-on-navy-muted);padding-left:8px}
.gd-contact-link .elementor-heading-title a{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* Book page: contact panel */
.e-con.gd-contact-panel{background:var(--gd-navy);color:var(--gd-on-dark);border-radius:24px;--padding-top:clamp(24px,3.4vw,40px);--padding-bottom:clamp(24px,3.4vw,40px);--padding-left:clamp(24px,3.4vw,40px);--padding-right:clamp(24px,3.4vw,40px)}
.gd-contact-panel .gd-eyebrow .elementor-heading-title{color:var(--gd-soft-olive)}
.gd-contact-panel .gd-serif{color:#E7F6FF}
.gd-contact-panel .gd-body,.gd-contact-panel .gd-body p{color:var(--gd-on-navy-muted)}
.gd-big-num .elementor-heading-title{font-family:var(--gd-display);font-weight:800;font-size:clamp(38px,5.4vw,60px);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.gd-big-num .elementor-heading-title a{color:#FFFFFF;text-decoration:none}
.gd-big-num .elementor-heading-title a:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px}
.gd-email-big .elementor-heading-title{font-family:var(--gd-display);font-weight:700;font-size:clamp(20px,2.2vw,26px);line-height:1.3;overflow-wrap:anywhere}
.gd-email-big .elementor-heading-title a{color:#FFFFFF;text-decoration:underline;text-underline-offset:5px}
.gd-copy-btn .elementor-button{background:transparent;border:1.5px solid var(--gd-navy-line);color:#E7F6FF;border-radius:999px;padding:8px 14px;font-family:var(--gd-display);font-size:13px;font-weight:700;line-height:1.2;min-height:36px}
.gd-copy-btn .elementor-button:hover{border-color:#E7F6FF;background:transparent;color:#E7F6FF}
.e-con.gd-divider{height:1px;background:var(--gd-navy-line);--padding-top:0px;--padding-bottom:0px}

/* About */
.gd-tags-lg .elementor-heading-title{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--gd-display);font-weight:500;line-height:1.4}
.gd-tags-lg span{border:1px solid #364151;color:#E7F6FF;padding:10px 16px;border-radius:999px;font-size:15px}
.gd-note-card .elementor-heading-title{border-radius:16px;padding:22px;font-family:var(--gd-display);font-weight:700;font-size:17px;line-height:1.4}
.gd-note-cream .elementor-heading-title{background:#FAEEE5;color:#0F172A;transform:rotate(-2deg)}
.gd-note-ice .elementor-heading-title{background:#E7F6FF;color:#0F172A;transform:rotate(2deg)}
.gd-note-olive .elementor-heading-title{background:#566746;color:#FFFFFF;transform:rotate(-1deg)}

/* Privacy */
.gd-prose{max-width:760px;font-family:var(--gd-display);color:var(--gd-muted);font-size:17px;line-height:1.75}
.gd-prose .gd-prose-lead{font-size:19px;color:var(--gd-fg)}
.gd-prose>div>*,.gd-prose .elementor-widget-container>*{margin:0 0 36px}
.gd-prose h2{font-family:var(--gd-display);font-size:26px;font-weight:800;line-height:1.25;color:var(--gd-fg);margin:0 0 10px}
.gd-prose p{margin:0}
.gd-prose section{margin:0 0 36px}
.gd-prose a{color:var(--gd-fg);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.gd-muted,.gd-muted p{color:var(--gd-muted)}

/* Work cards from [gd_work_cards] sit straight on the band */
.gd-shortcode-flush .elementor-shortcode>*{margin:0}

/* fixes */
.e-con.gd-between>.e-con{--width:auto}
.elementor-widget.gd-mw-360{max-width:360px!important}.elementor-widget.gd-mw-380{max-width:380px!important}.elementor-widget.gd-mw-520{max-width:520px!important}.elementor-widget.gd-mw-640,.e-con.gd-mw-640{max-width:640px!important}.elementor-widget.gd-mw-760{max-width:760px!important}.elementor-widget.gd-mw-800{max-width:800px!important}.elementor-widget.gd-mw-1000{max-width:1000px!important}
.gd-foot-social .elementor-grid{justify-content:flex-start}
.gd-foot-social .elementor-social-icon{width:46px!important;height:46px!important;font-size:24px!important}
.elementor-widget.gd-sticker{background:none;padding:0;box-shadow:none;border-radius:0}

.gd-foot-social .elementor-grid{justify-content:flex-start!important}
.e-con.gd-split>.elementor-widget.gd-wf-360,.e-con.gd-row>.elementor-widget.gd-wf-360{flex:1 1 360px!important}
.e-con.gd-split>.elementor-widget.gd-wf-380,.e-con.gd-row>.elementor-widget.gd-wf-380{flex:0 1 380px!important}
.e-con.gd-split>.elementor-widget.gd-wf-480,.e-con.gd-row>.elementor-widget.gd-wf-480{flex:1 1 480px!important}
.gd-checks .elementor-icon-list-text{font-family:var(--gd-display);font-size:17px;line-height:1.6}
.gd-faq .elementor-toggle .elementor-tab-title,.gd-faq .elementor-toggle .elementor-toggle-title{font-size:20px!important}

.gd-stack-p p{margin:0 0 20px}.gd-stack-p p:last-child{margin-bottom:0}
.gd-prose .gd-prose-lead{margin:0 0 36px}.gd-prose div.gd-pblock{margin:0 0 36px}.gd-prose div.gd-pblock:last-child{margin:0}
.e-con.gd-py-72{--padding-top:72px;--padding-bottom:72px}
.gd-case-h1 .elementor-shortcode h1{font-family:var(--gd-display);font-weight:800;font-size:clamp(44px,6.6vw,88px);line-height:.97;letter-spacing:-.03em;margin:0;color:var(--gd-fg);text-wrap:balance}
.gd-case-crumbs .elementor-shortcode{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--gd-muted)}
.gd-case-crumbs .elementor-shortcode a{color:var(--gd-fg);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.gd-case-text .elementor-shortcode p{margin:0;color:var(--gd-muted);font-size:18px;line-height:1.7}
.gd-case-intro .elementor-shortcode p{margin:0;color:var(--gd-muted);font-size:clamp(18px,1.7vw,21px);line-height:1.6;max-width:760px}
.e-con.gd-divider{--height:1px;--min-height:1px;flex-shrink:0}
@media (max-width:1024px){.gd-nav .xpro-elementor-horizontal-navbar-wrapper{visibility:hidden;transition:transform .5s,visibility 0s linear .5s}.gd-nav .xpro-elementor-horizontal-navbar-wrapper.active{visibility:visible;transition:transform .5s}}
@media (max-width:1024px){.gd-nav .xpro-elementor-horizontal-navbar-nav>li.gd-menu-cta>a{background:var(--gd-olive)!important;color:#FFFFFF!important;border-bottom:0!important;border-radius:999px;justify-content:center}}
/* ===== PAGES END ===== */

/* ===== THEME START ===== */
body.elementor-kit-6,html body{background:var(--gd-bg);color:var(--gd-fg)}
.gd-form-wrap{--gd-card:var(--gd-surface)!important;--gd-cream:var(--gd-bg)!important;--gd-ink:var(--gd-fg)!important;--gd-slate:var(--gd-muted)!important;--gd-line:var(--gd-input-line)!important;--gd-olive:var(--gd-olive-text)}
.gd-form-wrap .gd-submit{background:#566746;color:#FFFFFF}
.gd-form-wrap .gd-submit:hover{background:#46553A}
.gd-form-wrap .gd-chips label:has(input:checked){background:var(--gd-ice)}
.gd-form-wrap .gd-success-icon{background:var(--gd-ice)}
/* Light / dark switch in the header */
.gd-theme-toggle{order:2}
.gd-theme-toggle .elementor-icon{width:44px;height:44px;border-radius:999px;display:grid;place-items:center;font-size:20px;color:var(--gd-fg);background:var(--gd-chip);border:1px solid var(--gd-line);transition:transform .2s ease}
.gd-theme-toggle .elementor-icon:hover{transform:rotate(-12deg)}
.gd-theme-toggle .elementor-icon svg{width:20px;height:20px;fill:none!important}
:root:not([data-theme="light"]) .gd-i-moon{display:none}
:root[data-theme="light"] .gd-i-sun{display:none}
.gd-header-nav .gd-nav{order:1}.gd-header-nav .gd-header-cta{order:3}
@media (max-width:1024px){.gd-header-nav .gd-theme-toggle{order:1}.gd-header-nav .gd-nav{order:2}.gd-theme-toggle .elementor-icon{width:48px;height:48px;border-radius:14px}}

/* Brand logo (header + footer) */
.e-con.gd-site-logo-wrap{--width:auto;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.elementor-widget.gd-site-logo img{display:block;height:40px!important;width:auto!important;max-width:none!important}
.elementor-widget.gd-site-logo{width:auto!important;max-width:none!important;flex:none!important}
.gd-site-logo a{display:block;line-height:0}
.elementor-widget.gd-foot-site-logo img{height:36px!important}
@media (max-width:640px){.elementor-widget.gd-site-logo img{height:32px!important}}
:root:not([data-theme="light"]) .gd-logo-for-light{display:none!important}
:root[data-theme="light"] .gd-logo-for-dark{display:none!important}
.gd-foot-site-logo{display:block!important}
/* ===== THEME END ===== */
