/* ═══════════════════════════════════════
 On Point — Editorial Overrides
 National 2 Compressed, Bay City–matched
 ═══════════════════════════════════════ */
/* --- Font Faces --- */
@font-face{
 font-family:'National 2 Compressed';
 src:url('../assets/fonts/national-font-family/TestNational2Compressed-Extrabold-BF663c3f4670865.otf') format('opentype');
 font-weight:800;
 font-style:normal;
 font-display:swap;
}
@font-face{
 font-family:'National 2 Compressed';
 src:url('../assets/fonts/national-font-family/TestNational2Compressed-Bold-BF663c3f45e947a.otf') format('opentype');
 font-weight:700;
 font-style:normal;
 font-display:swap;
}
@font-face{
 font-family:'National 2 Compressed';
 src:url('../assets/fonts/national-font-family/TestNational2Compressed-Black-BF663c3f45302d7.otf') format('opentype');
 font-weight:900;
 font-style:normal;
 font-display:swap;
}
@font-face{
 font-family:'National 2 Compressed';
 src:url('../assets/fonts/national-font-family/TestNational2Compressed-Medium-BF663c3f4725cf1.otf') format('opentype');
 font-weight:500;
 font-style:normal;
 font-display:swap;
}
@font-face{
 font-family:'National 2 Compressed';
 src:url('../assets/fonts/national-font-family/TestNational2Compressed-Light-BF663c3f46d0e64.otf') format('opentype');
 font-weight:300;
 font-style:normal;
 font-display:swap;
}
@font-face{
 font-family:'National 2 Compressed';
 src:url('../assets/fonts/national-font-family/TestNational2Compressed-Regular-BF663c3f4768857.otf') format('opentype');
 font-weight:400;
 font-style:normal;
 font-display:swap;
}
@font-face{
 font-family:'National 2 Compressed Fallback';
 src:local('Arial Narrow'), local('ArialNarrow');
 size-adjust:78%;
 ascent-override:100%;
 descent-override:20%;
 line-gap-override:0%;
}
@font-face{
 font-family:'National 2 Condensed';
 src:url('../assets/fonts/national-font-family/TestNational2Condensed-Extrabold-BF663c3f47639d7.otf') format('opentype');
 font-weight:800;
 font-style:normal;
 font-display:swap;
}
@font-face{
 font-family:'National 2 Condensed';
 src:url('../assets/fonts/national-font-family/TestNational2Condensed-Bold-BF663c3f4769d39.otf') format('opentype');
 font-weight:700;
 font-style:normal;
 font-display:swap;
}
/* --- Variables --- */
:root{
 --cream:#F6F5ED;
 --ink:#172A35;
 --ink-muted:#4A5C68;
 --ink-faint:#7E8E98;
 --hover:#3D90E9;
 --rule-color:#172A35;
 --red:#8B2500;
 --font-headline:'National 2 Compressed', 'National 2 Compressed Fallback', 'Barlow Condensed', 'Arial Narrow', sans-serif;
 --font-headline-condensed:'National 2 Condensed', 'Barlow Condensed', sans-serif;
 --font-serif:Georgia, 'Times New Roman', serif;
 --font-body:system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
 --font-mono:'JetBrains Mono', monospace;
 --gutter:48px;
}
/* ═══════════════════════════════════════
 BASE OVERRIDES
 ═══════════════════════════════════════ */
html{
 background:var(--cream) !important;
 color:var(--ink) !important;
}
body{
 background:var(--cream) !important;
 color:var(--ink) !important;
}
.outer-bg{display:none !important;}
body{
 padding-top:80px !important;
}
.content-frame{
 border:none !important;
 background:transparent !important;
 max-width:none !important;
 margin:0 !important;
}
/* Kill old reveal animations that cause CLS */
.reveal{
 opacity:1 !important;
 transform:none !important;
 transition:none !important;
 animation:none !important;
}
.reveal.visible{
 opacity:1 !important;
 transform:none !important;
}
/* ═══════════════════════════════════════
 NAV — top of page
 ═══════════════════════════════════════ */
