/* ============================================================
   STONE DYNAMICS CO. — Global design foundation
   Ported from source design for Elementor (containers + native widgets)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;1,9..144,300;1,9..144,400&family=Hanken+Grotesk:wght@300;400;500;600;700&display=swap');

:root{
  --ink:#14110D; --ink-soft:#2b261d; --ink-mute:#5d564a;
  --bone:#F4EFE6; --bone-2:#EBE2D2; --bone-3:#E2D7C3;
  --paper:#FBF8F2; --bronze:#9A7B4F; --bronze-2:#BD9E6F; --bronze-deep:#7d6038;
  --line:rgba(20,17,13,.14); --line-soft:rgba(20,17,13,.08);
  --maxw:1280px; --pad:clamp(20px,5vw,72px);
  --serif:"Fraunces",Georgia,serif;
  --sans:"Hanken Grotesk",-apple-system,Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---- base typography on the Elementor front end ---- */
body{font-family:var(--sans);background:var(--bone);color:var(--ink);line-height:1.6;letter-spacing:.005em;-webkit-font-smoothing:antialiased;}
body.elementor-page{background:var(--bone);}
.sd h1,.sd h2,.sd h3,.sd h4,.sd .elementor-heading-title{font-family:var(--serif);font-weight:300;line-height:1.04;letter-spacing:-.01em;}
.sd p{font-weight:400;}
.sd a{color:inherit;text-decoration:none;}
.sd img{display:block;max-width:100%;}

/* fine grain overlay */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:multiply;}

/* kill Elementor default container padding noise, keep our control */
.sd.e-con,.sd .e-con{--padding-block-start:0px;--padding-block-end:0px;}

/* generic helpers */
.sd .wrap,.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);}
.eyebrow{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--bronze-deep);display:inline-flex;align-items:center;gap:.7em;}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--bronze);display:inline-block;}
.eyebrow.center{justify-content:center;}
.eyebrow.center::before{display:none;}
.lead .elementor-heading-title,.lead{font-size:clamp(1.05rem,1.7vw,1.28rem);color:var(--ink-soft);font-weight:300;}
.display .elementor-heading-title,.display{font-size:clamp(2.6rem,7vw,5.6rem);}

/* ---------- BUTTONS (native Elementor Button widget + .btn classes) ---------- */
.sd a.btn,.btn{display:inline-flex;align-items:center;gap:.7em;font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:1.05em 1.9em;border-radius:2px;transition:.45s var(--ease);white-space:nowrap;line-height:1;}
.sd a.btn:hover{transform:none;}
.btn--solid{background:var(--ink)!important;color:var(--bone)!important;}
.btn--solid:hover{background:var(--bronze-deep)!important;}
.btn--bronze{background:var(--bronze)!important;color:#fff!important;}
.btn--bronze:hover{background:var(--bronze-deep)!important;}
.btn--ghost{border:1px solid var(--line)!important;color:var(--ink)!important;background:transparent!important;}
.btn--ghost:hover{border-color:var(--ink)!important;background:var(--ink)!important;color:var(--bone)!important;}
.btn--light{border:1px solid rgba(244,239,230,.4)!important;color:var(--bone)!important;background:transparent!important;}
.btn--light:hover{background:var(--bone)!important;color:var(--ink)!important;border-color:var(--bone)!important;}
.btn .elementor-button-icon{transition:transform .45s var(--ease);}
.btn:hover .elementor-button-icon{transform:translateX(5px);}
.btn .elementor-button-text{letter-spacing:.14em;}

/* ---------- SECTION HEADINGS ---------- */
.section-pad{padding-block:clamp(64px,9vw,128px);}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(36px,5vw,64px);}
.sec-head h2,.sec-head .elementor-heading-title{font-size:clamp(2rem,4.4vw,3.4rem);max-width:18ch;}
.sec-head__lead .elementor-heading-title,.sec-head__lead{max-width:42ch;color:var(--ink-soft);font-weight:300;}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:92vh;display:flex;align-items:flex-end;overflow:hidden;background-size:cover;background-position:center;}
.hero::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(13,11,8,.92) 0%,rgba(13,11,8,.7) 38%,rgba(13,11,8,.25) 70%,rgba(13,11,8,.4) 100%);}
.hero__inner{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin-inline:auto;padding:0 var(--pad) clamp(54px,7vw,92px);}
.hero__inner .eyebrow{color:var(--bronze-2);}
.hero__inner .eyebrow::before{background:var(--bronze-2);}
.hero h1,.hero__inner h1 .elementor-heading-title{color:var(--bone);font-size:clamp(2.7rem,7.4vw,6.2rem);max-width:16ch;}
.hero h1 em{font-style:italic;color:var(--bronze-2);font-weight:300;}
.hero__sub .elementor-heading-title,.hero__sub{color:rgba(244,239,230,.82);max-width:46ch;font-size:clamp(1rem,1.5vw,1.18rem);font-weight:300;}
.hero__cta{display:flex;gap:1rem;flex-wrap:wrap;}

