/* Sogand layout skins for the bundled templates.
   Layout itself (direction, widths, gaps, padding, heights) is set with native container
   controls; these classes only add the arrangement that has no Elementor control
   (stacked cards, slices, outlined text, timelines…). Decorative rules sit inside
   :where() so any control changed in the editor overrides them. */

/* ================= shared ================= */
.sg-hx,.sg-svh,.sg-ph,.sg-ab,.sg-404{position:relative;isolation:isolate}
:where(.sg-xl) .elementor-heading-title{font-size:clamp(2.4rem,5.2vw,4.6rem)!important;line-height:1.04}
:where(.sg-head) .elementor-widget-text-editor{max-width:56ch}
:where(.sg-note) p{font-size:.86rem;color:var(--sg-faint)}
.sg-btns{width:auto!important}
.sg-panel{position:relative;overflow:hidden;border-radius:36px}
.e-con.sg-panel:not([class*="sg-glass-"]){background:linear-gradient(115deg,var(--sg-glass),var(--sg-glass-2));box-shadow:inset 0 0 0 1px var(--sg-glass-border),0 30px 80px rgba(0,0,0,.35)}

/* pictures */
.sg-pic img{display:block;max-width:100%;height:auto;margin-inline:auto}
:where(.sg-pic-contain) img{width:auto;max-height:min(58vh,540px);object-fit:contain;filter:drop-shadow(0 30px 40px rgba(0,0,0,.45))}
:where(.sg-pic-gem) img{width:auto;max-height:min(32vh,320px);object-fit:contain;filter:drop-shadow(0 30px 40px rgba(0,0,0,.5))}
:where(.sg-pic-tall) img{width:min(360px,80vw);aspect-ratio:3/4.4;object-fit:contain;background:radial-gradient(70% 60% at 50% 40%,color-mix(in srgb,var(--sg-ox2) 55%,transparent),rgba(0,0,0,.25));padding:18px}
.sg-pic-cover{align-self:stretch!important;width:100%!important;max-width:none!important;flex:1 1 auto}
.sg-pic-cover img,.sg-pic-fill img{width:100%;height:100%;min-height:var(--sg-cover-h,360px);object-fit:cover;object-position:var(--sg-cover-pos,50% 30%)}
:where(.sg-pic-framed) img{width:auto;max-width:72%;max-height:min(52vh,460px);object-fit:contain}
:where(.sg-pic-arch,.sg-pic-circle,.sg-pic-vault) img{width:min(440px,100%);aspect-ratio:3/4.1;object-fit:contain;padding:8%;background:radial-gradient(70% 60% at 50% 40%,color-mix(in srgb,var(--tone,#b3263f) 45%,transparent),rgba(0,0,0,.25))}
:where(.sg-pic-circle) img{aspect-ratio:1;width:min(420px,100%)}
:where(.sg-pic-vault) img{aspect-ratio:1;width:min(420px,100%)}
.sg-kenburns img{animation:sgKen calc(18s / var(--sgk-speed,1)) ease-in-out infinite alternate;transform-origin:60% 40%}
@keyframes sgKen{to{transform:scale(1.08)}}
.sg-duo img{filter:grayscale(1) contrast(1.1);mix-blend-mode:luminosity}
.sg-ab-m-duo{background:linear-gradient(160deg,var(--sg-ox),#c9a35c);border-radius:28px;overflow:hidden}

/* layers placed directly in a section */
.sg-hxl{position:absolute!important;inset:0;z-index:-1;pointer-events:none;width:auto!important;max-width:none!important;padding:0!important}
.sg-hxl>.elementor-element,.sg-hxl>.e-con-inner>.elementor-element{height:100%}
.sg-hxl .sg-pic-cover img{min-height:100%}
.sg-hxl-shade{background:linear-gradient(90deg,color-mix(in srgb,var(--sg-bg) 92%,transparent) 0%,color-mix(in srgb,var(--sg-bg) 55%,transparent) 45%,color-mix(in srgb,var(--sg-bg) 10%,transparent) 100%)}
.sg-hxl-shade.is-even{background:color-mix(in srgb,var(--sg-bg) 55%,transparent)}
.sg-hxl-bg.is-blur img{filter:blur(22px) saturate(120%);transform:scale(1.1)}
.sg-hxl-bg.is-blur::after{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--sg-bg) 45%,transparent)}
.sg-hxl-bg.is-dim img{filter:brightness(.35)}
.sg-hxl-fade{left:auto;width:min(66%,1100px)!important;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end}
.sg-hxl-fade .sg-pic{width:100%;height:100%}
.sg-hxl-fade .sg-pic img{width:100%;height:100%;object-fit:cover;object-position:70% 30%;animation:sgKen calc(18s / var(--sgk-speed,1)) ease-in-out infinite alternate,sgFadeIn 1.6s var(--sg-ease) both}
@keyframes sgFadeIn{from{opacity:0;filter:blur(8px)}to{opacity:1;filter:none}}
.sg-hxl-diag{left:auto;width:58%!important}
.sg-hxl-diag .sg-pic img{height:100%;min-height:100%}
@media (max-width:1024px){
  .sg-hxl-fade,.sg-hxl-diag{position:relative!important;width:100%!important;height:clamp(240px,48vw,420px);order:5;margin-top:10px;z-index:0}
  .sg-hxl-fade .sg-pic img{object-position:65% 30%}
}

/* the picture column */
.sg-v{position:relative;isolation:isolate}
.sg-v-stage{min-height:520px}
@media (max-width:767px){.sg-v-stage{min-height:420px}}

/* ================= Home heroes ================= */
:where(.sg-hx-title) .elementor-heading-title{max-width:14ch}
:where(.sg-hx-centered,.sg-hx-video,.sg-hx-hourglass) .sg-hx-title .elementor-heading-title{margin-inline:auto}
/* stack */
.sg-v-stack{min-height:min(560px,70vh)}
.sg-v-stack .sg-card{position:absolute!important;inset:6% 12%;width:auto!important;margin:0!important;display:grid;place-items:center;border-radius:26px;overflow:hidden;background:linear-gradient(160deg,color-mix(in srgb,var(--sg-hi) 10%,transparent),color-mix(in srgb,var(--sg-hi) 3%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sg-hi) 14%,transparent),0 30px 60px rgba(0,0,0,.45);transition:transform .9s var(--sg-ease-out);animation:sgCardIn 1.2s var(--sg-ease-out) both}
.sg-v-stack .sg-card img{width:78%;height:78%;object-fit:contain}
.sg-v-stack .sg-card-1{transform:rotate(-7deg) translateX(-24px);animation-delay:0s}
.sg-v-stack .sg-card-2{transform:rotate(7deg) translateX(24px);animation-delay:.15s}
.sg-v-stack .sg-card-3{transform:none;animation-delay:.3s}
.sg-v-stack:hover .sg-card-1{transform:rotate(-12deg) translateX(-70px)}
.sg-v-stack:hover .sg-card-2{transform:rotate(12deg) translateX(70px)}
@keyframes sgCardIn{from{opacity:0;translate:0 60px}}
/* mosaic */
.sg-v-mosaic{display:grid!important;grid-template-columns:1fr 1fr;gap:14px;align-content:center}
.sg-tile{margin:0!important;width:100%!important}
.sg-tile img{width:100%;aspect-ratio:1;object-fit:contain;padding:12%;border-radius:20px;background:linear-gradient(160deg,color-mix(in srgb,var(--sg-hi) 8%,transparent),color-mix(in srgb,var(--sg-hi) 2%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sg-hi) 12%,transparent);transition:transform 1s var(--sg-ease-out)}
.sg-v-mosaic .sg-tile:nth-child(2),.sg-v-mosaic .sg-tile:nth-child(4){translate:0 34px}
.sg-v-mosaic .sg-tile:nth-child(4) img,.sg-tile-tall img{object-fit:cover;padding:0}
.sg-tile:hover img{transform:scale(1.05)}
.sg-v-mosaic3 .sg-tile-tall{grid-row:span 2}
.sg-v-mosaic3 .sg-tile-tall img{height:100%;aspect-ratio:auto}
/* slices */
.sg-v-slices{display:flex!important;flex-direction:row!important}
.sg-slice{flex:1 1 0;margin:0!important;overflow:hidden;border-radius:18px;animation:sgCardIn 1.1s var(--sg-ease-out) both}
.sg-slice img{width:300%;max-width:none;height:min(560px,64vh);object-fit:cover}
.sg-slice-1 img{margin-left:0}.sg-slice-2 img{margin-left:-100%}.sg-slice-3 img{margin-left:-200%}
.sg-slice-2{animation-delay:.12s;translate:0 26px}.sg-slice-3{animation-delay:.24s}
/* cascade */
.sg-v-cascade .sg-ghost{position:absolute!important;inset:0;margin:auto!important;display:grid;place-items:center;pointer-events:none}
.sg-v-cascade .sg-ghost img{max-height:min(54vh,500px);width:auto;object-fit:contain}
.sg-ghost-1{opacity:.35;translate:-26px 18px;filter:blur(1px)}
.sg-ghost-2{opacity:.2;translate:-52px 36px;filter:blur(2px)}
.sg-ghost-3{opacity:.1;translate:-78px 54px;filter:blur(3px)}
.sg-ghost-main{position:relative;z-index:2}
/* kaleidoscope */
.sg-v-kaleido .sg-kq{position:absolute!important;left:50%;top:50%;width:46%!important;margin:0!important;transform-origin:0 0;opacity:.28;pointer-events:none;animation:sgSpin calc(60s / var(--sgk-speed,1)) linear infinite}
.sg-v-kaleido .sg-kq img{width:100%;height:auto;mix-blend-mode:screen}
.sg-kq-0{rotate:0deg}.sg-kq-1{rotate:60deg}.sg-kq-2{rotate:120deg}.sg-kq-3{rotate:180deg}.sg-kq-4{rotate:240deg}.sg-kq-5{rotate:300deg}
.sg-kq-main{position:relative;z-index:2}
/* carousel (native Image Carousel) */
.sg-carousel{width:100%}
.sg-carousel img{max-height:min(560px,64vh);width:100%;object-fit:contain}
/* ticker */
.sg-v-ticker .sg-ticker{position:absolute!important;inset:auto 0 8% 0;z-index:2;opacity:.85}
/* magazine pill title */
.sg-mag-title{width:100%}
.sg-mag-title .elementor-widget-heading{width:auto!important}
.sg-pill-pic{width:auto!important;margin:0!important}
.sg-pill-pic img{width:clamp(120px,22vw,320px);height:clamp(70px,10vw,150px);object-fit:contain;border-radius:999px;padding:6px;background:radial-gradient(closest-side,rgba(179,38,63,.5),rgba(0,0,0,.25));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sg-gold) 35%,transparent);animation:sgPill 1.4s var(--sg-ease-out) both .3s}
@keyframes sgPill{from{clip-path:inset(0 50% 0 50% round 999px);opacity:0}}
/* halves */
.sg-hx-halves .sg-half-copy{min-height:calc(92vh - 96px)}
.sg-v-halves{overflow:hidden}
/* panorama */
.sg-v-panorama{margin-inline:calc(50% - 50vw)!important;width:100vw!important;max-width:100vw!important}
.sg-panorama img{border-radius:22px}
/* hourglass + centered */
.sg-hx-hourglass .sg-v-hourglass,.sg-hx-centered .sg-v-gem{min-height:0}
/* pedestal */
.sg-orn-pedestal{top:auto!important;height:30%!important}

/* ================= Services heroes ================= */
:where(.sg-svh-title) .elementor-heading-title{max-width:16ch}
.sg-svh-divided{border-left:1px solid color-mix(in srgb,var(--sg-gold) 35%,transparent);padding-left:clamp(20px,3vw,40px)!important}
@media (max-width:1024px){.sg-svh-divided{border-left:0;padding-left:0!important;border-top:1px solid color-mix(in srgb,var(--sg-gold) 35%,transparent);padding-top:24px!important}}
.sg-svh-band,.sg-ph-band{margin-inline:calc(50% - 50vw)!important;width:100vw!important;max-width:100vw!important}
.sg-svh-idx{border-top:1px solid var(--sg-line)}
.sg-svh-idx-row{border-bottom:1px solid var(--sg-line);color:var(--sg-text);transition:padding .4s var(--sg-ease-out),color .3s}
.sg-svh-idx-row:hover{padding-left:12px!important}
.sg-svh-idx-row .elementor-widget-heading{width:auto!important}
.sg-go{margin-left:auto!important}
.sg-blueprint{background-image:linear-gradient(color-mix(in srgb,var(--sg-gold) 7%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--sg-gold) 7%,transparent) 1px,transparent 1px);background-size:80px 80px}
.sg-vlabel{width:auto!important;writing-mode:vertical-rl;rotate:180deg;letter-spacing:.4em}
.sg-bignum{width:auto!important}
.sg-bignum .elementor-heading-title{font-size:clamp(5rem,14vw,12rem);font-weight:200;line-height:.85;color:transparent!important;-webkit-text-stroke:1px color-mix(in srgb,var(--sg-gold) 55%,transparent)}
.sg-textimg{width:100%!important;-webkit-background-clip:text!important;background-clip:text!important}
.sg-textimg .elementor-heading-title{color:transparent!important;font-size:clamp(4rem,13vw,11rem);font-weight:300;line-height:.9;letter-spacing:-.03em}
.sg-stackcard{position:relative}
.sg-stackcard::before,.sg-stackcard::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:color-mix(in srgb,var(--sg-hi) 4%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sg-hi) 10%,transparent)}
.sg-stackcard::before{transform:rotate(-2.5deg) translate(-10px,12px)}
.sg-stackcard::after{transform:rotate(2deg) translate(12px,20px);opacity:.6}
.sg-pola{background:var(--sg-text);rotate:-4deg;box-shadow:0 30px 60px rgba(0,0,0,.5);width:min(380px,90%)!important;transition:rotate .8s var(--sg-ease-out)}
.sg-pola:hover{rotate:0deg}
.sg-pola-pic img{width:100%;aspect-ratio:1;object-fit:cover;background:radial-gradient(closest-side,color-mix(in srgb,var(--sg-ox2) 65%,transparent),#2a1416)}
.sg-pola-cap .elementor-heading-title{font-style:italic;font-size:.95rem;text-align:center}
.sg-v-tall .sg-pic img{min-height:100%}
.sg-vline-wrap{position:relative}
.sg-vline-wrap::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(transparent,var(--sg-gold),transparent);transform-origin:top;animation:sgLineDown 1.6s var(--sg-ease-out) both}
@keyframes sgLineDown{from{transform:scaleY(0)}}
.sg-v-strip .sg-pic img{min-height:260px;border-radius:24px}
.sg-v-badge .sg-badge-mark{width:38%!important;margin:0!important}
html body .sg-round-cap .elementor-heading-title{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase}
.sg-rule{width:min(240px,50%)!important}

/* ================= About ================= */
:where(.sg-ab-story) p{margin:0 0 1.1em}
:where(.sg-ab-story) p:first-child{font-size:1.12em;color:var(--sg-text)}
:where(.sg-ab-story.is-large) p{font-size:1.15rem}
.sg-cols2 .elementor-widget-container,.sg-cols2:not(:has(.elementor-widget-container)){columns:2 320px;column-gap:48px}
.sg-ab-m{border-radius:28px}
.sg-ab-m .sg-pic-cover img{border-radius:inherit}
.sg-ab-m-arch .sg-pic img{border-radius:999px 999px 24px 24px}
.sg-ab-full{position:relative;border-radius:32px;overflow:hidden}
.sg-ab-band{position:relative;border-radius:28px;overflow:hidden}
.sg-museum-f{padding:18px;background:#2a1416;box-shadow:inset 0 0 0 10px #3a2120,inset 0 0 0 11px color-mix(in srgb,var(--sg-gold) 35%,transparent),0 30px 60px rgba(0,0,0,.5)}
.sg-plaque{width:auto!important;background:linear-gradient(135deg,var(--sg-gold),#9b7a43);border-radius:4px}
.sg-plaque .elementor-heading-title{color:var(--sg-on-accent)!important;font-size:.82rem;text-align:center}
.sg-mast .elementor-heading-title{font-size:clamp(3.5rem,11vw,9.5rem);font-weight:200;line-height:.9;letter-spacing:-.03em;text-transform:uppercase}
.sg-ava{border-radius:50%;overflow:hidden;flex:none!important}
.sg-ava .sg-pic img{min-height:100%;aspect-ratio:1}
.sg-collage{align-items:center}
.sg-collage .sg-col img{width:100%;aspect-ratio:1;object-fit:contain;padding:10%;border-radius:22px;background:color-mix(in srgb,var(--sg-hi) 5%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sg-hi) 10%,transparent)}
.sg-collage .sg-col-0{grid-row:span 2}
.sg-collage .sg-col-0 img{height:100%;object-fit:cover;padding:0}
.sg-bento-grid .sg-bento-ph{grid-row:span 2;border-radius:24px;overflow:hidden}
.sg-bento-wide{grid-column:span 2}
@media (max-width:767px){.sg-bento-wide{grid-column:auto}}
.sg-vname{width:auto!important}
.sg-vname .elementor-heading-title{writing-mode:vertical-rl;rotate:180deg;font-size:clamp(2.6rem,6vw,5rem);font-weight:200;letter-spacing:.06em;white-space:nowrap}
@media (max-width:1024px){.sg-vname .elementor-heading-title{writing-mode:horizontal-tb;rotate:0deg;white-space:normal;font-size:clamp(2rem,9vw,3.4rem);line-height:1.05}}
.sg-film img{border-radius:10px;box-shadow:0 0 0 6px #120708}
.sg-ab-m-film{background:#120708;border-radius:18px;padding:18px 0!important;overflow:hidden}
.sg-ab-words{position:absolute!important;inset:auto 0 12% 0;z-index:-1;opacity:.6}
.sg-ab-card.is-right{align-self:flex-end}
.sg-tl-i{border-left:1px solid var(--sg-line);padding-left:18px!important}
.sg-ab-half-ph{overflow:hidden}
.sg-orn-badge{inset:auto!important;right:-8%!important;bottom:-8%!important;width:44%!important;height:44%!important}
.sg-ab-sig{width:auto!important}

/* ================= sections ================= */
/* marquee band */
.sg-mq-sec{border-top:1px solid var(--sg-line);border-bottom:1px solid var(--sg-line);background:rgba(0,0,0,.12)}
.sg-mq-v1{background:none}
/* service cards */
.sg-svc-card{color:var(--sg-text)!important;text-decoration:none;transition:translate .8s var(--sg-ease-out),box-shadow .5s}
.sg-svc-card:hover{translate:0 -6px}
.sg-svc-card .sg-svc-art{min-height:120px}
.sg-svc-meta .elementor-widget-heading{width:auto!important}
:where(.sg-svc-n,.sg-svc-m) .elementor-heading-title{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase}
:where(.sg-svc-more) .elementor-heading-title{font-size:.8rem;letter-spacing:.1em}
.sg-svc-card.sg-svc-alt:nth-child(odd){translate:0 30px}
.sg-svc-card.sg-svc-alt:nth-child(odd):hover{translate:0 24px}
.sg-svc-grid-five .sg-svc-x{display:none}
@media (max-width:1024px){.sg-svc-card.sg-svc-alt:nth-child(odd){translate:none}}
.sg-svc-list{border-top:1px solid var(--sg-line)}
.sg-svc-row{color:var(--sg-text)!important;border-bottom:1px solid var(--sg-line);transition:padding .5s var(--sg-ease-out),background .4s}
.sg-svc-row:hover{padding-left:16px!important;background:linear-gradient(90deg,color-mix(in srgb,var(--sg-gold) 6%,transparent),transparent)}
.sg-svc-row .elementor-widget-heading{width:auto!important;flex:none}
.sg-svc-row .sg-svc-t{min-width:min(320px,100%)}
.sg-svc-row .sg-svc-x{flex:1 1 auto}
/* doors */
.sg-door{color:var(--sg-text)!important;text-decoration:none;transition:translate .8s var(--sg-ease-out)}
.sg-door:hover{translate:0 -6px}
.sg-door-img img{width:100%;aspect-ratio:4/3;object-fit:contain;padding:10%;border-radius:20px;background:radial-gradient(70% 70% at 50% 45%,color-mix(in srgb,var(--sg-ox2) 45%,transparent),rgba(0,0,0,.15))}
.sg-door-img.is-mark img{padding:24%}
:where(.sg-door-go) .elementor-heading-title{font-size:1.2rem;transition:transform .4s var(--sg-ease-out)}
.sg-door:hover .sg-door-go .elementor-heading-title{transform:translateX(6px)}
.sg-door-overlay{position:relative;border-radius:26px;overflow:hidden;min-height:420px;justify-content:flex-end}
.sg-door-overlay .sg-door-img{position:absolute!important;inset:0;z-index:-1}
.sg-door-overlay .sg-door-img img{height:100%;aspect-ratio:auto;border-radius:0}
.sg-door-overlay::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(transparent 30%,color-mix(in srgb,var(--sg-bg) 90%,transparent))}
.sg-doors-list .sg-door{flex-direction:row!important;align-items:center;border-bottom:1px solid var(--sg-line);border-radius:0!important;box-shadow:none!important;background:none!important}
.sg-doors-list .sg-door-img{width:90px!important;flex:none}
.sg-doors-list .sg-door-img img{aspect-ratio:1;padding:12%}
.sg-doors-list .sg-door-go{margin-left:auto}
.sg-door-arch .sg-door-img img{aspect-ratio:3/4}
/* Join the Journey */
.sg-journey{position:relative;overflow:hidden}
.sg-journey-direct{opacity:.9}
.sg-journey-line{border-top:1px solid var(--sg-line);border-bottom:1px solid var(--sg-line);padding-block:44px!important}
/* project CTA */
.sg-cta{position:relative;overflow:hidden}
:where(.sg-cta-title) .elementor-heading-title{font-size:clamp(1.8rem,3.4vw,2.8rem)}
/* page heroes */
:where(.sg-ph-title) .elementor-heading-title{max-width:18ch}
.sg-ph-center .sg-ph-title .elementor-heading-title,.sg-ph-ring .sg-ph-title .elementor-heading-title,.sg-ph-minimal .sg-ph-title .elementor-heading-title{margin-inline:auto}
.sg-ph-rule{width:100%!important}
/* contact */
.sg-ct-card{text-align:center}
.sg-ct-row .sg-cl{flex-direction:row;flex-wrap:wrap;justify-content:center}

/* ================= process (21 layouts) ================= */
.sg-step{position:relative}
:where(.sg-step-n) .elementor-heading-title{font-size:.72rem;letter-spacing:.24em}
.sg-proc-timeline-h::before{content:"";position:absolute;left:0;right:0;top:12px;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--sg-gold) 50%,transparent),transparent)}
.sg-proc-timeline-h,.sg-proc-path,.sg-proc-timeline-v{position:relative}
.sg-proc-timeline-h .sg-step{flex:1 1 0;padding-top:36px!important}
.sg-proc-timeline-h .sg-step::before{content:"";position:absolute;top:7px;left:0;width:11px;height:11px;background:var(--sg-gold);transform:rotate(45deg);box-shadow:0 0 12px var(--sg-gold)}
.sg-proc-timeline-v::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(transparent,color-mix(in srgb,var(--sg-gold) 50%,transparent),transparent)}
.sg-proc-timeline-v .sg-step{width:calc(50% - 40px)!important}
.sg-proc-timeline-v .sg-step:nth-child(even){align-self:flex-end}
.sg-proc-timeline-v .sg-step::after{content:"";position:absolute;top:6px;width:11px;height:11px;background:var(--sg-gold);transform:rotate(45deg)}
.sg-proc-timeline-v .sg-step:nth-child(odd)::after{right:-46px}.sg-proc-timeline-v .sg-step:nth-child(even)::after{left:-46px}
@media (max-width:767px){.sg-proc-timeline-v::before{left:6px}.sg-proc-timeline-v .sg-step{width:auto!important;padding-left:30px!important;align-self:stretch!important}.sg-proc-timeline-v .sg-step::after{left:1px!important;right:auto!important}}
.sg-proc-numerals .sg-step-n .elementor-heading-title{font-size:clamp(4rem,8vw,6.5rem);font-weight:200;line-height:1;letter-spacing:-.02em;color:transparent!important;-webkit-text-stroke:1px color-mix(in srgb,var(--sg-gold) 60%,transparent)}
.sg-proc-wheel{position:relative}
.sg-proc-wheel::before{content:"";position:absolute;inset:50% auto auto 50%;width:120px;height:120px;translate:-50% -50%;border-radius:50%;border:1px solid color-mix(in srgb,var(--sg-gold) 40%,transparent);box-shadow:0 0 0 18px color-mix(in srgb,var(--sg-gold) 5%,transparent)}
.sg-proc-wheel .sg-step{padding:34px!important;border:1px solid var(--sg-line)}
.sg-proc-wheel .sg-step-1{border-radius:120px 18px 18px 18px}.sg-proc-wheel .sg-step-2{border-radius:18px 120px 18px 18px;text-align:right;align-items:flex-end}
.sg-proc-wheel .sg-step-3{border-radius:18px 18px 18px 120px}.sg-proc-wheel .sg-step-4{border-radius:18px 18px 120px 18px;text-align:right;align-items:flex-end}
.sg-proc-zigzag .sg-step{padding:20px 0!important;border-bottom:1px solid var(--sg-line)}
.sg-proc-stairs .sg-step{flex:1 1 0}
.sg-proc-stairs .sg-step-2{margin-top:40px!important}.sg-proc-stairs .sg-step-3{margin-top:80px!important}.sg-proc-stairs .sg-step-4{margin-top:120px!important}
@media (max-width:1024px){.sg-proc-stairs .sg-step{margin-top:0!important}}
.sg-proc-flip .sg-step{perspective:1000px;min-height:240px;padding:0!important;background:none!important;box-shadow:none!important}
.sg-flip-front,.sg-flip-back{position:absolute!important;inset:0;border-radius:24px;padding:28px!important;backface-visibility:hidden;transition:transform .9s var(--sg-ease-out);background:linear-gradient(135deg,color-mix(in srgb,var(--sg-hi) 8%,transparent),color-mix(in srgb,var(--sg-hi) 3%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sg-hi) 12%,transparent);justify-content:center}
.sg-flip-back{transform:rotateY(180deg);background:linear-gradient(135deg,color-mix(in srgb,var(--sg-ox2) 60%,transparent),color-mix(in srgb,var(--sg-ox2) 50%,transparent))}
.sg-proc-flip .sg-step:hover .sg-flip-front,.sg-proc-flip .sg-step:focus-within .sg-flip-front{transform:rotateY(-180deg)}
.sg-proc-flip .sg-step:hover .sg-flip-back,.sg-proc-flip .sg-step:focus-within .sg-flip-back{transform:rotateY(0)}
@media (hover:none){.sg-flip-front,.sg-flip-back{position:relative!important;transform:none!important;backface-visibility:visible}}
.sg-proc-path .sg-step{flex:1 1 0;padding:26px 0 0!important}
.sg-proc-path::before{content:"";position:absolute;left:0;right:0;top:0;border-top:2px dotted color-mix(in srgb,var(--sg-gold) 45%,transparent)}
.sg-proc-lines .sg-step{flex-direction:row!important;gap:28px!important;align-items:baseline;padding:22px 0!important;border-top:1px solid var(--sg-line)}
.sg-proc-lines .sg-step .elementor-widget{width:auto!important}
.sg-proc-lines .sg-step-t{min-width:200px}
.sg-proc-arrows .sg-step::after{content:"\2192";position:absolute;right:22px;top:22px;color:var(--sg-gold);font-size:1.2rem}
.sg-proc-orbit{position:relative}
.sg-orbit-core{position:absolute!important;left:50%;top:50%;translate:-50% -50%;width:auto!important}
@media (min-width:1025px){
  .sg-proc-orbit .sg-step{position:absolute!important;width:min(300px,30%)!important}
  .sg-proc-orbit .sg-step-1{left:0;top:4%}.sg-proc-orbit .sg-step-2{right:0;top:4%;text-align:right;align-items:flex-end}
  .sg-proc-orbit .sg-step-3{right:0;bottom:4%;text-align:right;align-items:flex-end}.sg-proc-orbit .sg-step-4{left:0;bottom:4%}
}
@media (max-width:1024px){.sg-proc-orbit .elementor-widget-sogand-ornament,.sg-orbit-core{display:none}}
.sg-ring-v{width:auto!important}
.sg-ring-v .elementor-heading-title{display:grid;place-items:center;width:78px;height:78px;border-radius:50%;font-size:.9rem;background:radial-gradient(closest-side,var(--sg-bg) 82%,transparent 84%),conic-gradient(var(--sg-gold) calc(var(--p,25) * 1%),color-mix(in srgb,var(--sg-hi) 8%,transparent) 0)}
.sg-proc-rings .sg-step-1{--p:25}.sg-proc-rings .sg-step-2{--p:50}.sg-proc-rings .sg-step-3{--p:75}.sg-proc-rings .sg-step-4{--p:100}
.sg-hscroll{scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:10px!important}
.sg-hscroll>.sg-step{flex:0 0 min(320px,80vw)!important;scroll-snap-align:start}
.sg-proc-type .sg-step-t .elementor-heading-title{font-size:clamp(2.2rem,5vw,4rem);font-weight:200;line-height:1}
.sg-proc-type .sg-step{border-bottom:1px solid var(--sg-line);padding-bottom:18px!important}
.sg-proc-type .elementor-widget-heading{width:auto!important}
/* tabs / accordion / stepper (enhanced by fx.js; plain list without JS) */
.sg-steps-js .sg-step{cursor:pointer}
.sg-proc-accordion .sg-step{border-bottom:1px solid var(--sg-line);padding:16px 0!important}
.sg-proc-accordion.sg-steps-js .sg-step:not(.is-open) .sg-step-x{display:none}
.sg-proc-accordion .sg-step-t .elementor-heading-title::after{content:"+";float:right;color:var(--sg-gold);transition:rotate .3s}
.sg-proc-accordion .sg-step.is-open .sg-step-t .elementor-heading-title::after{rotate:45deg}
.sg-tabs-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
html body .sg-tabs-bar button{padding:10px 18px;border-radius:999px;border:1px solid var(--sg-line);background:none;color:var(--sg-muted);font:inherit;cursor:pointer;transition:background .3s,color .3s}
html body .sg-tabs-bar button[aria-selected="true"]{background:var(--sg-gold);color:var(--sg-on-accent);border-color:transparent}
.sg-proc-tabs.sg-steps-js .sg-step:not(.is-open){display:none!important}
.sg-proc-tabs.sg-steps-js .sg-step-t{display:none}
.sg-proc-stepper .sg-step{border-left:2px solid var(--sg-line);padding:12px 0 12px 22px!important;transition:border-color .5s,opacity .5s}
.sg-proc-stepper.sg-steps-js .sg-step{opacity:.45}
.sg-proc-stepper.sg-steps-js .sg-step.is-open{opacity:1;border-left-color:var(--sg-gold)}
/* service details */
.sg-svc-detail{scroll-margin-top:120px}
.sg-svc-detail-line{border-top:0}
:where(.sg-steps-list) .elementor-icon-list-item{padding:6px 0;border-bottom:1px solid var(--sg-line)}
:where(.sg-steps-list) .elementor-icon-list-text{color:var(--sg-muted)}
:where(.sg-steps-list) .elementor-icon-list-item::before{content:"";width:6px;height:6px;margin-right:12px;background:var(--sg-gold);transform:rotate(45deg);flex:none}