.nav{
 position:fixed !important;
 top:0 !important;
 left:0 !important;
 right:0 !important;
 z-index:100 !important;
 width:100% !important;
 display:flex !important;
 flex-wrap:nowrap !important;
 align-items:stretch !important;
 justify-content:space-between !important;
 padding:10px 0 !important;
 background:var(--cream) !important;
 border:none !important;
 border-bottom:none !important;
 backdrop-filter:none !important;
 -webkit-backdrop-filter:none !important;
 box-shadow:none !important;
}
.nav::after{
 content:'' !important;
 position:absolute !important;
 bottom:0 !important;
 left:0 !important;
 width:100% !important;
 height:1px !important;
 background:var(--ink) !important;
}
/* Remove duplicate separator rules from sub-pages (nav::after is the single separator) */
.pr-hero__rule,
.wk-hero__rule,
.bl-hero__rule,
.au-page-header__rule{
 display:none !important;
}
.nav.scrolled{
 background:rgba(246, 245, 237, 0.97) !important;
 backdrop-filter:blur(10px) !important;
 -webkit-backdrop-filter:blur(10px) !important;
}
/* Links — centered */
.nav .nav__links{
 display:flex !important;
 align-items:center !important;
 gap:0 !important;
 position:absolute !important;
 left:50% !important;
 transform:translateX(-50%) !important;
}
.nav .nav__link{
 font-family:var(--font-headline) !important;
 font-size:2.8rem !important;
 font-weight:800 !important;
 letter-spacing:0.04em !important;
 text-transform:uppercase !important;
 color:var(--ink) !important;
 padding:0px 48px !important;
 text-decoration:none !important;
 position:relative !important;
 transition:color 0.15s ease !important;
 opacity:1 !important;
}
.nav .nav__link:first-child{
 padding-left:48px !important;
}
.nav .nav__link::after{
 display:none !important;
}
.nav .nav__link:hover{
 color:var(--hover) !important;
 opacity:1 !important;
}
.nav .nav__divider{display:none !important;}
/* Right side */
.nav .nav__right{
 display:flex !important;
 align-items:center !important;
 gap:0 !important;
 flex-shrink:0 !important;
 margin-left:auto !important;
 position:static !important;
 padding-right:var(--gutter) !important;
}
/* Chat CTA — outlined button next to logo, matches .nav__cta style */
/* Chat CTA — right side of nav, replaces Free Quote */
.nav .nav__chat-cta{
 display:inline-block !important;
 font-family:var(--font-headline) !important;
 font-size:1.2rem !important;
 font-weight:800 !important;
 letter-spacing:0.04em !important;
 text-transform:uppercase !important;
 color:#fff !important;
 background:#3D90E9 !important;
 border:2px solid #3D90E9 !important;
 border-radius:4px !important;
 box-shadow:none !important;
 padding:14px 28px !important;
 white-space:nowrap !important;
 cursor:pointer !important;
 transition:background 0.2s, color 0.2s !important;
 position:relative !important;
 overflow:hidden !important;
 z-index:1 !important;
 line-height:1 !important;
}
.nav .nav__chat-cta:hover{
 background:#2d6bb7 !important;
 color:#fff !important;
 transform:none !important;
 box-shadow:none !important;
}
.nav .nav__chat-cta--mobile{display:none !important;}
/* Logo — top left of nav */
.nav .nav__logo{
 display:flex !important;
 align-items:center !important;
 padding:0 24px 0 var(--gutter) !important;
 flex-shrink:0 !important;
}
.nav .nav__logo-icon{
 height:52px !important;
 width:auto !important;
 transform:rotate(-12deg) !important;
 transition:transform 0.3s ease !important;
 filter:none !important;
 opacity:1 !important;
}
.nav .nav__logo:hover .nav__logo-icon{
 transform:rotate(-12deg) scale(1.1) !important;
}
.nav .nav__right-mobile{display:none !important;}
.nav .nav__menu-btn{display:none !important;}
.chat-toggle{display:none !important;}
/* ═══════════════════════════════════════
 MASTHEAD
 ═══════════════════════════════════════ */
.masthead{
 width:100%;
 padding:0 var(--gutter);
 border-top:none;
}
.masthead__inner{
 display:flex;
 align-items:center;
 justify-content:center;
 padding:8px 0 4px;
}
.masthead__title{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:clamp(5rem, 12vw, 11rem);
 letter-spacing:-0.01em;
 line-height:0.88;
 color:var(--ink);
 text-transform:uppercase;
 white-space:nowrap;
 text-align:center;
}
/* ═══════════════════════════════════════
 INFOBAR
 ═══════════════════════════════════════ */
.infobar{
 display:flex;
 align-items:center;
 justify-content:space-between;
 width:100%;
 padding:18px var(--gutter);
 border-top:1px solid var(--ink);
 border-bottom:1px solid var(--ink);
 font-family:var(--font-headline);
 font-size:1.1rem;
 font-weight:800;
 letter-spacing:0.1em;
 text-transform:uppercase;
 color:var(--ink);
}
.infobar__item{
 font-family:var(--font-headline);
 font-size:1.125rem;
 font-weight:700;
 letter-spacing:0.12em;
 color:var(--ink);
}
.infobar__tagline{
 font-family:var(--font-headline);
 font-size:1.375rem;
 font-weight:800;
 letter-spacing:0.15em;
 text-transform:uppercase;
 color:var(--ink);
}
/* ═══════════════════════════════════════
 HERO — two column, text left / image right
 Editorial newspaper style
 ═══════════════════════════════════════ */
.hero{
 position:relative !important;
 width:100% !important;
 display:grid !important;
 grid-template-columns:1fr 1fr !important;
 min-height:600px !important;
 overflow:hidden !important;
 background:var(--cream) !important;
 border:none !important;
 border-bottom:none !important;
 padding:0 !important;
 margin:0 !important;
}
/* Text column */
.hero__text-col{
 display:flex;
 flex-direction:column;
 justify-content:center;
 align-items:flex-start;
 gap:36px;
 padding:80px var(--gutter) 80px var(--gutter);
 border-right:1px solid var(--ink);
}
.hero__headline{
 font-family:var(--font-headline) !important;
 font-weight:800 !important;
 font-size:clamp(2.2rem, 3.8vw, 3.8rem) !important;
 line-height:1.05 !important;
 letter-spacing:0.02em !important;
 text-transform:uppercase !important;
 color:var(--ink) !important;
}
.hero__headline strong{
 color:var(--hover);
 font-weight:800;
}
.hero__cta{
 display:inline-block !important;
 font-family:var(--font-headline) !important;
 font-size:1.2rem !important;
 font-weight:800 !important;
 letter-spacing:0.08em !important;
 text-transform:uppercase !important;
 color:#fff !important;
 background:#3D90E9 !important;
 border:2px solid #3D90E9 !important;
 border-radius:4px !important;
 padding:16px 40px !important;
 text-decoration:none !important;
 transition:background 0.2s, color 0.2s !important;
 box-shadow:none !important;
}
.hero__cta:hover{
 background:#2d6bb7 !important;
 color:#fff !important;
 transform:none !important;
 box-shadow:none !important;
}
/* Image column — cream border around image */
.hero__image-col{
 display:flex;
 align-items:center;
 justify-content:center;
 padding:24px;
 background:var(--cream);
}
.hero__image-wrap{
 position:relative;
 width:100%;
 overflow:hidden;
}
.hero__image{
 width:100%;
 height:600px;
 object-fit:cover;
 object-position:center 30%;
 display:block;
 filter:contrast(1.1) brightness(1.05);
}
/* Dark overlay */
.hero__image-overlay{
 position:absolute;
 inset:0;
 background:rgba(23, 42, 53, 0.45);
 z-index:2;
 pointer-events:none;
}
/* Newspaper grain texture */
.hero__image-grain{
 position:absolute;
 inset:0;
 z-index:3;
 pointer-events:none;
 background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
 background-size:200px;
 opacity:0.1;
 mix-blend-mode:multiply;
}
/* Remove old::before grain on image-col */
.hero__image-col::before{
 display:none;
}
/* Text on image — bold, centered, white dividers */
.hero__image-text{
 position:absolute;
 top:20px;
 left:20px;
 right:20px;
 z-index:4;
 font-family:var(--font-headline);
 font-weight:800;
 font-size:clamp(1.6rem, 3vw, 2.6rem);
 line-height:1.1;
 letter-spacing:0.04em;
 text-transform:uppercase;
 color:var(--cream);
 text-align:center;
 text-shadow:0 2px 12px rgba(0,0,0,0.3);
 padding:16px 0;
 border-top:1px solid rgba(246, 245, 237, 0.7);
 border-bottom:1px solid rgba(246, 245, 237, 0.7);
}
/* Old caption class — hide */
.hero__caption{
 display:none !important;
}
/* ═══════════════════════════════════════
 MARQUEE — scrolling ticker
 ═══════════════════════════════════════ */
