/* ==========================================================================
   Avalaunch theme: base, header/footer, Elementor demo layouts, forms
   ========================================================================== */
:root{
  --av-ink:#142e2b;--av-green:#244e45;--av-lime:#cddd98;--av-paper:#f5f4ef;
  --av-line:#d8ddd4;--av-muted:#61736b;--av-mist:#e7eadb;--av-leaf:#73916c;
}
*,*::before,*::after{box-sizing:border-box}
body.av-theme{margin:0;background:var(--av-paper);color:var(--av-ink);font:16px/1.7 'DM Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body.av-theme img{max-width:100%;height:auto}
body.av-theme a{color:inherit;text-decoration:none}
body.av-theme h1,body.av-theme h2,body.av-theme h3{font-family:Manrope,system-ui,sans-serif;font-weight:500;line-height:1.13;letter-spacing:-.05em}
body.av-theme h1{font-size:clamp(44px,5.8vw,84px);margin:25px 0}
body.av-theme h2{font-size:clamp(34px,4vw,58px);margin:16px 0 28px}
body.av-theme h3{font-size:27px}
button,input,select,textarea{font:inherit}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;margin:0;left:10px;top:10px;z-index:1000;background:var(--av-ink);color:#fff;padding:12px 18px}
:focus-visible{outline:3px solid var(--av-green);outline-offset:3px}
.av-dark :focus-visible,.site-footer :focus-visible{outline-color:var(--av-lime)}

/* ---------- Header ---------- */
.site-header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-bottom:1px solid var(--av-line);position:relative;background:var(--av-paper);z-index:50}
.brand{font:800 25px Manrope,sans-serif;letter-spacing:-1px}
.brand span{color:var(--av-leaf)}
.brand--logo img{max-height:56px;width:auto}
.site-nav .menu{display:flex;align-items:center;gap:30px;font-size:14px;list-style:none;margin:0;padding:0}
.site-nav .menu a:hover{text-decoration:underline;text-underline-offset:6px}
.site-nav .menu-cta a,.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:15px 24px;background:var(--av-ink);color:#fff;border:1px solid var(--av-ink);font-size:14px;cursor:pointer;text-decoration:none}
body.av-theme .site-nav .menu-cta a{color:#fff}
.site-nav .menu-cta a:hover,.button:hover{background:var(--av-green);border-color:var(--av-green);text-decoration:none}
.button.light{background:var(--av-lime);color:var(--av-ink);border-color:var(--av-lime)}
.nav-toggle{display:none;background:none;border:1px solid var(--av-ink);width:46px;height:46px;padding:0;cursor:pointer;align-items:center;justify-content:center}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{display:block;width:20px;height:2px;background:var(--av-ink);position:relative;transition:transform .2s,background .2s}
.nav-toggle__bars::before,.nav-toggle__bars::after{content:'';position:absolute;left:0}
.nav-toggle__bars::before{top:-6px}
.nav-toggle__bars::after{top:6px}
.is-open .nav-toggle__bars{background:transparent}
.is-open .nav-toggle__bars::before{top:0;transform:rotate(45deg)}
.is-open .nav-toggle__bars::after{top:0;transform:rotate(-45deg)}

/* ---------- Footer ---------- */
.site-footer{padding:50px 5% 25px;background:var(--av-ink);color:#fff}
.site-footer .brand{color:#fff}
.footer-top{display:flex;justify-content:space-between;gap:35px;padding-bottom:40px}
.footer-links,.footer-links .menu{display:flex;gap:25px;font-size:14px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.footer-links a:hover{text-decoration:underline}
.site-footer .fine{font-size:12px;color:#b1c3b8;border-top:1px solid #ffffff25;padding-top:22px}

/* ---------- Plain pages & blog ---------- */
.eyebrow,.av-eyebrow .elementor-heading-title{font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.page-hero{padding:80px 5%;max-width:1100px}
.page-hero p{max-width:720px;font-size:20px;color:var(--av-muted)}
.section{padding:90px 5%}
.prose{max-width:820px;padding:0 5% 80px}
.prose--wide{max-width:1100px}
.av-post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.av-post-card{border:1px solid var(--av-line);padding:24px}
.av-post-card h2{font-size:26px;margin:10px 0}
.nav-links{display:flex;gap:12px;margin-top:40px}

/* ---------- Elementor demo layouts ----------
   Containers are Elementor flexbox containers carrying av-* classes. Spacing/gaps are
   deliberately overridable from Elementor's own Layout/Style controls.            */
body.av-theme :is([class^="av-"],[class*=" av-"]).e-con{--gap:0px;--row-gap:0px;--column-gap:0px;--margin-block-start:0px;--margin-block-end:0px}
body.av-theme .elementor-widget:not(:last-child){margin-block-end:0;margin-bottom:0}
body.av-theme .elementor-widget-container{margin:0}

/* section wrappers */
body.av-theme .e-con.av-section{--padding-top:90px;--padding-bottom:90px;--padding-left:5%;--padding-right:5%;padding:90px 5%}
body.av-theme .e-con.av-dark{background:var(--av-ink);color:#fff}
body.av-theme .e-con.av-page-hero{--padding-top:80px;--padding-bottom:80px;--padding-left:5%;--padding-right:5%;padding:80px 5%;max-width:1100px}
body.av-theme .e-con.av-cta{--padding-top:70px;--padding-bottom:70px;--padding-left:5%;--padding-right:5%;padding:70px 5%;background:var(--av-lime);display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:35px}
body.av-theme .e-con.av-cta .av-h2 .elementor-heading-title{margin:0;max-width:700px}
body.av-theme .e-con.av-strip{--padding-top:23px;--padding-bottom:23px;--padding-left:5%;--padding-right:5%;padding:23px 5%;border-top:1px solid var(--av-line);border-bottom:1px solid var(--av-line);display:flex!important;flex-direction:row!important;justify-content:space-between;gap:20px;flex-wrap:wrap}
body.av-theme .av-strip-item{font-size:12px;letter-spacing:.1em;text-transform:uppercase;width:auto}
body.av-theme .av-strip-item p{margin:0}

/* grids */
body.av-theme .e-con.av-hero{display:grid!important;grid-template-columns:1fr 1fr;min-height:660px;padding:0}
body.av-theme .e-con.av-hero-copy{--padding-top:65px;--padding-bottom:65px;--padding-left:10%;--padding-right:10%;padding:65px 10%}
body.av-theme .e-con.av-hero-media{position:relative;min-height:480px;padding:0}
body.av-theme .av-hero-media .elementor-widget-image{position:absolute;inset:0;width:100%;height:100%}
body.av-theme .av-hero-media .elementor-widget-image .elementor-widget-container,
body.av-theme .av-hero-media .elementor-widget-image img{width:100%;height:100%;object-fit:cover;display:block}
body.av-theme .av-image-label{position:absolute;bottom:24px;left:24px;width:auto;z-index:2}
body.av-theme .av-image-label .elementor-heading-title{color:#fff;background:#142e2bd9;padding:12px 18px;font:400 12px/1.4 'DM Sans',sans-serif;letter-spacing:.06em;margin:0}
body.av-theme .e-con.av-intro{display:grid!important;grid-template-columns:1fr 1fr;gap:80px;align-items:start;padding:0}
body.av-theme .av-intro .av-text{max-width:490px}
body.av-theme .e-con.av-cards{display:grid!important;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;padding:0}
body.av-theme .e-con.av-card{position:relative;padding:32px;border:1px solid var(--av-line);display:flex;flex-direction:column;min-height:320px;transition:background .2s}
body.av-theme .e-con.av-card:hover{background:#e9ecdf}
body.av-theme .av-card .av-num{font-size:13px;color:#7a8c80}
body.av-theme .av-card .av-text{margin-bottom:35px}
body.av-theme .av-card .av-link{margin-top:auto;align-self:flex-start}
body.av-theme .av-card .av-link .elementor-button::after{content:'';position:absolute;inset:0}
body.av-theme .e-con.av-projects{display:grid!important;grid-template-columns:1.4fr 1fr;gap:35px;margin-top:35px;padding:0;align-items:start}
body.av-theme .e-con.av-project{padding:0}
body.av-theme .av-project .elementor-widget-image img{width:100%;height:370px;object-fit:cover;display:block}
body.av-theme .av-project .av-h3 .elementor-heading-title{margin:20px 0 10px}
body.av-theme .av-project .av-small{color:#bbc9c2;font-size:14px}
body.av-theme .av-project .av-small p{margin:0}
body.av-theme .av-section:not(.av-dark) .av-project .av-small{color:var(--av-muted)}
body.av-theme .e-con.av-resource{display:grid!important;grid-template-columns:1fr 1fr;gap:80px;background:var(--av-mist);align-items:center}
body.av-theme .e-con.av-checklist{background:var(--av-paper);padding:35px;border-top:5px solid var(--av-green);transform:rotate(-2deg);box-shadow:0 20px 40px #142e2b15}
body.av-theme .av-checklist .av-check-row{padding:14px 0;border-bottom:1px solid var(--av-line)}
body.av-theme .av-checklist .av-check-row p{margin:0}
body.av-theme .e-con.av-principles{display:grid!important;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:40px;padding:0}
body.av-theme .e-con.av-split{display:grid!important;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
body.av-theme .e-con.av-split-col,body.av-theme .e-con.av-intro-col{padding:0}
body.av-theme .e-con.av-steps{padding:0}
body.av-theme .av-step{padding:20px 0;border-bottom:1px solid var(--av-line)}
body.av-theme .av-step p{margin:0}
body.av-theme .av-step strong{display:block;font-size:20px;font-weight:600}
body.av-theme .e-con.av-panel{background:var(--av-mist);padding:35px}
body.av-theme .av-panel .av-h3 .elementor-heading-title{margin:0 0 12px}
body.av-theme .e-con.av-actions{display:flex!important;flex-direction:row!important;gap:15px;align-items:center;flex-wrap:wrap;margin-top:30px;padding:0}
body.av-theme .e-con.av-note-wrap{padding:0}
body.av-theme .e-con.av-hero-image{padding:0}
body.av-theme .av-hero-image img{width:100%;max-height:650px;object-fit:cover;display:block}
body.av-theme .e-con.av-spaced{margin-top:40px}

/* typography helpers (Elementor widgets) */
body.av-theme .av-h1 .elementor-heading-title{font:500 clamp(44px,5.8vw,84px)/1.13 Manrope,sans-serif;letter-spacing:-.05em;margin:25px 0;color:inherit}
body.av-theme .av-h2 .elementor-heading-title{font:500 clamp(34px,4vw,58px)/1.13 Manrope,sans-serif;letter-spacing:-.05em;margin:16px 0 28px;color:inherit}
body.av-theme .av-h3 .elementor-heading-title{font:500 27px/1.13 Manrope,sans-serif;letter-spacing:-.05em;margin:0 0 12px;color:inherit}
body.av-theme .av-eyebrow .elementor-heading-title{font:700 12px/1.5 'DM Sans',sans-serif;letter-spacing:.18em;text-transform:uppercase;color:inherit}
body.av-theme .av-lead{color:#5d7069;font-size:18px;max-width:480px}
body.av-theme .av-page-hero .av-lead{font-size:20px;color:var(--av-muted);max-width:720px}
body.av-theme .av-lead p{margin:0 0 1em}
body.av-theme .av-text{color:var(--av-muted)}
body.av-theme .av-text p{margin:0 0 1em}
body.av-theme .av-text p:last-child{margin-bottom:0}
body.av-theme .av-note{font-size:13px;color:var(--av-muted)}
body.av-theme .av-note p{margin:12px 0 0}
body.av-theme .av-dark .av-text,body.av-theme .av-dark .av-lead{color:#b6c7be}
body.av-theme .av-text a,body.av-theme .av-note a{border-bottom:1px solid;padding-bottom:2px}

/* buttons (Elementor button widget) */
body.av-theme .av-btn .elementor-button,
body.av-theme .av-link .elementor-button{border-radius:0;font:400 14px/1.7 'DM Sans',sans-serif;text-decoration:none;box-shadow:none}
body.av-theme .av-btn .elementor-button{background:var(--av-ink);color:#fff;border:1px solid var(--av-ink);padding:15px 24px;fill:#fff}
body.av-theme .av-btn .elementor-button:hover{background:var(--av-green);border-color:var(--av-green);color:#fff}
body.av-theme .av-btn.av-btn-light .elementor-button{background:var(--av-lime);color:var(--av-ink);border-color:var(--av-lime)}
body.av-theme .av-dark .av-btn .elementor-button{background:var(--av-lime);color:var(--av-ink);border-color:var(--av-lime)}
body.av-theme .av-link .elementor-button{background:transparent;color:inherit;border:0;border-bottom:1px solid;padding:0 0 5px;fill:currentColor}
body.av-theme .av-dark .av-link .elementor-button{color:#fff}

/* ---------- Inquiry form ---------- */
.av-form{display:grid;gap:18px}
.av-form label{display:grid;gap:6px;font-size:14px}
.av-form input,.av-form select,.av-form textarea{padding:12px;background:var(--av-paper);border:1px solid #b9c5ba;width:100%;border-radius:0;color:var(--av-ink)}
.av-form textarea{min-height:120px}
.av-form .av-consent{display:flex;align-items:flex-start;gap:10px}
.av-form .av-consent input{width:auto;margin-top:6px}
.av-form .av-hp{position:absolute!important;left:-9999px;height:0;overflow:hidden}
.av-form button{align-self:start}
.av-form-msg{padding:15px;border:1px solid var(--av-green);margin-bottom:20px;font-size:15px}
.av-form-msg--error{border-color:#9b2c2c;color:#7a1f1f}
.av-form-fine{font-size:13px;color:var(--av-muted)}

/* ---------- Responsive ---------- */
@media(max-width:800px){
  .site-header{height:80px}
  .nav-toggle{display:inline-flex}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--av-paper);border-bottom:1px solid var(--av-line);padding:10px 6% 24px}
  .is-open .site-nav{display:block}
  .site-nav .menu{flex-direction:column;align-items:stretch;gap:0}
  .site-nav .menu li{border-bottom:1px solid var(--av-line)}
  .site-nav .menu a{display:block;padding:16px 0;font-size:16px}
  .site-nav .menu-cta{border:0;padding-top:18px}
  .site-nav .menu-cta a{justify-content:space-between;padding:15px 24px}
  .footer-top{flex-direction:column;align-items:flex-start}
  .page-hero{padding:55px 6%}
  .section{padding:60px 6%}
  .av-post-grid{grid-template-columns:1fr}
  body.av-theme h1{font-size:49px}
  body.av-theme .e-con.av-hero,body.av-theme .e-con.av-intro,body.av-theme .e-con.av-split,body.av-theme .e-con.av-resource,
  body.av-theme .e-con.av-cards,body.av-theme .e-con.av-principles,body.av-theme .e-con.av-projects{grid-template-columns:1fr!important}
  body.av-theme .e-con.av-intro,body.av-theme .e-con.av-split,body.av-theme .e-con.av-resource{gap:30px}
  body.av-theme .e-con.av-section{--padding-top:60px;--padding-bottom:60px;--padding-left:6%;--padding-right:6%;padding:60px 6%}
  body.av-theme .e-con.av-page-hero{--padding-top:55px;--padding-bottom:55px;--padding-left:6%;--padding-right:6%;padding:55px 6%}
  body.av-theme .e-con.av-hero-copy{--padding-top:45px;--padding-bottom:45px;--padding-left:6%;--padding-right:6%;padding:45px 6%}
  body.av-theme .e-con.av-hero{min-height:0}
  body.av-theme .e-con.av-hero-media{min-height:370px}
  body.av-theme .e-con.av-cta{flex-direction:column!important;align-items:flex-start;--padding-left:6%;--padding-right:6%;padding:60px 6%}
  body.av-theme .av-project .elementor-widget-image img{height:300px}
  body.av-theme .e-con.av-checklist{transform:none}
  body.av-theme .av-h1 .elementor-heading-title{font-size:49px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
