/* Shared final polish: supplied typography, flush headers, calm interaction. */
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
body.coast-has-site-navigation{margin:0;padding:0;font-family:Montserrat,system-ui,sans-serif;color:#001626}
/* Elementor's template and shortcode wrappers must not reserve a blank header row. */
body.coast-has-site-navigation :is(.elementor-location-header,header.site-header,#masthead,.elementor,.elementor-shortcode,.coast-legacy-hero):has(:is(.coast-home-hero,.coast-section-hero)){
 margin:0!important;padding:0!important;min-height:0!important;max-width:none!important;width:100%;border-radius:0;
}
body.coast-has-site-navigation .elementor-location-header :is(.e-con,.e-con-inner,.elementor-widget-wrap):has(.coast-legacy-hero){min-height:0!important;gap:0!important;--gap:0px;--row-gap:0px}
body.coast-has-site-navigation header.site-header:empty{display:none}
body.coast-has-site-navigation :is(.elementor-widget-container,.elementor-shortcode):has(.coast-legacy-hero){margin:0!important;padding:0!important;line-height:normal}
@media(min-width:1024px){body.coast-has-site-navigation :is(.elementor-widget-html,.elementor-widget-shortcode):has(.coast-legacy-hero.coast-mnav){display:none!important}}
@media(max-width:1023px){body.coast-has-site-navigation :is(.elementor-widget-html,.elementor-widget-shortcode):has(.coast-legacy-hero.coast-nav){display:none!important}}
#coast-site-navigation .coast-mnav__toggle{width:52px;min-width:52px;height:52px;min-height:52px;padding:0;justify-content:center;gap:0}
#coast-site-navigation .coast-mnav__burger{margin:0;flex:none}
#coast-site-navigation .coast-mnav__toggle-text{display:none}
#coast-site-navigation .coast-mnav__bar,#coast-site-navigation .coast-breadcrumbs{transition:opacity 240ms ease,transform 320ms cubic-bezier(.2,.65,.3,1),visibility 0s}
#coast-site-navigation.is-scroll-hidden .coast-mnav__bar,#coast-site-navigation.is-scroll-hidden .coast-breadcrumbs{opacity:0;transform:translateY(-170px);visibility:hidden;pointer-events:none;transition:opacity 240ms ease,transform 320ms cubic-bezier(.2,.65,.3,1),visibility 0s 320ms}
#coast-site-navigation.is-scroll-hidden .coast-mnav__bar *{pointer-events:none}
/* One-second dwell; leaving either hover or keyboard focus hides it immediately. */
.coast-home-link .coast-home-tooltip{opacity:0;visibility:hidden;transition:opacity 140ms ease 0s,visibility 0s 0s}
.coast-home-link:hover .coast-home-tooltip,.coast-home-link:focus-visible .coast-home-tooltip{opacity:1;visibility:visible;transition:opacity 140ms ease 1s,visibility 0s 1s}
/* Two real video layers crossfade only after the next video has a decoded frame. */
body .coast-home-hero .coast-home-hero__video{opacity:0;z-index:0;transition:opacity 1600ms cubic-bezier(.37,0,.63,1);border-radius:0;pointer-events:none}
body .coast-home-hero .coast-home-hero__video:not(.is-current):not(.is-incoming){transition:none}
body .coast-home-hero .coast-home-hero__video.is-current{opacity:1;z-index:0}
body .coast-home-hero .coast-home-hero__video.is-incoming{opacity:1;z-index:1}
body .coast-home-hero__scrim{z-index:2;pointer-events:none}
body .coast-home-hero__content{z-index:3}
body .coast-home-hero__pause{z-index:4}
@media(prefers-reduced-motion:reduce){#coast-site-navigation .coast-mnav__bar,#coast-site-navigation .coast-breadcrumbs,body .coast-home-hero .coast-home-hero__video{transition:none!important}}
/* Subtitles stay quieter than the title on every shared or legacy header. */
body :is(.coast-section-hero__description,.coast-home-hero__subtitle,.hero-section .hero-sub,.hero-section .hero-subtitle,.hero-section .hero-description){font-family:Montserrat,system-ui,sans-serif;font-size:clamp(14px,1.1vw,16px)!important;line-height:1.8!important;font-weight:400;letter-spacing:.015em}
/* A quiet brand pattern is the explicit fallback whenever a shared hero has no image. */
body .coast-section-hero--pattern .coast-section-hero__media{background:#001626 url('../img/header-brand-pattern.webp') center/cover no-repeat}
body .coast-section-hero--pattern .coast-section-hero__scrim{background:linear-gradient(110deg,rgba(0,22,38,.97),rgba(0,22,38,.9))}
body .hero-section:not(:has(video,.hero-photo)){background:linear-gradient(110deg,rgba(0,22,38,.97),rgba(0,22,38,.9)),url('../img/header-brand-pattern.webp') center/cover no-repeat}
/* The theme's redundant page title can otherwise leave a white row before a custom hero. */
body.coast-has-site-navigation:has(.coast-home-hero,.coast-section-hero) .page-header{display:none!important}
body.coast-has-site-navigation:not(:has(.coast-section-hero,.coast-home-hero)) #content:has(.page-header){padding-top:0!important}
body.coast-has-site-navigation:not(:has(.coast-section-hero,.coast-home-hero)) .page-header{
 width:100%;max-width:none;margin:0;padding:180px max(24px,calc((100% - 1184px)/2)) 64px;min-height:330px;
 background:linear-gradient(110deg,rgba(0,22,38,.97),rgba(0,22,38,.9)),url('../img/header-brand-pattern.webp') center/cover no-repeat;
}
body.coast-has-site-navigation:not(:has(.coast-section-hero,.coast-home-hero)) .page-header .entry-title{color:#fff;max-width:20ch;font-size:clamp(38px,4.4vw,64px);font-weight:400}
body.coast-commerce .woocommerce form .form-row textarea{width:100%}
@media(max-width:767px){body.coast-has-site-navigation:not(:has(.coast-section-hero,.coast-home-hero)) .page-header{padding:155px 24px 52px;min-height:285px}}
/* Prose bullets: semantic line icons, with list semantics and exact copy preserved. */
body ul.coast-icon-list{list-style:none;padding-left:0;display:grid;gap:10px}
body ul.coast-icon-list>li.coast-icon-list__item{position:relative;list-style:none;padding:18px 18px 18px 48px!important;margin:0;border:1px solid rgba(0,22,38,.12);border-radius:16px;background:#f7f5ef;line-height:1.8;color:#001626}
body .coast-icon-list__item>.coast-list-icon{position:absolute;left:16px;top:20px;display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;color:#80522e;pointer-events:none}
body .coast-icon-list__item>.coast-list-icon svg{display:block;flex:none}
body .coast-icon-list__item>ul.coast-icon-list{margin-top:14px}
@media(max-width:479px){body ul.coast-icon-list>li.coast-icon-list__item{padding-right:14px!important}body .coast-icon-list__item>.coast-list-icon{left:14px}}

/* Home must meet the viewport edges through the theme AND Elementor shells.
   Only ancestors of the Home hero are reset; content inside later sections is untouched. */
body:has(.coast-home-hero){margin:0!important;padding:0!important;border:0!important}
body:has(.coast-home-hero) :is(div,main,article,section):has(.coast-home-hero){
 box-sizing:border-box!important;width:100%!important;max-width:none!important;min-width:0!important;
 margin:0!important;padding:0!important;border:0!important;border-radius:0!important;
 --content-width:100%;--container-max-width:100%;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;
 gap:0!important;--gap:0px;--row-gap:0px;--column-gap:0px;
}
body:has(.coast-home-hero) :is(.elementor-location-header,header.site-header,#masthead):not(:has(.coast-home-hero)),
body:has(.coast-home-hero) :is(.page-header,.entry-header,.coast-breadcrumbs){display:none!important}
body .coast-home-hero{margin:0!important;border:0!important;border-radius:0!important;width:100%!important;max-width:none!important}
#coast-site-navigation .coast-mnav__toggle{width:auto;min-width:80px;padding:0 20px;font:500 14px/1 Montserrat,sans-serif}
#coast-site-navigation .coast-mnav__toggle-text{display:inline}
.coast-brand-key{display:inline-flex;align-items:center;justify-content:center;flex:0 0 12px;width:12px;height:26px;margin-left:4px;color:inherit}
.coast-brand-key svg{display:block;width:12px;height:26px;overflow:visible;flex:none}

#coast-site-navigation .coast-mnav__toggle{text-transform:none;letter-spacing:.035em}