.marquee{
 width:100%;
 overflow:hidden;
 background:#C5E2E3;
 border-bottom:1px solid var(--ink);
 padding:24px 0;
}
.marquee__track{
 display:flex;
 white-space:nowrap;
 width:max-content;
 animation:marquee-scroll 10s linear infinite;
 will-change:transform;
}
.marquee__text{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:clamp(1.8rem, 4vw, 3.2rem);
 letter-spacing:0.03em;
 text-transform:uppercase;
 color:var(--ink);
 flex-shrink:0;
}
@keyframes marquee-scroll{
 0%{transform:translate3d(0, 0, 0);}
 100%{transform:translate3d(-33.333%, 0, 0);}
}
/* ═══════════════════════════════════════
 ABOUT — newspaper column layout
 ═══════════════════════════════════════ */
.about{
 width:100%;
 padding:0 var(--gutter);
 border-bottom:1px solid #172A35;
 background:var(--cream);
}
.about__header{
 display:flex;
 align-items:center;
 gap:20px;
 padding:24px 0 0;
}
.about__label{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:0.85rem;
 letter-spacing:0.15em;
 text-transform:uppercase;
 color:var(--ink);
 white-space:nowrap;
}
.about__rule{
 flex:1;
 height:1px;
 background:#172A35;
}
.about__columns{
 display:grid;
 grid-template-columns:1.4fr 1fr;
 gap:0;
 padding:32px 0 48px;
}
.about__col-main{
 padding-right:48px;
 position:relative;
}
.about__col-main::after{
 content:'';
 position:absolute;
 top:0;
 right:0;
 bottom:0;
 width:1px;
 background:var(--ink);
}
.about__headline{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:clamp(2.4rem, 4vw, 3.6rem);
 line-height:1;
 letter-spacing:0.01em;
 text-transform:uppercase;
 color:var(--ink);
 margin-bottom:24px;
}
.about__lead{
 font-family:var(--font-body);
 font-size:1.1rem;
 line-height:1.65;
 color:var(--ink);
 margin-bottom:16px;
}
.about__lead strong{
 font-weight:700;
}
.about__body{
 font-family:var(--font-body);
 font-size:1rem;
 line-height:1.65;
 color:var(--ink-muted);
}
/* Stats column */
.about__col-stats{
 padding-left:48px;
 display:flex;
 flex-direction:column;
 justify-content:center;
 gap:0;
}
.about__stat{
 padding:20px 0;
}
.about__stat-rule{
 height:1px;
 background:#172A35;
}
.about__stat-num{
 display:block;
 font-family:var(--font-headline);
 font-weight:800;
 font-size:3.2rem;
 line-height:1;
 letter-spacing:0.02em;
 text-transform:uppercase;
 color:var(--ink);
}
.about__stat-label{
 display:block;
 font-family:var(--font-headline);
 font-weight:700;
 font-size:1.15rem;
 letter-spacing:0.1em;
 text-transform:uppercase;
 color:var(--hover);
 margin-top:6px;
}
.about__stat-desc{
 display:block;
 font-family:var(--font-body);
 font-size:1.05rem;
 line-height:1.55;
 color:var(--ink-muted);
 margin-top:8px;
}
/* ═══════════════════════════════════════
 CTA — two column:text + image
 ═══════════════════════════════════════ */