/* ================= header / footer ================= */
.sg-header{transition:background .5s,box-shadow .5s,transform .5s var(--sg-ease-out)}
.sg-topbar{border-bottom:1px solid color-mix(in srgb,var(--sg-hi) 6%,transparent);font-size:.74rem}
.sg-topbar .elementor-widget-heading{width:auto!important}
.sg-topbar-t .elementor-heading-title{font-size:.72rem;letter-spacing:.14em}
.sg-topbar-c .sg-cl{gap:16px}
.sg-topbar-c .sg-cl-ic{width:24px;height:24px}
.sg-topbar-c .sg-cl-v{font-size:.74rem}
.sg-dot{width:8px!important;flex:none}
.sg-hdr-row .sg-hdr-logo{width:auto!important;flex:none}
.sg-hdr-cta{width:auto!important;flex:none}
.sg-footer{position:relative;overflow:hidden;border-top:1px solid var(--sg-line)}
:where(.sg-ftr-links) .elementor-icon-list-item a{color:var(--sg-muted);transition:color .3s}
:where(.sg-ftr-links) .elementor-icon-list-item a:hover{color:var(--sg-gold)}
.sg-nav-links ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.sg-nav-links ul ul{padding:8px 0 0 14px;gap:6px}
.sg-nav-links a{color:var(--sg-muted);text-decoration:none;transition:color .3s}
.sg-nav-links a:hover,.sg-nav-links a[aria-current]{color:var(--sg-gold)}
.sg-ftr-bottom{border-top:1px solid var(--sg-line)}
.sg-ftr-copy .elementor-heading-title{font-size:.78rem}
/* referenced templates */
.sg-tref>.elementor-widget-sogand-template,.sg-tref .elementor-widget-sogand-template{width:100%}

