/*
 * SLP1 + Elementor.
 * Gives Elementor's widgets the SLP1 look through the "slp-" CSS classes set on
 * each element (Advanced → CSS Classes). Layout (direction, widths, spacing,
 * backgrounds) lives in the Elementor panel. Anything changed in the panel
 * overrides these styles.
 */

/* ---------- base ---------- */
.elementor{counter-reset:slpsec}
.elementor .elementor-widget-text-editor p:last-child,
.elementor .elementor-widget-text-editor ul:last-child,
.elementor .elementor-widget-text-editor ol:last-child{margin-bottom:0}
.elementor .elementor-heading-title{line-height:1.2}
.elementor h1.elementor-heading-title,.elementor h2.elementor-heading-title{font-family:var(--serif);font-weight:400;letter-spacing:-.01em}
.elementor h2.elementor-heading-title{font-size:clamp(2rem,4vw,3.2rem);line-height:1.05}
.elementor h3.elementor-heading-title{line-height:1.3}
.elementor h4.elementor-heading-title{font-family:var(--serif);font-weight:400;font-size:1.25rem;line-height:1.25}
.elementor .elementor-heading-title em{color:var(--green);font-style:italic}
.elementor .elementor-widget-text-editor a{color:inherit;text-decoration-color:var(--gold);text-underline-offset:4px}
.slp-soft{color:var(--soft)}
.slp-small{font-size:.95rem}
.slp-lede{font-size:1.15rem}
.slp-narrow{max-width:60ch}
.slp-serif .elementor-heading-title{font-family:var(--serif);font-weight:400;text-transform:none;letter-spacing:-.01em;color:var(--ink);font-size:1.5rem;line-height:1.15}
.slp-h-card .elementor-heading-title{font-size:1.6rem;line-height:1.1}
.elementor .slp-h-md .elementor-heading-title{font-size:1.9rem}

/* numbered section label */
.slp-label-col{position:sticky;top:96px;align-self:flex-start}
.slp-label{counter-increment:slpsec;font-size:.85rem;color:var(--soft)}
.slp-label::before{content:counter(slpsec,decimal-leading-zero);display:block;font-family:var(--serif);font-size:1rem;color:var(--gold);margin-bottom:4px}

/* eyebrow */
.slp-eyebrow p{display:flex;align-items:center;gap:14px;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin:0}
.slp-eyebrow p::before{content:"";width:36px;height:2px;background:var(--gold);flex:none}

/* display headings */
.elementor .slp-display .elementor-heading-title{font-size:clamp(2.9rem,6.4vw,6rem);line-height:.98;letter-spacing:-.03em;font-weight:300}
.elementor .slp-display .elementor-heading-title em{font-weight:400;display:block}
.elementor .slp-display-page .elementor-heading-title{font-size:clamp(2.8rem,8vw,7rem);line-height:.94;letter-spacing:-.035em}
.elementor .slp-display-page .elementor-heading-title em{display:inline}
.slp-hero-lede{font-size:1.18rem;max-width:50ch}
.slp-statement p{font-family:var(--serif);font-size:clamp(1.7rem,3.4vw,2.8rem);line-height:1.15;letter-spacing:-.015em;max-width:24ch}
.slp-statement em{color:var(--green)}
.slp-pct{font-family:var(--serif);font-weight:400;font-size:1.5em;color:var(--green)}