.cta-section{
 width:100%;
 display:grid;
 grid-template-columns:1fr 1fr;
 border-bottom:1px solid #172A35;
}
.cta-section__text{
 background:#C5E2E3;
 padding:72px var(--gutter);
 display:flex;
 flex-direction:column;
 justify-content:center;
 align-items:flex-start;
 gap:28px;
 border-right:1px solid #172A35;
}
.cta-section__headline{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:clamp(4rem, 8vw, 7rem);
 line-height:0.9;
 letter-spacing:0.01em;
 text-transform:uppercase;
 color:var(--ink);
}
.cta-section__accent{
 color:var(--hover);
}
.cta-section__desc{
 font-family:var(--font-body);
 font-size:1.15rem;
 line-height:1.6;
 color:var(--ink);
 max-width:480px;
}
.cta-section__btn{
 display:inline-block;
 font-family:var(--font-headline);
 font-weight:800;
 font-size:1.3rem;
 letter-spacing:0.06em;
 text-transform:uppercase;
 color:#fff;
 background:#3D90E9;
 border:2px solid #3D90E9;
 border-radius:4px;
 padding:18px 40px;
 text-decoration:none;
 transition:background 0.2s, color 0.2s;
}
.cta-section__btn:hover{
 background:#2d6bb7;
 color:#fff;
}
/* Image column */
.cta-section__image-col{
 display:flex;
 align-items:center;
 justify-content:center;
 padding:24px;
 background:var(--cream);
}
.cta-section__image-wrap{
 position:relative;
 width:100%;
 overflow:hidden;
}
.cta-section__image{
 width:100%;
 height:100%;
 object-fit:cover;
 display:block;
 filter:contrast(1.1) brightness(1.05);
}
.cta-section__image-overlay{
 position:absolute;
 inset:0;
 background:rgba(23, 42, 53, 0.45);
 pointer-events:none;
}
/* Old CTA overrides */
.section.cta.line-draw{display:none !important;}
@media (max-width:768px){
 .cta-section{
 grid-template-columns:1fr;
}
 .cta-section__text{
 border-right:none;
 border-bottom:1px solid #172A35;
 padding:48px var(--gutter);
 align-items:center;
 text-align:center;
}
 .cta-section__btn{
 align-self:center;
}
 .cta-section__image-col{
 min-height:350px;
}
}
/* ═══════════════════════════════════════
 CONTACT — editorial two-column
 ═══════════════════════════════════════ */
.contact-section{
 width:100%;
 padding:0 var(--gutter);
 border-bottom:1px solid #172A35;
 background:var(--cream);
}
.contact-section__header{
 display:flex;
 align-items:center;
 gap:20px;
 padding:24px 0 0;
}
.contact-section__label{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:0.85rem;
 letter-spacing:0.15em;
 text-transform:uppercase;
 color:var(--ink);
 white-space:nowrap;
}
.contact-section__rule{
 flex:1;
 height:1px;
 background:#172A35;
}
.contact-section__columns{
 display:grid;
 grid-template-columns:1fr 1.2fr;
 gap:0;
 padding:32px 0 48px;
}
/* Info column — left */
.contact-section__info{
 padding-right:48px;
 position:relative;
}
.contact-section__info::after{
 content:'';
 position:absolute;
 top:0;
 right:0;
 bottom:0;
 width:1px;
 background:#172A35;
}
.contact-section__headline{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:clamp(2.8rem, 5vw, 4rem);
 line-height:0.95;
 letter-spacing:0.01em;
 text-transform:uppercase;
 color:var(--ink);
 margin-bottom:20px;
}
.contact-section__desc{
 font-family:var(--font-body);
 font-size:1.05rem;
 line-height:1.65;
 color:var(--ink-muted);
 margin-bottom:36px;
}
.contact-section__details{
 display:flex;
 flex-direction:column;
 gap:20px;
}
.contact-section__detail{
 display:flex;
 flex-direction:column;
 gap:2px;
}
.contact-section__detail-label{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:0.75rem;
 letter-spacing:0.15em;
 text-transform:uppercase;
 color:var(--ink-faint);
}
.contact-section__detail-value{
 font-family:var(--font-headline);
 font-weight:700;
 font-size:1.3rem;
 letter-spacing:0.03em;
 color:var(--ink);
 text-decoration:none;
 transition:color 0.15s;
}
a.contact-section__detail-value:hover{
 color:var(--hover);
}
/* Form column — right */
.contact-section__form-col{
 padding-left:48px;
}
.contact-section__form{
 display:flex;
 flex-direction:column;
 gap:20px;
}
.contact-section__form-row{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:20px;
}
.contact-section__form-group{
 display:flex;
 flex-direction:column;
 gap:6px;
}
.contact-section__form-label{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:0.75rem;
 letter-spacing:0.15em;
 text-transform:uppercase;
 color:var(--ink);
}
.contact-section__input,
.contact-section__textarea{
 font-family:var(--font-body);
 font-size:1rem;
 color:var(--ink);
 background:transparent;
 border:none;
 border-bottom:1px solid #172A35;
 padding:12px 0;
 outline:none;
 transition:border-color 0.2s;
 border-radius:0;
 -webkit-appearance:none;
}
.contact-section__input:focus,
.contact-section__textarea:focus{
 border-bottom-color:var(--hover);
}
.contact-section__input::placeholder,
.contact-section__textarea::placeholder{
 color:var(--ink-faint);
}
.contact-section__textarea{
 resize:vertical;
 min-height:120px;
}
.contact-section__submit{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:1.2rem;
 letter-spacing:0.06em;
 text-transform:uppercase;
 color:#fff;
 background:#3D90E9;
 border:2px solid #3D90E9;
 border-radius:4px;
 padding:18px 40px;
 cursor:pointer;
 transition:background 0.2s, color 0.2s;
 align-self:flex-start;
}
.contact-section__submit:hover{
 background:#2d6bb7;
 color:#fff;
}
/* Old contact overrides */
.section.contact{display:none !important;}
.contact-info-bar{display:none !important;}
@media (max-width:768px){
 .contact-section__columns{
 grid-template-columns:1fr;
}
 .contact-section__info{
 padding-right:0;
 padding-bottom:32px;
 margin-bottom:32px;
}
 .contact-section__info::after{
 top:auto;
 right:0;
 bottom:0;
 left:0;
 width:100%;
 height:1px;
}
 .contact-section__form-col{
 padding-left:0;
}
 .contact-section__form-row{
 grid-template-columns:1fr;
}
 .contact-section__submit{
 align-self:center;
 width:100%;
 text-align:center;
}
}
/* ═══════════════════════════════════════
 SERVICE AREAS — editorial newspaper
 ═══════════════════════════════════════ */