/* ---------- TRUST STRIP ---------- */
.trust{background:var(--ink);color:var(--bone);padding-block:clamp(34px,4vw,46px);}
.trust__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem 2.6rem;}
.trust__label .elementor-heading-title,.trust__label{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--bronze-2);font-weight:600;}
.trust__items{display:flex;flex-wrap:wrap;gap:1.2rem 2.4rem;align-items:center;}
.trust__items .elementor-heading-title{font-family:var(--serif);font-size:clamp(1rem,1.5vw,1.35rem);color:rgba(244,239,230,.86);font-style:italic;}

/* ---------- BENEFITS ---------- */
body .benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);}
.benefit{padding:clamp(34px,4vw,56px) clamp(28px,3vw,48px) clamp(34px,4vw,56px) 0;border-bottom:1px solid var(--line);}
.benefit:not(:last-child){border-right:1px solid var(--line);}
.benefit__n .elementor-heading-title,.benefit__n{font-family:var(--serif);font-style:italic;color:var(--bronze);font-size:1.2rem;margin-bottom:1.2rem;}
.benefit h3,.benefit .elementor-heading-title{font-size:1.5rem;margin-bottom:.7rem;font-weight:400;}
.benefit p{color:var(--ink-soft);font-size:.97rem;font-weight:300;}

/* ---------- SPLIT ---------- */
body .split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,5vw,80px);align-items:center;}
.split--rev .split__media{order:-1;}
.split__media{position:relative;overflow:hidden;}
.split__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;transition:transform 1.1s var(--ease);}
.split:hover .split__media img{transform:scale(1.04);}
.split__media .tag{position:absolute;left:18px;bottom:18px;background:var(--bone);color:var(--ink);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;padding:.6em 1em;font-weight:600;z-index:2;}
.svc-list{border-top:1px solid var(--line);}
.svc-row{display:flex;align-items:baseline;gap:1.2rem;padding:1.15rem 0;border-bottom:1px solid var(--line);transition:padding .4s var(--ease);}
.svc-row:hover{padding-left:.6rem;}
.svc-row b{font-family:var(--serif);font-style:italic;color:var(--bronze);font-size:.95rem;flex:none;width:2.2rem;}
.svc-row h4{font-family:var(--serif);font-weight:400;font-size:1.25rem;flex:none;}
.svc-row p{color:var(--ink-mute);font-size:.92rem;font-weight:300;margin-left:auto;text-align:right;max-width:34ch;}

/* ---------- SERVICES GRID ---------- */
body .grid-svc{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.svc-card{background:var(--bone);padding:clamp(30px,3vw,46px);transition:background .4s var(--ease);}
.svc-card:hover{background:var(--paper);}
.svc-card .ic,.svc-card .elementor-icon svg{width:42px;height:42px;margin-bottom:1.4rem;}
.svc-card .elementor-icon svg{fill:none;stroke:var(--bronze-deep);stroke-width:1.3;}
.svc-card h3,.svc-card .elementor-heading-title{font-size:1.4rem;font-weight:400;margin-bottom:.7rem;}
.svc-card p{color:var(--ink-soft);font-size:.94rem;font-weight:300;}

/* ---------- STEPS ---------- */
body .steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid var(--line);}
.step{padding:clamp(28px,3vw,40px) 1.4rem clamp(28px,3vw,40px) 0;border-bottom:1px solid var(--line);position:relative;}
.step:not(:last-child){border-right:1px solid var(--line);}
.step__n .elementor-heading-title,.step__n{font-family:var(--serif);font-size:2.6rem;font-weight:300;color:var(--bronze);line-height:1;margin-bottom:1rem;}
.step h4,.step .elementor-heading-title{font-family:var(--serif);font-weight:400;font-size:1.18rem;margin-bottom:.5rem;}
.step p{font-size:.88rem;color:var(--ink-mute);font-weight:300;}