/* ---------- buttons ---------- */
.slp-btn .elementor-button{display:inline-flex;padding:.8em 1.5em;border-radius:100px;border:1.5px solid var(--green);background:var(--green);color:#fff;fill:#fff;font:500 .95rem/1.2 var(--sans);transition:background .2s,color .2s,border-color .2s,fill .2s}
.slp-btn .elementor-button-content-wrapper{gap:.7em;align-items:center}
.slp-btn .elementor-button-icon svg{width:.85em;height:.85em;transition:transform .2s}
.slp-btn .elementor-button:hover .elementor-button-icon svg{transform:translateX(4px)}
.slp-btn .elementor-button:hover,.slp-btn .elementor-button:focus{background:var(--deep);border-color:var(--deep);color:#fff;fill:#fff}
.slp-btn-gold .elementor-button{background:var(--gold-lt);border-color:var(--gold-lt);color:var(--ink);fill:var(--ink)}
.slp-btn-gold .elementor-button:hover,.slp-btn-gold .elementor-button:focus{background:var(--gold);border-color:var(--gold);color:#fff;fill:#fff}
.slp-btn-ghost .elementor-button{background:transparent;border-color:var(--ink);color:var(--ink);fill:var(--ink)}
.slp-btn-ghost .elementor-button:hover,.slp-btn-ghost .elementor-button:focus{background:var(--ink);border-color:var(--ink);color:var(--paper);fill:var(--paper)}
.slp-btn-light .elementor-button{background:transparent;border-color:rgba(255,255,255,.55);color:#fff;fill:#fff}
.slp-btn-light .elementor-button:hover,.slp-btn-light .elementor-button:focus{background:#fff;border-color:#fff;color:var(--navy);fill:var(--navy)}
.slp-btn-row{margin-top:10px}
.slp-btn-row>.slp-btn{width:auto;flex:none}
.slp-cta-buttons .elementor-button{display:flex;width:100%}
.slp-cta-buttons .elementor-button-content-wrapper{justify-content:space-between}

/* ---------- icons ---------- */
.slp-icon,.slp-badge{flex:none;width:auto;line-height:0}
.slp-icon .elementor-icon{font-size:26px;color:var(--green);fill:var(--green)}
.slp-icon .elementor-icon svg,.slp-badge .elementor-icon svg{fill:currentColor}
.slp-icon-md .elementor-icon{font-size:32px}
.slp-icon-lg .elementor-icon{font-size:40px}
.slp-badge .elementor-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--green);color:#fff;font-size:24px}

/* ---------- images ---------- */
.slp-img-arch img{width:100%;aspect-ratio:4/4.6;object-fit:cover;object-position:50% 20%;border-radius:999px 999px 14px 14px}
.slp-img-corner img{width:100%;aspect-ratio:5/4;object-fit:cover;object-position:60% 25%;border-radius:14px 14px 160px 14px}
.slp-img-round img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px 999px 999px 14px}
.slp-hero-art{position:relative}
.slp-hero-art .slp-img-arch{position:relative;max-width:520px;width:100%}
.slp-hero-art .slp-img-arch::before,.slp-hero-art .slp-img-arch::after,.slp-cta::before,.slp-cta::after{content:"";position:absolute;border-radius:0 100% 0 100%;pointer-events:none}
.slp-hero-art .slp-img-arch::before{width:38%;aspect-ratio:1;right:-7%;bottom:22%;background:var(--green);z-index:1}
.slp-hero-art .slp-img-arch::after{width:30%;aspect-ratio:1;right:-4%;bottom:-4%;background:var(--gold-lt);transform:rotate(90deg);z-index:1}

/* ---------- home ---------- */
.slp-stat+.slp-stat{border-left:1px solid var(--gold-lt)}
.slp-stat>.e-con{width:auto;flex:none}
.elementor .slp-stat-num .elementor-heading-title{font-family:var(--serif);font-weight:400;font-size:2.6rem;line-height:1;letter-spacing:-.03em;color:var(--navy)}
.slp-ticker .ticker{width:100%}
.slp-underline p{display:inline-block;padding-bottom:18px;border-bottom:2px solid var(--gold)}
.slp-quote blockquote{margin:0;padding-left:24px;border-left:3px solid var(--gold);font-family:var(--serif);font-style:italic;font-size:1.35rem;line-height:1.35;color:var(--navy)}
.slp-quote cite{display:block;margin-top:.9em;font:600 .75rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.slp-vm-item+.slp-vm-item{border-left:1px solid var(--rule)}
.slp-vm-item p{max-width:44ch}

/* focus cards */
.slp-focus{border-top:1px solid var(--ink)}
.slp-focus>.slp-cell{border-right:1px solid var(--rule)}
.slp-focus>.slp-cell:last-child{border-right:0}
.slp-num,.slp-numeral{width:auto;flex:none}
.elementor .slp-num .elementor-heading-title{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--green);color:#fff;font:600 .95rem var(--sans)}
.elementor .slp-num-gold .elementor-heading-title{background:var(--gold)}
.elementor .slp-num-navy .elementor-heading-title{background:var(--navy)}
.elementor .slp-numeral .elementor-heading-title{font-family:var(--serif);color:var(--gold);font-size:1.1rem;font-weight:400}

/* ---------- lists ---------- */
.slp-dots ul,.slp-dash ul,.slp-tags ul,.slp-route ul,.slp-launch ol{list-style:none;padding:0;margin:0}
.slp-dots li{position:relative;padding:10px 0 10px 18px;border-top:1px dashed var(--rule);font-size:.95rem}
.slp-dots li::before{content:"";position:absolute;left:0;top:1.15em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.slp-dash li{padding:12px 0;border-bottom:1px solid var(--rule)}
.slp-tags ul{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}
.slp-tags li{border:1px solid var(--ink);border-radius:100px;padding:.45em 1em;font-size:.95rem}
.slp-launch ol{counter-reset:slpl;border-top:1px solid var(--ink);margin-top:16px}
.slp-launch li{counter-increment:slpl;display:grid;grid-template-columns:70px 1fr;padding:20px 0;border-bottom:1px solid var(--rule);font-size:1.15rem}
.slp-launch li::before{content:"0" counter(slpl);font-family:var(--serif);color:var(--gold)}
.slp-closing p{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,6vw,5.2rem);line-height:1.02;letter-spacing:-.03em;margin:0}
.slp-closing em{color:var(--green)}

/* ruled rows */
.slp-rows{border-top:1px solid var(--ink)}
.slp-row{border-bottom:1px solid var(--rule)}
.slp-values .elementor-heading-title{font-family:var(--serif);font-weight:400;font-size:1.5rem;text-transform:none;letter-spacing:-.01em;color:var(--ink);line-height:1.2}
.slp-values p{color:var(--soft)}

/* grids */
.slp-grid{border-top:1px solid var(--ink)}
.slp-figures>.slp-cell{border-right:1px solid var(--rule)}
.slp-figures>.slp-cell:last-child{border-right:0}
.elementor .slp-figure .elementor-heading-title{font-family:var(--serif);font-weight:300;font-size:clamp(4rem,9vw,7.5rem);line-height:1;color:var(--green);letter-spacing:-.04em}
.slp-roles>.slp-cell,.slp-contact>.slp-cell{border-bottom:1px solid var(--rule)}
.slp-roles>.slp-cell:not(:nth-child(3n+1)){border-left:1px solid var(--rule)}
.slp-contact .slp-contact-value{font-size:1.1rem;overflow-wrap:anywhere}
.slp-contact .slp-cell>.e-con>.e-con{width:auto;flex:1}

/* work page */
.slp-deliver-item{border-top:3px solid var(--green)}
.elementor .slp-stepnum .elementor-heading-title{font-family:var(--serif);font-size:3.2rem;font-weight:300;color:var(--green);line-height:1;padding-bottom:18px;margin-bottom:12px;border-bottom:1px solid var(--ink)}
.slp-step .elementor-widget:not(.slp-stepnum){padding-right:24px}
.slp-acc .elementor-accordion{border-top:1px solid var(--ink)}
.slp-acc .elementor-accordion .elementor-accordion-item{border:0;border-bottom:1px solid var(--rule)}
.slp-acc .elementor-accordion .elementor-tab-title{display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:center;padding:22px 0;border:0;font-family:var(--serif);font-weight:400;font-size:clamp(1.3rem,2.4vw,1.9rem);line-height:1.2;color:var(--ink);cursor:pointer;transition:color .2s}
.slp-acc .elementor-accordion .elementor-tab-title:hover,.slp-acc .elementor-accordion .elementor-tab-title.elementor-active{color:var(--green)}
.slp-acc .elementor-accordion .elementor-accordion-title{color:inherit;text-decoration:none}
.slp-acc .elementor-accordion .elementor-accordion-icon{float:none;width:auto;font-size:15px;line-height:1}
.slp-acc .elementor-accordion .elementor-accordion-icon svg{fill:currentColor;width:1em;height:1em}
.slp-acc .elementor-accordion .elementor-tab-content{border:0;padding:0 0 24px}
.slp-acc .elementor-tab-content ul{list-style:none;padding:0;margin:0;columns:2;column-gap:40px}
.slp-acc .elementor-tab-content li{break-inside:avoid;padding:0 0 10px 18px;position:relative;color:var(--soft)}
.slp-acc .elementor-tab-content li::before{content:"—";position:absolute;left:0;color:var(--gold)}

/* ---------- dark and green sections ---------- */
.slp-dark{color:#DCE5DE}
.slp-dark .slp-label,.slp-green .slp-label{color:#8FA597}
.elementor .slp-big .elementor-heading-title{font-size:clamp(2.8rem,7vw,6rem);color:#fff;font-weight:300;letter-spacing:-.03em;line-height:1.02}
.slp-sub{color:var(--gold-lt)}
.slp-career{border-top-color:rgba(255,255,255,.25)}
.slp-career .slp-row{border-bottom-color:rgba(255,255,255,.12)}
.elementor .slp-career .elementor-heading-title{font-family:var(--serif);font-weight:400;color:var(--gold-lt);font-size:1.05rem;line-height:1.6}
.slp-green{color:#E6EEE8}
.slp-green .slp-label{color:#A9C3B2}
.slp-green .slp-label::before{color:var(--gold-lt)}
.slp-green .slp-statement p{color:#fff;max-width:20ch}
.slp-green .slp-pct{color:var(--gold-lt);font-weight:300;font-size:1.4em}
.slp-bar .bar{margin-bottom:0}
.slp-green .slp-grid{border-top:0}
.slp-rules>.slp-cell{border-top:1px solid rgba(255,255,255,.22)}
.slp-rules .elementor-heading-title{color:#fff}
.slp-rules p{color:#C5D6CB}
.slp-route ul{display:flex;flex-wrap:wrap;align-items:center;gap:10px 0;font-size:.92rem}
.slp-route li{padding:.4em .9em;border:1px solid rgba(255,255,255,.4);border-radius:100px;color:#fff;position:relative}
.slp-route li:not(:last-child){margin-right:28px}
.slp-route li:not(:last-child)::before{content:"";position:absolute;right:-24px;top:50%;width:20px;height:1px;background:var(--gold-lt)}

/* ---------- call to action ---------- */
.slp-cta{position:relative;color:#D9DFEE}
.slp-cta>.e-con{position:relative;z-index:2}
.slp-cta::before{width:150px;height:150px;left:auto;right:-50px;top:-60px;background:var(--green);opacity:.9}
.slp-cta::after{width:120px;height:120px;left:auto;top:auto;right:-40px;bottom:-50px;background:var(--gold-lt);transform:rotate(90deg);opacity:.9}
.elementor .slp-cta h2.elementor-heading-title{color:#fff}
.elementor .slp-cta h2.elementor-heading-title::before{content:"";display:block;width:36px;height:2px;background:var(--gold-lt);margin-bottom:22px}
.elementor .slp-cta .elementor-heading-title em{color:var(--gold-lt)}
.slp-cta p{max-width:46ch}

/* ---------- ways, social ---------- */
.slp-way .slp-btn{margin-top:auto;width:auto;align-self:flex-start}
.slp-social .elementor-social-icon{background:transparent;border:1px solid var(--ink);--icon-size:16px;--icon-padding:11px;transition:background .2s}
.slp-social .elementor-social-icon svg{fill:var(--ink)}
.slp-social .elementor-social-icon:hover{background:var(--ink)}
.slp-social .elementor-social-icon:hover svg{fill:var(--paper)}

/* ---------- small screens ---------- */
@media (max-width:1024px){
  .slp-label-col{position:static}
  .slp-label{display:flex;gap:10px;align-items:baseline}
  .slp-label::before{margin:0}
  .slp-focus>.slp-cell{border-right:0;border-bottom:1px solid var(--rule)}
  .slp-hero-art{align-items:center}
  .slp-hero-art .slp-img-arch{max-width:420px}
  .slp-img-round{max-width:320px}
}
@media (max-width:767px){
  .slp-stat+.slp-stat{border-left:0;border-top:1px solid var(--rule)}
  .elementor .slp-stat{justify-content:flex-start}
  .slp-vm-item+.slp-vm-item{border-left:0;border-top:1px solid var(--rule)}
  .slp-figures>.slp-cell{border-right:0;border-bottom:1px solid var(--rule)}
  .slp-roles>.slp-cell:not(:nth-child(3n+1)){border-left:0}
  .slp-acc .elementor-tab-content ul{columns:1}
  .slp-btn-row{flex-direction:row}
}

/* ---------- header (Theme Builder) ---------- */
.slp-site-header{position:sticky;top:0;z-index:20;background:var(--paper);transition:box-shadow .3s}
.scrolled .slp-site-header{box-shadow:0 1px 0 var(--rule)}
.admin-bar .slp-site-header{top:32px}
@media (max-width:782px){.admin-bar .slp-site-header{top:46px}}
@media (max-width:600px){.admin-bar .slp-site-header{top:0}}
.slp-logo,.slp-header-right{width:auto}
.slp-header-right{flex:1 1 auto}
.slp-logo>.elementor-widget,.slp-header-right>.elementor-widget{width:auto;flex:none}
.slp-logo-img img{width:34px;height:34px;border-radius:50%;object-fit:cover;mix-blend-mode:multiply}
.elementor .slp-logo-text .elementor-heading-title{font-family:var(--serif);font-weight:400;font-size:1.15rem;line-height:1.2;letter-spacing:0;white-space:nowrap}
.elementor .slp-logo-text .elementor-heading-title a{color:inherit;text-decoration:none}
.slp-nav .elementor-shortcode{display:flex;align-items:center}
.slp-nav-cta .elementor-button{padding:.6em 1.2em}
.nav-cta-mobile{display:none}
@media (max-width:1000px){
  .slp-header-right>.slp-nav-cta{display:none}
  .links .nav-cta-mobile{display:block}
}

/* ---------- footer (Theme Builder) ---------- */
.slp-footer{color:#C9D6CD;font-size:.95rem}
.slp-footer .slp-logo-img img{mix-blend-mode:normal;background:#fff}
.elementor .slp-footer .slp-logo-text .elementor-heading-title{color:#fff}
.elementor .slp-footer .slp-logo-text .elementor-heading-title em{color:var(--gold-lt)}
.slp-foot-tag p{font-family:var(--serif);font-size:1.7rem;line-height:1.15;color:#fff}
.slp-foot-tag em{color:var(--gold-lt)}
.elementor .slp-foot-h .elementor-heading-title{font:600 .75rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-lt)}
.slp-foot-links ul{list-style:none;padding:0;margin:0}
.elementor .slp-foot-links a{display:block;padding:5px 0;text-decoration:none;color:#E6EEE8}
.elementor .slp-foot-links a:hover,.elementor .slp-foot-contact a:hover{color:var(--gold-lt)}
.slp-foot-contact p{margin:0 0 12px}
.slp-foot-base{border-top:1px solid rgba(255,255,255,.14);font-size:.85rem;color:#8FA597}
.slp-foot-base>.elementor-widget{width:auto}
.slp-social-light .elementor-social-icon{border-color:rgba(255,255,255,.4)}
.slp-social-light .elementor-social-icon svg{fill:#fff}
.slp-social-light .elementor-social-icon:hover{background:#fff}
.slp-social-light .elementor-social-icon:hover svg{fill:var(--deep)}

/* ---------- header menu built from Elementor widgets ---------- */
.slp-header-right>.e-con.links{width:auto;flex:0 1 auto}
.links>.elementor-widget{width:auto;flex:none}
.slp-menu-toggle{width:auto;flex:none;line-height:0}
.elementor .slp-menu .elementor-icon-list-items.elementor-inline-items{display:flex;flex-wrap:nowrap;gap:28px;margin:0;padding:0;list-style:none}
.elementor .slp-menu .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin:0;padding:0}
.slp-menu .elementor-icon-list-item::after{display:none}
.slp-menu .elementor-icon-list-item a{position:relative;display:block;color:var(--ink);text-decoration:none;font-size:.92rem}
.slp-menu .elementor-icon-list-text{color:inherit;padding:0}
.slp-menu .elementor-icon-list-item a::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1px;background:currentColor;transition:right .3s}
.slp-menu .elementor-icon-list-item a:hover::after,.slp-menu .elementor-icon-list-item a[aria-current="page"]::after{right:0}
@media (min-width:1001px) and (max-width:1180px){.elementor .slp-menu .elementor-icon-list-items.elementor-inline-items{gap:20px}}
@media (max-width:1000px){
  .slp-site-header .elementor .slp-header-right>.e-con.links{position:fixed;inset:68px 0 auto 0;width:100%;background:var(--paper);--flex-direction:column;--align-items:stretch;--justify-content:flex-start;--gap:0px;flex-direction:column;align-items:stretch;gap:0;padding:8px clamp(20px,4vw,48px) 24px;border-bottom:1px solid var(--rule)}
  .admin-bar .slp-site-header .elementor .slp-header-right>.e-con.links{top:114px}
  .elementor .slp-menu .elementor-icon-list-items.elementor-inline-items{display:block}
  .elementor .slp-menu .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{display:block;width:100%}
  .slp-menu .elementor-icon-list-item a{padding:14px 0;border-bottom:1px solid var(--rule);font-size:1.1rem}
  .slp-menu .elementor-icon-list-item a::after{display:none}
  .slp-header-right>.e-con.links>.slp-nav-cta{display:block;margin-top:14px}
  .links>.slp-nav-cta .elementor-button{display:flex;width:100%;justify-content:center;padding:.9em 1.2em}
}
@media (max-width:782px){.admin-bar .slp-site-header .elementor .slp-header-right>.e-con.links{top:114px}}
@media (max-width:600px){.admin-bar .slp-site-header .elementor .slp-header-right>.e-con.links{top:68px}}

/* inside the Elementor editor, keep the phone menu open so its links can be edited */
.elementor-editor-active .links{opacity:1!important;transform:none!important;pointer-events:auto!important}