/* ================= responsive + motion ================= */
@media (max-width:1024px){
  .sg-v{min-height:340px}
  .sg-hx :where(.sg-hx-title) .elementor-heading-title{max-width:none}
}
@media (prefers-reduced-motion:reduce){
  .sg-kenburns img,.sg-hxl-fade .sg-pic img,.sg-v-kaleido .sg-kq,.sg-v-stack .sg-card,.sg-slice,.sg-pill-pic img,.sg-vline-wrap::before{animation:none!important}
}
.sg-calm .sg-kenburns img,.sg-calm .sg-hxl-fade .sg-pic img,.sg-calm .sg-v-kaleido .sg-kq{animation:none!important}
.sg-topbar-c .sg-cl-v{white-space:nowrap}
.sg-topbar-c .sg-cl-item{gap:8px}
.sg-orn-arch .sg-ornament>*{border-radius:999px 999px 24px 24px}
/* top bar: message shrinks, contact details keep their natural width */
.sg-topbar>.e-con-inner>.e-con{min-width:0;flex:1 1 auto}
.sg-topbar .sg-topbar-c{flex:0 0 auto}
.sg-topbar-t .elementor-heading-title::before{background:var(--e-global-color-primary,#e3c88f)!important}
/* the spotlight dims the stage, never the words or buttons */
.sg-hx-spotlight .sg-hx-copy{position:relative;z-index:7}
/* project bar: the title takes the room, the button keeps its own width */
.sg-cta-bar .sg-cta-btns.e-con{--width:auto;width:auto;max-width:100%}
.sg-cta-bar>.e-con,.sg-cta-bar>.e-con-inner>.e-con{min-width:0}
/* button rows never grow wider than their column; buttons wrap instead */
.sg-btns.e-con{max-width:100%}