/* ---------- FAQ (Elementor accordion) ---------- */
.faq .elementor-accordion .elementor-accordion-item{border:none;border-bottom:1px solid var(--line);}
.faq .elementor-accordion .elementor-tab-title{padding:1.5rem 0;font-family:var(--serif);font-size:clamp(1.15rem,2vw,1.55rem);font-weight:400;background:transparent;border:none;}
.faq .elementor-accordion .elementor-tab-title.elementor-active{color:var(--bronze-deep);}
.faq .elementor-accordion .elementor-tab-content{padding:0 0 1.7rem;border:none;background:transparent;max-width:70ch;color:var(--ink-soft);font-weight:300;}
.faq .elementor-accordion .elementor-tab-title .elementor-accordion-icon{color:var(--bronze-deep);}

/* ---------- PORTFOLIO ---------- */
.filter-bar{display:flex;flex-wrap:wrap;gap:.6rem;}
.filter-bar .filter-pill{font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:.7em 1.3em;border:1px solid var(--line);border-radius:40px;color:var(--ink-mute);}
.filter-bar .filter-pill.active{background:var(--ink);color:var(--bone);border-color:var(--ink);}
body .port-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,26px);}
.port-card{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--bone-3);}
.port-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease);}
.port-card:hover img{transform:scale(1.06);}
.port-card .ov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;background:linear-gradient(to top,rgba(13,11,8,.82),rgba(13,11,8,.05) 55%,transparent);}
.port-card .cat{font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze-2);font-weight:600;margin-bottom:.4rem;}
.port-card .ttl{font-family:var(--serif);color:var(--bone);font-size:1.4rem;font-weight:400;line-height:1.1;}
.port-card .meta{color:rgba(244,239,230,.7);font-size:.82rem;margin-top:.3rem;font-weight:300;}

/* ---------- ABOUT ---------- */
body .about-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,5vw,80px);align-items:end;}
.about-hero__media img{aspect-ratio:3/4;width:100%;object-fit:cover;}
body .stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.stat{background:var(--bone);padding:clamp(26px,3vw,40px);}
.stat b,.stat .stat-num .elementor-heading-title{display:block;font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.2rem);font-weight:300;color:var(--ink);line-height:1;}
.stat span,.stat .stat-lbl .elementor-heading-title{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);font-weight:500;margin-top:.6rem;display:block;}
body .diff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,4vw,56px);}
.diff{border-top:1px solid var(--line);padding-top:1.6rem;}
.diff h3,.diff .elementor-heading-title{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin-bottom:.7rem;}
.diff h3 em,.diff em{font-style:italic;color:var(--bronze);}
.diff p{color:var(--ink-soft);font-weight:300;}
.quote .elementor-heading-title,.quote{font-family:var(--serif);font-weight:300;font-size:clamp(1.6rem,3.6vw,2.8rem);line-height:1.25;max-width:24ch;letter-spacing:-.01em;}
.quote em{font-style:italic;color:var(--bronze);}

/* ---------- CONTACT ---------- */
body .contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,5vw,80px);}
.info-block{border-top:1px solid var(--line);padding-top:1.5rem;margin-bottom:1.8rem;}
.info-block .k .elementor-heading-title,.info-block .k{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze-deep);font-weight:600;margin-bottom:.5rem;}
.info-block .v .elementor-heading-title,.info-block .v{font-family:var(--serif);font-size:1.3rem;font-weight:400;}
.info-block .v a:hover{color:var(--bronze-deep);}
.map-frame iframe{border:1px solid var(--line);aspect-ratio:16/10;width:100%;filter:grayscale(1) contrast(.95);transition:filter .5s var(--ease);}
.map-frame:hover iframe{filter:grayscale(0);}
.socials{display:flex;gap:.7rem;}
.socials a{width:44px;height:44px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:.35s var(--ease);}
.socials a:hover{background:var(--ink);border-color:var(--ink);color:var(--bone);}

/* WPForms styling to match */
.sd .wpforms-field-label{font-size:.72rem!important;letter-spacing:.16em;text-transform:uppercase;font-weight:600!important;color:var(--ink-mute)!important;}
.sd .wpforms-field input.wpforms-field-medium,.sd .wpforms-field input,.sd .wpforms-field textarea{width:100%!important;max-width:100%!important;background:transparent!important;border:none!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;font-family:var(--sans)!important;font-size:1rem!important;color:var(--ink)!important;padding:.55rem 0!important;}
.sd .wpforms-field input:focus,.sd .wpforms-field textarea:focus{outline:none;border-color:var(--bronze)!important;box-shadow:none!important;}
.sd .wpforms-submit{background:var(--ink)!important;color:var(--bone)!important;border:none!important;border-radius:2px!important;text-transform:uppercase;letter-spacing:.14em;font-size:.82rem!important;font-weight:600!important;padding:1.05em 1.9em!important;font-family:var(--sans)!important;}
.sd .wpforms-submit:hover{background:var(--bronze-deep)!important;}