.areas-section{
 width:100%;
 padding:0 var(--gutter);
 border-bottom:1px solid #172A35;
 background:#C5E2E3;
}
.areas-section__header{
 display:flex;
 align-items:center;
 gap:20px;
 padding:24px 0 0;
}
.areas-section__label{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:0.85rem;
 letter-spacing:0.15em;
 text-transform:uppercase;
 color:var(--ink);
 white-space:nowrap;
}
.areas-section__rule{
 flex:1;
 height:1px;
 background:#172A35;
}
.areas-section__title{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:clamp(2.8rem, 5vw, 4.5rem);
 line-height:0.95;
 letter-spacing:0.01em;
 text-transform:uppercase;
 color:var(--ink);
 padding:16px 0 8px;
}
.areas-section__subtitle{
 font-family:var(--font-serif);
 font-style:italic;
 font-size:1.1rem;
 color:var(--ink-muted);
 padding-bottom:32px;
}
.areas-section__grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:0;
 padding-bottom:48px;
}
.areas-section__county{
 padding:0 32px;
 position:relative;
}
.areas-section__county:first-child{
 padding-left:0;
}
.areas-section__county:first-child::after{
 content:'';
 position:absolute;
 top:0;
 right:0;
 bottom:0;
 width:1px;
 background:#172A35;
}
.areas-section__county:last-child{
 padding-right:0;
}
.areas-section__county-name{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:2rem;
 letter-spacing:0.04em;
 text-transform:uppercase;
 color:var(--ink);
 padding-bottom:16px;
 border-bottom:1px solid #172A35;
 margin-bottom:16px;
}
.areas-section__cities{
 display:flex;
 flex-wrap:wrap;
 gap:8px;
}
.areas-section__city{
 font-family:var(--font-headline);
 font-weight:700;
 font-size:1rem;
 letter-spacing:0.04em;
 text-transform:uppercase;
 color:var(--ink-muted);
 padding:6px 14px;
 border:1px solid var(--ink);
 border-radius:2px;
 transition:background 0.15s, color 0.15s;
}
.areas-section__city--featured{
 color:var(--ink);
 background:rgba(23, 42, 53, 0.08);
}
.areas-section__city:hover{
 background:var(--ink);
 color:#C5E2E3;
}
.areas-section__more{
 margin-top:12px;
}
.areas-section__overflow{
 display:none;
 flex-wrap:wrap;
 gap:8px;
 margin-bottom:12px;
}
.areas-section__more[aria-expanded="true"] .areas-section__overflow{
 display:flex;
}
.areas-section__more[aria-expanded="true"] .areas-section__toggle{
 display:none;
}
.areas-section__toggle{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:0.85rem;
 letter-spacing:0.08em;
 text-transform:uppercase;
 color:var(--hover);
 background:none;
 border:none;
 cursor:pointer;
 padding:8px 0;
 transition:color 0.15s;
}
.areas-section__toggle:hover{
 color:var(--ink);
}
/* Old areas overrides */
.section.areas{display:none !important;}
@media (max-width:768px){
 .areas-section__grid{
 grid-template-columns:1fr;
}
 .areas-section__county{
 padding:0;
}
 .areas-section__county:first-child{
 padding-bottom:32px;
 margin-bottom:32px;
}
 .areas-section__county:first-child::after{
 top:auto;
 right:0;
 bottom:0;
 left:0;
 width:100%;
 height:1px;
}
}
/* ═══════════════════════════════════════
 FOOTER — dark editorial
 ═══════════════════════════════════════ */
.ed-footer{
 width:100%;
 background:#172A35;
 color:var(--cream);
 padding:0 var(--gutter);
}
/* Main row — everything spread out */
.ed-footer__main{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:32px;
 padding:24px 0;
}
.ed-footer__logo-icon{
 height:36px;
 width:auto;
 transform:rotate(-12deg);
 transition:transform 0.3s;
}
.ed-footer__logo:hover .ed-footer__logo-icon{
 transform:rotate(-12deg) scale(1.1);
}
.ed-footer__links{
 display:flex;
 align-items:center;
 gap:32px;
}
.ed-footer__links a{
 font-family:var(--font-headline);
 font-weight:700;
 font-size:1rem;
 letter-spacing:0.06em;
 text-transform:uppercase;
 color:var(--cream);
 text-decoration:none;
 transition:color 0.15s;
}
.ed-footer__links a:hover{
 color:#C5E2E3;
}
.ed-footer__contact{
 display:flex;
 align-items:center;
 gap:24px;
}
.ed-footer__contact a{
 font-family:var(--font-body);
 font-size:0.85rem;
 color:rgba(246, 245, 237, 0.75);
 text-decoration:none;
 transition:color 0.15s;
}
.ed-footer__contact a:hover{
 color:#C5E2E3;
}
.ed-footer__location{
 font-family:var(--font-body);
 font-size:0.85rem;
 color:rgba(246, 245, 237, 0.75);
}
.ed-footer__social{
 display:flex;
 align-items:center;
 gap:16px;
}
.ed-footer__social a{
 color:rgba(246, 245, 237, 0.75);
 transition:color 0.15s;
 display:flex;
}
.ed-footer__social a:hover{
 color:#C5E2E3;
}
.ed-footer__top-btn{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:1.4rem;
 color:rgba(246, 245, 237, 0.7);
 text-decoration:none;
 transition:color 0.15s;
}
.ed-footer__top-btn:hover{
 color:#C5E2E3;
}
/* Rule */
.ed-footer__rule{
 height:1px;
 background:rgba(246, 245, 237, 0.12);
}
/* Bottom row */
.ed-footer__bottom{
 display:flex;
 justify-content:space-between;
 align-items:center;
 padding:14px 0;
}
.ed-footer__copy{
 font-family:var(--font-body);
 font-size:0.75rem;
 color:rgba(246, 245, 237, 0.7);
}
.ed-footer__legal{
 display:flex;
 gap:20px;
}
.ed-footer__legal a{
 font-family:var(--font-body);
 font-size:0.75rem;
 color:rgba(246, 245, 237, 0.7);
 text-decoration:none;
 transition:color 0.15s;
}
.ed-footer__legal a:hover{
 color:#C5E2E3;
}
/* Old footer override */
.footer{display:none !important;}
@media (max-width:768px){
 .ed-footer__main{
 flex-wrap:wrap;
 justify-content:center;
 gap:20px;
 padding:20px 0;
}
 .ed-footer__links{
 flex-wrap:wrap;
 justify-content:center;
 gap:16px;
}
 .ed-footer__contact{
 flex-direction:column;
 align-items:center;
 gap:8px;
}
 .ed-footer__bottom{
 flex-direction:column;
 gap:8px;
 text-align:center;
}
}
/* ═══════════════════════════════════════
 BUTTON WAVE FILL — water hover effect
 ═══════════════════════════════════════ */