/* ---------- CTA BANNER ---------- */
.cta-banner{background:var(--ink);color:var(--bone);text-align:center;padding-block:clamp(64px,9vw,120px);position:relative;overflow:hidden;}
.cta-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 120%,rgba(154,123,79,.28),transparent 60%);}
.cta-banner__inner{position:relative;z-index:2;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);display:flex;flex-direction:column;align-items:center;}
.cta-banner .eyebrow{color:var(--bronze-2);}
.cta-banner .eyebrow::before{background:var(--bronze-2);}
.cta-banner h2,.cta-banner .elementor-heading-title{font-size:clamp(2.1rem,5vw,4rem);max-width:18ch;color:var(--bone);}
.cta-banner p{color:rgba(244,239,230,.78);max-width:52ch;font-weight:300;}

/* ---------- XPRO HEADER ---------- */
.xpro-theme-builder-header.xtb-header-sticky{position:sticky;top:0;z-index:1000;}
.sd-header{background:var(--bone);border-bottom:1px solid var(--line);}
.sd-logo .elementor-heading-title{font-family:var(--serif);font-size:1.18rem;letter-spacing:.01em;font-weight:400;color:var(--ink);line-height:1.1;}
.sd-logo small,.sd-logo .sub{display:block;font-family:var(--sans);font-size:.56rem;letter-spacing:.32em;text-transform:uppercase;color:var(--bronze-deep);margin-top:2px;font-weight:600;}
.sd-nav .xpro-elementor-nav-menu .menu-item a,.sd-nav .elementor-nav-menu .menu-item a,.sd-nav a.elementor-item{font-size:.78rem!important;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)!important;}
.sd-nav a.elementor-item:hover,.sd-nav a.elementor-item.elementor-item-active{color:var(--ink)!important;}

/* ---------- XPRO FOOTER ---------- */
.sd-footer{background:var(--ink);color:rgba(244,239,230,.7);}
.sd-footer .elementor-heading-title{color:rgba(244,239,230,.7);}
.sd-footer h5 .elementor-heading-title,.sd-footer .foot-h{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze-2);font-weight:600;}
.sd-footer a:hover{color:var(--bone);}
.sd-footer .foot-brand .elementor-heading-title{font-family:var(--serif);color:var(--bone);font-size:1.18rem;}
.sd-footer .foot-tag{color:rgba(244,239,230,.6);font-weight:300;font-size:.92rem;}
.sd-footer .foot-bottom{border-top:1px solid rgba(244,239,230,.1);color:rgba(244,239,230,.45);font-size:.8rem;}
.sd-footer .elementor-icon-list-item a:hover{color:var(--bone);}
.sd-footer .elementor-icon-list-text{font-weight:300;font-size:.94rem;}

/* reveal: no JS, force visible */
.reveal{opacity:1!important;transform:none!important;}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1024px){
  body .benefits,body .grid-svc{grid-template-columns:repeat(2,1fr);}
  body .steps{grid-template-columns:repeat(2,1fr);}
  .step{border-right:1px solid var(--line)!important;}
  body .port-grid{grid-template-columns:repeat(2,1fr);}
  body .stat-row{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:900px){
  body .split,body .contact-grid,body .about-hero{grid-template-columns:1fr;}
  .split--rev .split__media{order:0;}
  .svc-row{flex-wrap:wrap;gap:.3rem .9rem;}
  .svc-row p{margin-left:0;text-align:left;max-width:100%;flex-basis:100%;}
  .trust__row{flex-direction:column;align-items:flex-start;}
}
@media(max-width:620px){
  body .benefits,body .grid-svc,body .steps,body .port-grid,body .stat-row,body .diff-grid{grid-template-columns:1fr;}
  .benefit{border-right:none!important;}
  .step{border-right:none!important;}
  .sec-head{align-items:flex-start;}
}

/* ---- widget-class helpers ---- */
.svc-row .num .elementor-heading-title,.svc-row .num{font-family:var(--serif);font-style:italic;color:var(--bronze);font-size:.95rem;line-height:1;}
.svc-row .num{flex:none;width:2.2rem;}
.bg-paper{background:var(--paper)!important;}
.bg-ink{background:var(--ink)!important;}
.mt-sm{margin-top:1rem;}
.mt-md{margin-top:1.6rem;}
.mt-lg{margin-top:2.2rem;}
.stack{display:flex;flex-direction:column;}
.cta-banner__inner .eyebrow{justify-content:center;}
.hero__cta{margin-top:2.2rem;}
.sd .elementor-button-wrapper{display:inline-flex;}

/* ---- header bar ---- */
.sd-header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;max-width:var(--maxw);margin-inline:auto;padding:1.05rem var(--pad);}
.sd-header{background:var(--bone);border-bottom:1px solid var(--line);}
.sd-logo{display:flex;flex-direction:column;line-height:1.05;cursor:pointer;}
.sd-logo .elementor-heading-title{font-family:var(--serif);font-size:1.18rem;font-weight:400;color:var(--ink);letter-spacing:.01em;}
.sd-logo .sub .elementor-heading-title{font-family:var(--sans);font-size:.56rem;letter-spacing:.32em;text-transform:uppercase;color:var(--bronze-deep);font-weight:600;margin-top:3px;}
.sd-nav ul{display:flex;gap:2rem;list-style:none;margin:0;padding:0;align-items:center;flex-wrap:wrap;}
.sd-nav li{margin:0;}
.sd-nav a{font-size:.78rem!important;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)!important;padding:.3em 0;}
.sd-nav a:hover{color:var(--ink)!important;}
.sd-header .btn{padding:.85em 1.5em;}
.sd-header-inner .elementor-widget{margin:0;}