.nav__cta,
.hero__cta,
.hero-section__cta,
.cta-section__btn,
.contact-section__submit,
.pr-card__cta,
.pr-cta__btn,
.wk-coming__btn,
.au-form__btn,
.ed-footer__top-btn{
 position:relative;
 overflow:hidden;
 z-index:1;
}
.nav__cta::before,
.hero__cta::before,
.hero-section__cta::before,
.cta-section__btn::before,
.contact-section__submit::before,
.pr-card__cta::before,
.pr-cta__btn::before,
.wk-coming__btn::before,
.au-form__btn::before{
 content:'';
 position:absolute;
 left:-5%;
 bottom:0;
 width:110%;
 height:0%;
 background:var(--ink);
 z-index:-1;
 transition:height 0.45s cubic-bezier(0.4, 0, 0.2, 1);
 border-radius:0;
}
/* Dark bg buttons — fill with cream */
.pr-card--popular .pr-card__cta::before,
.pr-cta__btn::before,
.wk-coming__btn::before{
 background:var(--cream);
}
/* Ghost buttons — no fill effect */
.pr-cta__btn--ghost::before{
 display:none !important;
}
/* Hover:fill up + play wave */
.nav__cta:hover::before,
.hero__cta:hover::before,
.hero-section__cta:hover::before,
.cta-section__btn:hover::before,
.contact-section__submit:hover::before,
.pr-card__cta:hover::before,
.pr-cta__btn:hover::before,
.wk-coming__btn:hover::before,
.au-form__btn:hover::before{
 height:100%;
 border-radius:0;
 animation-play-state:running;
}
/* Ensure text stays on top */
.nav__cta > *,
.hero-section__cta > *,
.cta-section__btn > *,
.contact-section__submit > *,
.pr-card__cta > *,
.pr-cta__btn > *{
 position:relative;
 z-index:2;
}
/* Old section overrides */
.about-intro{display:none !important;}
.offerings{display:none !important;}
.process-marquee{display:none !important;}
/* ═══════════════════════════════════════
 SERVICES — image cards with overlay
 ═══════════════════════════════════════ */
.services{
 width:100%;
 padding:0 var(--gutter);
 border-bottom:1px solid #172A35;
 background:var(--cream);
}
.services__header{
 display:flex;
 align-items:center;
 gap:20px;
 padding:24px 0 0;
}
.services__label{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:0.85rem;
 letter-spacing:0.15em;
 text-transform:uppercase;
 color:var(--ink);
 white-space:nowrap;
}
.services__rule{
 flex:1;
 height:1px;
 background:#172A35;
}
.services__title{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:clamp(3rem, 6vw, 5rem);
 line-height:1;
 letter-spacing:0.01em;
 text-transform:uppercase;
 color:var(--ink);
 padding:16px 0 32px;
}
.services__grid{
 display:grid;
 grid-template-columns:repeat(3, 1fr);
 gap:24px;
 padding-bottom:48px;
}
/* Card */
.services__card{
 display:flex;
 flex-direction:column;
 gap:0;
}
.services__card-title{
 font-family:var(--font-headline);
 font-weight:800;
 font-size:2.4rem;
 letter-spacing:0.04em;
 text-transform:uppercase;
 color:var(--ink);
 padding:0 0 12px;
 border-bottom:1px solid #172A35;
 margin-bottom:0;
 text-align:center;
}
.services__card-image-wrap{
 position:relative;
 overflow:hidden;
 margin:16px 24px 0;
}
.services__card-image-wrap::after{
 content:'';
 position:absolute;
 inset:0;
 background:rgba(23, 42, 53, 0.65);
 pointer-events:none;
 z-index:1;
}
.services__card-image{
 width:100%;
 height:auto;
 display:block;
 filter:contrast(1.1) brightness(1.05);
 transition:transform 0.4s ease;
}
.services__card:hover .services__card-image{
 transform:scale(1.03);
}
/* Text overlay — no separate background, sits on darkened image */
.services__card-overlay{
 position:absolute;
 bottom:0;
 left:0;
 right:0;
 padding:24px 20px;
 background:none;
 display:flex;
 align-items:flex-end;
 z-index:2;
}
.services__card-desc{
 font-family:var(--font-body);
 font-weight:400;
 font-size:clamp(0.9rem, 1.3vw, 1.35rem);
 line-height:1.55;
 letter-spacing:0.01em;
 color:var(--cream);
}
/* Old offerings overrides */
.offerings{display:none !important;}
@media (max-width:1024px){
 .services__grid{
 grid-template-columns:repeat(2, 1fr);
}
}
@media (max-width:600px){
 .services__grid{
 grid-template-columns:1fr;
}
 .services__card-image-wrap{
 margin:12px 0 0;
}
 .services__card-desc{
 font-size:1.15rem;
}
}
@media (max-width:768px){
 .about__columns{
 grid-template-columns:1fr;
}
 .about__col-main{
 padding-right:0;
 border-right:none;
 border-bottom:1px solid var(--ink);
 padding-bottom:32px;
 margin-bottom:32px;
}
 .about__col-stats{
 padding-left:0;
}
 .about__stat-num{
 font-size:2.2rem;
}
 .about__stat-label{
 font-size:0.95rem;
}
 .about__stat-desc{
 font-size:0.9rem;
}
}
/* Kill old hero styles */
.hero__overlay,
.hero__grain,
.hero__marquee,
.hero__eyebrow,
.hero__heading,
.hero__subtitle,
.hero__btn,
.hero__line,
.hero__text,
.hero__accent--left,
.hero__accent--right{
 display:none !important;
}
/* ═══════════════════════════════════════
 MOBILE MENU
 ═══════════════════════════════════════ */