/* ---- footer ---- */
.sd-footer .wrap{padding-block:clamp(56px,7vw,90px);}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2.4rem;}
.foot-brand .elementor-heading-title{font-family:var(--serif);color:var(--bone);font-size:1.18rem;font-weight:400;}
.foot-tag{color:rgba(244,239,230,.6)!important;font-weight:300;font-size:.92rem;margin-top:1rem;max-width:34ch;}
.foot-h .elementor-heading-title{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze-2);font-weight:600;margin-bottom:1.1rem;}
.sd-footer .elementor-icon-list-icon{display:none!important;}
.sd-footer .elementor-icon-list-items{display:flex;flex-direction:column;gap:.7rem;padding:0;margin:0;}
.sd-footer .elementor-icon-list-text{color:rgba(244,239,230,.7);font-weight:300;font-size:.94rem;transition:color .3s ease;}
.sd-footer .elementor-icon-list-item:hover .elementor-icon-list-text{color:var(--bone);}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:clamp(40px,5vw,64px);padding-top:1.6rem;border-top:1px solid rgba(244,239,230,.1);}
.foot-bottom .elementor-widget-text-editor,.foot-bottom p{font-size:.8rem!important;color:rgba(244,239,230,.45)!important;font-weight:300;}
@media(max-width:900px){.foot-top{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.foot-top{grid-template-columns:1fr;}.foot-bottom{flex-direction:column;align-items:flex-start;}}

/* ---- service card icons (FA) ---- */
.svc-card .elementor-icon{color:var(--bronze-deep)!important;font-size:40px;margin-bottom:1.3rem;display:inline-block;}
.svc-card .elementor-icon svg{width:40px;height:40px;fill:currentColor!important;stroke:none!important;}
.svc-card .elementor-widget-icon{margin-bottom:0;}
.step__n .elementor-heading-title{font-family:var(--serif);font-size:2.6rem;font-weight:300;color:var(--bronze);line-height:1;}

.filter-pill{cursor:pointer;user-select:none;}
.port-card .elementor-widget-image,.port-card .elementor-widget-image .elementor-widget-container,.port-card img{height:100%;}
.port-card{display:block;}

.filter-pill .elementor-heading-title{font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:inherit;line-height:1;}
.filter-bar{margin-top:clamp(32px,4vw,48px);}

/* socials + contact */
.socials .elementor-social-icons-wrapper,.socials .elementor-grid{display:flex;gap:.7rem;}
.socials .elementor-social-icon{width:44px!important;height:44px!important;border:1px solid var(--line);background:transparent!important;border-radius:50%;transition:.35s ease;}
.socials .elementor-social-icon i,.socials .elementor-social-icon svg{color:var(--ink-soft);fill:var(--ink-soft);transition:.35s ease;}
.socials .elementor-social-icon:hover{background:var(--ink)!important;border-color:var(--ink);}
.socials .elementor-social-icon:hover i,.socials .elementor-social-icon:hover svg{color:var(--bone);fill:var(--bone);}
.info-block .v .elementor-heading-title{font-family:var(--serif);font-size:1.3rem;font-weight:400;}
.info-block .v a{color:inherit;}
.map-frame{margin-top:1.6rem;}
.contact-info{display:flex;flex-direction:column;}