.mobile-menu{
 background:var(--cream) !important;
 z-index:101 !important;
}
.mobile-menu__masthead{
 display:none;
}
.mobile-menu__close{
 color:var(--ink) !important;
}
.mobile-menu__links a{
 font-family:var(--font-headline) !important;
 font-size:3.5rem !important;
 font-weight:800 !important;
 letter-spacing:0.04em !important;
 text-transform:uppercase !important;
 color:var(--ink) !important;
 border-bottom:none !important;
}
.mobile-menu__links a:hover{
 color:var(--hover) !important;
}
.mobile-menu__cta{
 font-family:var(--font-headline) !important;
 font-size:1.2rem !important;
 font-weight:800 !important;
 letter-spacing:0.06em !important;
 text-transform:uppercase !important;
 color:var(--ink) !important;
 background:transparent !important;
 border:2px solid var(--ink) !important;
 border-radius:4px !important;
 box-shadow:none !important;
 padding:20px 56px !important;
 white-space:nowrap !important;
 width:auto !important;
}
.mobile-menu__cta:hover{
 background:var(--ink) !important;
 color:var(--cream) !important;
}
/* ═══════════════════════════════════════
 LOADER — Hurricane
 ═══════════════════════════════════════ */
.loader{
 position:fixed !important;
 inset:0 !important;
 z-index:9999 !important;
 background:#172A35 !important;
 display:flex !important;
 align-items:center !important;
 justify-content:center !important;
 overflow:hidden !important;
 transition:opacity 0.5s ease, visibility 0.5s ease !important;
}
.loader::before{display:none !important;}
.loader.hidden{
 opacity:0 !important;
 visibility:hidden !important;
}
/* Subtle rain overlay */
.loader__rain{
 position:absolute;
 inset:0;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='400'%3E%3Cline x1='50' y1='0' x2='46' y2='40' stroke='rgba(197,226,227,0.07)' stroke-width='1'/%3E%3C/svg%3E");
 background-size:100px 400px;
 animation:rain-move 2s linear infinite;
 pointer-events:none;
 z-index:1;
}
@keyframes rain-move{
 0%{transform:translateY(-400px);}
 100%{transform:translateY(0);}
}
/* Text lines */
.loader__content{
 position:relative;
 z-index:3;
 display:flex;
 flex-direction:column;
 align-items:center;
 gap:0;
}
.loader__text-line{
 font-family:var(--font-headline);
 font-weight:800;
 text-transform:uppercase;
 color:var(--cream);
 line-height:0.9;
 opacity:0;
 will-change:transform, opacity;
}
/* ON POINT — blows in from left */
.loader__text--on-point{
 font-size:clamp(4rem, 14vw, 10rem);
 letter-spacing:-0.01em;
 transform:translateX(-120vw) rotate(-8deg);
 animation:blow-in-left 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.3s forwards;
}
/* HITS — punches in from right */
.loader__text--hits{
 font-size:clamp(2.5rem, 8vw, 6rem);
 letter-spacing:0.15em;
 color:#C5E2E3;
 transform:translateX(120vw) rotate(5deg);
 animation:blow-in-right 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.7s forwards;
}
/* FLORIDA! — slams up from below */
.loader__text--florida{
 font-size:clamp(4rem, 14vw, 10rem);
 letter-spacing:-0.01em;
 color:#3D90E9;
 transform:translateY(100vh) scale(1.3);
 animation:slam-up 0.5s cubic-bezier(0.16, 1, 0.3, 1) 1.1s forwards;
}
/* Bang drops from sky */
.loader__bang-drop{
 position:absolute;
 z-index:4;
 opacity:0;
 transform:translateY(-100vh) rotate(45deg) scale(2);
 animation:bang-slam 0.4s cubic-bezier(0.22, 1, 0.36, 1) 1.5s forwards;
}
.loader__bang-icon{
 height:clamp(80px, 15vw, 140px);
 width:auto;
 filter:drop-shadow(0 0 30px rgba(61, 144, 233, 0.5));
}
/* Shockwave ring from FLORIDA slam */
.loader__shockwave{
 position:absolute;
 inset:0;
 border-radius:50%;
 border:3px solid rgba(197, 226, 227, 0.4);
 z-index:2;
 opacity:0;
 pointer-events:none;
 transform:scale(0);
 animation:shockwave 0.8s ease-out 1.35s forwards;
 will-change:transform, opacity;
}
/* Full screen flash */
.loader__flash{
 position:absolute !important;
 inset:0 !important;
 background:#F6F5ED !important;
 z-index:10 !important;
 opacity:0 !important;
 width:auto !important;
 height:auto !important;
 border-radius:0 !important;
 margin:0 !important;
 animation:screen-flash 0.3s ease-out 1.9s forwards !important;
}
/* Rain activates partway through */
.loader .loader__rain{
 animation:rain-move 0.3s linear infinite;
 opacity:1;
}
@keyframes blow-in-left{
 0%{transform:translateX(-120vw) rotate(-8deg);opacity:0;}
 60%{transform:translateX(3vw) rotate(1deg);opacity:1;}
 80%{transform:translateX(-1vw) rotate(-0.5deg);opacity:1;}
 100%{transform:translateX(0) rotate(0);opacity:1;}
}
@keyframes blow-in-right{
 0%{transform:translateX(120vw) rotate(5deg);opacity:0;}
 60%{transform:translateX(-2vw) rotate(-0.5deg);opacity:1;}
 100%{transform:translateX(0) rotate(0);opacity:1;}
}
@keyframes slam-up{
 0%{transform:translateY(100vh) scale(1.3);opacity:0;}
 50%{transform:translateY(-10px) scale(1.02);opacity:1;}
 70%{transform:translateY(5px) scale(0.99);opacity:1;}
 100%{transform:translateY(0) scale(1);opacity:1;}
}
@keyframes bang-slam{
 0%{transform:translateY(-100vh) rotate(45deg) scale(2);opacity:0;}
 60%{transform:translateY(10px) rotate(-15deg) scale(0.9);opacity:1;}
 80%{transform:translateY(-5px) rotate(-10deg) scale(1.05);opacity:1;}
 100%{transform:translateY(0) rotate(-12deg) scale(1);opacity:1;}
}
@keyframes shockwave{
 0%{transform:scale(0);opacity:0.8;}
 100%{transform:scale(3);opacity:0;}
}
@keyframes screen-flash{
 0%{opacity:0;}
 30%{opacity:0.9;}
 100%{opacity:0;}
}
@keyframes rain-appear{
 0%{opacity:0;}
 100%{opacity:1;}
}
/* Screen shake on FLORIDA impact */
.loader__content{
 animation:screen-shake 0.15s ease 1.2s 3;
}
@keyframes screen-shake{
 0%, 100%{transform:translateX(0) translateY(0);}
 25%{transform:translateX(-8px) translateY(4px);}
 50%{transform:translateX(6px) translateY(-3px);}
 75%{transform:translateX(-4px) translateY(2px);}
}
/* ═══════════════════════════════════════
 RESPONSIVE
 ═══════════════════════════════════════ */
@media (max-width:1024px){
:root{--gutter:32px;}
 .nav .nav__link{
 font-size:2rem !important;
 padding:16px 20px !important;
}
 .nav .nav__chat-cta{
 font-size:1rem !important;
 padding:12px 22px !important;
}
}
@media (max-width:768px){
:root{--gutter:20px;}
 .hero{
 grid-template-columns:1fr !important;
}
 .hero__text-col{
 padding:48px var(--gutter);
 border-right:none;
 border-bottom:1px solid var(--ink);
 align-items:center !important;
 text-align:center;
}
 .hero__headline{
 font-size:2rem !important;
}
 .hero__cta{
 align-self:center !important;
}
 .hero__image-col{
 min-height:350px;
}
 .hero__image-text{
 font-size:1.4rem;
}
 .nav .nav__links{display:none !important;}
 .nav .nav__right{display:none !important;}
 .nav .nav__right-mobile{
 display:flex !important;
 align-items:center !important;
 gap:8px !important;
}
 .nav .nav__menu-btn{
 display:flex !important;
 flex-direction:column !important;
 gap:6px !important;
 padding:8px 10px !important;
 background:transparent !important;
 border:none !important;
 box-shadow:none !important;
}
 .nav .nav__menu-btn span{
 display:block !important;
 width:24px !important;
 height:3.5px !important;
 background:var(--ink) !important;
 border-radius:0 !important;
}
 body{
 padding-top:58px !important;
}
 .nav{
 padding:5px var(--gutter) !important;
 min-height:0 !important;
}
 .nav::before{
 display:none !important;
}
 .nav .nav__logo{
 display:flex !important;
 padding:0 !important;
}
 .nav .nav__logo-icon{
 height:36px !important;
}
 .nav .nav__right .nav__chat-cta{display:none !important;}
 .nav .nav__right-mobile .nav__chat-cta.nav__chat-cta--mobile{
 display:inline-block !important;
 font-family:var(--font-headline) !important;
 font-size:1.02rem !important;
 font-weight:800 !important;
 letter-spacing:0.04em !important;
 text-transform:uppercase !important;
 color:#fff !important;
 background:#3D90E9 !important;
 border:2px solid #3D90E9 !important;
 border-radius:4px !important;
 padding:8px 16px !important;
 cursor:pointer !important;
 white-space:nowrap !important;
 line-height:1 !important;
 position:relative !important;
 overflow:hidden !important;
 z-index:1 !important;
}
 .nav .nav__right-mobile .nav__chat-cta--mobile:hover{
 color:var(--cream) !important;
}
 .masthead__inner{
 gap:10px;
 padding:6px 0 2px;
}
 .masthead__logo-icon{
 height:56px !important;
}
 .masthead__title{
 font-size:clamp(3.2rem, 13vw, 5.5rem);
}
 .infobar__tagline{
 font-size:1.0625rem;
}
 .infobar__item{
 font-size:0.875rem;
 letter-spacing:0.08em;
}
}
@media (max-width:480px){
 .masthead__logo{display:none;}
 .masthead__title{font-size:clamp(2.6rem, 12vw, 4rem);}
 .infobar{
 flex-direction:column;
 gap:4px;
 text-align:center;
}
 .mobile-menu__links a{
 font-size:2.5rem !important;
}
}
