/*
Theme Name:   In-N-Out Keys
Theme URI:    https://in-n-out-keys.com
Description:  Retro-coastal Florida Keys child theme for In-N-Out Keys. Holds the
              full INK design system and the site footer, so both survive Astra
              theme updates.
Author:       In-N-Out Keys
Template:     astra
Version:      1.0.3
Text Domain:  ink-child
*/

/* ==========================================================================
   Paste as the ENTIRE contents of style.css. Keep the block above — it is
   what registers this as a child of Astra.

   Change in this version: removed the mobile submenu toggle styling. The
   menu is flat now, so those rules had nothing to act on and were forcing
   styles onto Astra's own menu toggle button.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Nunito:wght@400;600;700;800&display=swap');

/* ==========================================================================
   IN-N-OUT KEYS — THEME v1.1
   Paste this whole file into Appearance > Customize > Additional CSS.
   NO <style> tags. The @import line MUST stay on line 1 or the fonts
   are ignored.
   Everything is scoped under .ink — no bare element selectors, so Astra's
   header, footer and global layout are untouched.
   v1.1 change from v1: wrapper class .ink-marathon renamed to .ink so one
   stylesheet serves every page. See the handoff note for the one-line fix
   to the existing Marathon page.
   ========================================================================== */

.ink{
  --navy:#16324a; --deep:#0f2436; --teal:#34b3bd; --coral:#ef5c42; --gold:#f4a24c;
  --cream:#f6efda; --cream-dk:#ece3c4; --sand:#fbf7ea;
  --paper:#fcfaf4; --mist:#e9f1f1; --mist-dk:#d6e5e5;
  --ink-muted:#3d5468; --ink-label:#6b7f8e;
  font-family:'Nunito',-apple-system,sans-serif; color:var(--navy);
  background:var(--paper); line-height:1.62; -webkit-font-smoothing:antialiased;
}
.ink *{box-sizing:border-box;}
.ink h1,.ink h2,.ink h3,.ink .disp{
  font-family:'Anton',sans-serif;font-weight:400;letter-spacing:.01em;line-height:.98;
  text-transform:uppercase;color:var(--navy);margin:0;
}
.ink a{color:inherit;text-decoration:none;}
.ink a:focus-visible{outline:3px solid var(--coral);outline-offset:3px;border-radius:4px;}
.ink-wrap{max-width:1000px;margin:0 auto;padding:0 26px;}
.ink-center{text-align:center;}

/* ===== HERO ===== */
.ink-hero{position:relative;text-align:center;padding:52px 0 60px;overflow:hidden;
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(239,92,66,.14), transparent 60%),
    radial-gradient(90% 60% at 50% 0%, rgba(244,162,76,.14), transparent 55%);
}
.ink-badge-banner{display:inline-block;background:var(--coral);color:var(--cream);
  font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:.14em;
  font-size:13px;padding:8px 20px;border-radius:4px;margin-bottom:26px;
  box-shadow:0 3px 0 rgba(0,0,0,.12);transform:rotate(-1.2deg);}
.ink-badge-banner a{text-decoration:underline;}
.ink-logo{max-width:340px;margin:0 auto 30px;filter:drop-shadow(0 12px 24px rgba(15,36,54,.28));}
.ink-logo img{width:100%;height:auto;display:block;}
.ink-hero h1{font-size:clamp(38px,6.4vw,74px);max-width:14ch;margin:0 auto 8px;}
.ink-hero h1 .teal{color:var(--teal);}
.ink-hero h1 .coral{color:var(--coral);}
.ink-hero-sub{font-size:clamp(16px,2vw,20px);color:var(--ink-muted);max-width:50ch;margin:14px auto 32px;font-weight:600;}
.ink-cta-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;align-items:center;}
.ink-btn{display:inline-flex;align-items:center;gap:9px;font-family:'Anton',sans-serif;
  text-transform:uppercase;letter-spacing:.05em;font-size:16px;padding:15px 30px;border-radius:6px;
  background:var(--coral);color:var(--cream);box-shadow:0 4px 0 #c23e28;transition:transform .1s,box-shadow .1s;}
.ink-btn:hover{transform:translateY(2px);box-shadow:0 2px 0 #c23e28;}
.ink-btn.teal{background:var(--teal);box-shadow:0 4px 0 #278891;}
.ink-btn.teal:hover{box-shadow:0 2px 0 #278891;}
.ink-btn.navy{background:var(--navy);box-shadow:0 4px 0 #0a1a28;}
.ink-btn.navy:hover{box-shadow:0 2px 0 #0a1a28;}
.ink-phone{font-family:'Anton',sans-serif;font-size:22px;letter-spacing:.02em;color:var(--navy);}
.ink-phone small{display:block;font-family:'Nunito';font-weight:700;font-size:11.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-label);}

/* mile-marker device */
.ink-mm{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  width:64px;height:74px;background:var(--navy);color:var(--cream);border-radius:5px;
  font-family:'Anton',sans-serif;line-height:1;padding-top:8px;box-shadow:0 4px 0 rgba(0,0,0,.2);}
.ink-mm .mm-lbl{font-size:9px;letter-spacing:.12em;opacity:.75;}
.ink-mm .mm-num{font-size:30px;margin-top:2px;}
.ink-mm.teal{background:var(--teal);}
.ink-mm.coral{background:var(--coral);}

/* wave divider */
.ink-wave{display:block;width:100%;height:40px;}

/* ===== ANNOUNCE STRIP ===== */
.ink-announce{background:var(--navy);color:var(--cream);text-align:center;padding:40px 0;}
.ink-announce .ink-wrap{display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap;}
.ink-announce h2{color:var(--cream);font-size:clamp(22px,3vw,32px);}
.ink-announce p{margin:6px 0 0;color:#bcd3d6;font-weight:600;max-width:44ch;}
.ink-announce a{color:var(--teal);text-decoration:underline;}

/* ===== SECTION ===== */
.ink-sec{padding:64px 0;}
.ink-sec.sand{background:var(--mist);border-top:1px solid var(--mist-dk);border-bottom:1px solid var(--mist-dk);}
.ink-sec h2{font-size:clamp(26px,3.6vw,40px);margin-bottom:14px;text-align:center;}
.ink-sec .lead{text-align:center;font-size:17px;color:var(--ink-muted);max-width:56ch;margin:0 auto 42px;font-weight:600;}

/* badge cards */
.ink-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ink-grid.two{grid-template-columns:repeat(2,1fr);}
.ink-card{background:var(--cream);border:2px solid var(--navy);border-radius:14px;padding:28px 24px;text-align:center;
  box-shadow:6px 6px 0 rgba(22,50,74,.12);}
.ink-card .ic{width:56px;height:56px;margin:0 auto 16px;border-radius:50%;background:var(--teal);
  display:flex;align-items:center;justify-content:center;color:var(--cream);}
.ink-card h3{font-size:20px;margin-bottom:10px;}
.ink-card p{font-size:14.5px;color:var(--ink-muted);margin:0;font-weight:600;line-height:1.6;}

/* ===== COVERAGE RAIL (the Overseas Highway) ===== */
.ink-rail{position:relative;margin-top:10px;}
.ink-rail::before{content:"";position:absolute;left:5%;right:5%;top:34px;height:6px;
  background:var(--navy);border-radius:3px;}
.ink-rail-inner{display:flex;justify-content:space-between;gap:10px;position:relative;}
.ink-stop{flex:1;text-align:center;}
.ink-stop .ink-mm{position:relative;z-index:1;margin-bottom:14px;}
.ink-stop .nm{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:15px;line-height:1.1;}
.ink-stop .dsc{font-size:12.5px;font-weight:600;color:var(--ink-muted);margin-top:4px;line-height:1.45;}

/* ===== TWO-PANEL COMPARE ===== */
.ink-compare{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}
.ink-panel{border:2px solid var(--navy);border-radius:14px;padding:26px 26px;background:var(--cream);
  box-shadow:6px 6px 0 rgba(22,50,74,.12);}
.ink-panel.quiet{background:transparent;box-shadow:none;border-style:dashed;border-color:#c3cfd8;}
.ink-panel.quiet h3{color:var(--ink-label);}
.ink-panel h3{font-size:19px;margin-bottom:14px;}
.ink-ul{list-style:none;padding:0;margin:0;}
.ink-ul li{padding:8px 0 8px 27px;position:relative;font-size:14.5px;font-weight:600;
  color:var(--ink-muted);line-height:1.55;}
.ink-ul li::before{content:"";position:absolute;left:0;top:15px;width:12px;height:12px;border-radius:50%;
  background:var(--teal);}
.ink-ul.quiet li::before{background:transparent;border:2px solid #c3cfd8;}

/* ===== SPLIT (about / story) ===== */
.ink-split{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:start;}
.ink-split h2{text-align:left;}
.ink-split p{font-size:15.5px;font-weight:600;color:var(--ink-muted);margin:0 0 15px;}
.ink-who{border-left:4px solid var(--coral);padding:4px 0 4px 20px;margin-top:6px;}
.ink-who .who-row{padding:11px 0;border-top:1px dashed var(--cream-dk);}
.ink-who .who-row:first-child{border-top:none;}
.ink-who .who-nm{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:17px;}
.ink-who .who-rl{font-size:13.5px;font-weight:700;color:var(--ink-label);}

/* location callout */
.ink-loc{display:grid;grid-template-columns:1fr 1fr;gap:0;border:2px solid var(--navy);border-radius:16px;overflow:hidden;
  box-shadow:8px 8px 0 rgba(22,50,74,.12);background:var(--cream);}
.ink-loc-info{padding:44px 40px;}
.ink-loc-info h2{text-align:left;margin-bottom:20px;}
.ink-loc-row{display:flex;gap:13px;align-items:flex-start;padding:14px 0;border-top:1px dashed var(--cream-dk);}
.ink-loc-row:first-of-type{border-top:none;}
.ink-loc-row .ic{flex:none;color:var(--coral);margin-top:2px;}
.ink-loc-row .lbl{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-label);margin-bottom:2px;}
.ink-loc-row .val{font-size:16.5px;font-weight:700;color:var(--navy);}
.ink-loc-row .val a{color:var(--teal);}
.ink-loc-map{min-height:360px;border-left:2px solid var(--navy);}
.ink-loc-map iframe{width:100%;height:100%;min-height:360px;border:0;display:block;}

/* ===== CREDENTIAL STRIP ===== */
.ink-facts{background:var(--deep);color:var(--cream);padding:30px 0;}
.ink-facts p{margin:0 auto;text-align:center;font-size:13.5px;font-weight:600;
  color:#9fb8bd;max-width:76ch;line-height:1.7;}
.ink-facts strong{color:var(--cream);font-weight:800;}

/* ===== SOCIAL PILLS ===== */
.ink-social{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:26px;}
.ink-social a{font-family:'Anton',sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  padding:9px 16px;border:2px solid var(--navy);border-radius:999px;transition:background .12s,color .12s;}
.ink-social a:hover{background:var(--navy);color:var(--cream);}

/* ===== FINAL CTA ===== */
.ink-final{background:linear-gradient(160deg,var(--coral),var(--gold));text-align:center;padding:72px 0;color:var(--cream);}
.ink-final h2{color:var(--cream);font-size:clamp(28px,4vw,46px);margin-bottom:14px;text-shadow:0 2px 0 rgba(0,0,0,.12);}
.ink-final p{color:rgba(255,255,255,.94);font-size:18px;font-weight:600;max-width:46ch;margin:0 auto 30px;}
.ink-final .ink-btn{background:var(--navy);box-shadow:0 4px 0 #0a1a28;}
.ink-final .ink-final-phone{display:block;margin-top:18px;font-weight:700;}
.ink-final .ink-final-phone a{color:var(--cream);text-decoration:underline;}

/* ===== RESPONSIVE ===== */
@media(max-width:820px){
  .ink-sec{padding:48px 0;}
  .ink-grid,.ink-grid.two{grid-template-columns:1fr;}
  .ink-loc{grid-template-columns:1fr;}
  .ink-loc-map{border-left:none;border-top:2px solid var(--navy);}
  .ink-loc-info{padding:32px 26px;}
  .ink-compare{grid-template-columns:1fr;}
  .ink-split{grid-template-columns:1fr;gap:28px;}
  .ink-rail::before{display:none;}
  .ink-rail-inner{flex-wrap:wrap;justify-content:center;gap:22px 14px;}
  .ink-stop{flex:0 0 calc(50% - 14px);}
  .ink-announce .ink-wrap{gap:18px;}
  .ink-announce div[data-stack]{text-align:center;}
}

@media(prefers-reduced-motion:reduce){
  .ink *{transition:none !important;}
  .ink .ink-btn:hover{transform:none;}
}

/* ===== v1.2 ADDITIONS ===== */

/* linked mile markers on the coverage rail */
.ink-stop a{display:block;}
.ink-stop a:hover .ink-mm{background:var(--coral);}
.ink-stop a:hover .nm{color:var(--coral);}

/* out-of-state band */
.ink-band{background:var(--navy);color:var(--cream);padding:56px 0;}
.ink-band h2{color:var(--cream);text-align:left;font-size:clamp(24px,3.2vw,34px);margin-bottom:16px;}
.ink-band p{color:#bcd3d6;font-weight:600;font-size:15.5px;margin:0 0 14px;max-width:62ch;}
.ink-band .ink-split{gap:36px;align-items:center;}
.ink-band .ink-ul li{color:#bcd3d6;}
.ink-band .ink-ul li::before{background:var(--gold);}

/* reviews band — wraps the Trustindex shortcode block */
.ink-reviews-head{background:var(--mist);padding:56px 0 24px;text-align:center;
  border-top:1px solid var(--mist-dk);}
.ink-reviews-head h2{font-size:clamp(26px,3.6vw,40px);margin-bottom:12px;}
.ink-reviews-head p{font-size:16.5px;color:var(--ink-muted);font-weight:600;margin:0 auto;max-width:52ch;}
.ink-reviews-foot{background:var(--mist);padding:8px 0 56px;text-align:center;
  border-bottom:1px solid var(--mist-dk);}

/* ===== v1.3 ADDITIONS — interior pages ===== */

/* breadcrumb */
.ink-crumb{background:var(--paper);padding:16px 0 0;font-size:13px;font-weight:700;color:var(--ink-label);}
.ink-crumb a{color:var(--teal);}
.ink-crumb a:hover{text-decoration:underline;}
.ink-crumb span{margin:0 7px;opacity:.5;}

/* interior page hero — shorter than the home hero */
.ink-phero{text-align:center;padding:34px 0 46px;
  background:radial-gradient(110% 70% at 50% -10%, rgba(52,179,189,.14), transparent 60%);}
.ink-phero h1{font-size:clamp(30px,4.8vw,54px);max-width:18ch;margin:0 auto 14px;}
.ink-phero h1 .teal{color:var(--teal);}
.ink-phero h1 .coral{color:var(--coral);}
.ink-phero .ink-mm{margin-bottom:20px;}
.ink-phero-sub{font-size:clamp(15.5px,1.9vw,19px);color:var(--ink-muted);max-width:56ch;
  margin:0 auto 28px;font-weight:600;}

/* prose block */
.ink-prose{max-width:68ch;margin:0 auto;}
.ink-prose.wide{max-width:100%;}
.ink-prose h2{text-align:left;font-size:clamp(23px,3vw,32px);margin:34px 0 14px;}
.ink-prose h2:first-child{margin-top:0;}
.ink-prose h3{font-size:19px;margin:26px 0 10px;}
.ink-prose p{font-size:16px;font-weight:600;color:var(--ink-muted);margin:0 0 15px;}
.ink-prose strong{color:var(--navy);}
.ink-prose a{color:var(--teal);font-weight:800;}
.ink-prose a:hover{text-decoration:underline;}

/* FAQ */
.ink-faq{border-top:2px solid var(--navy);}
.ink-faq details{border-bottom:1px solid var(--cream-dk);padding:0;}
.ink-faq summary{cursor:pointer;list-style:none;padding:17px 34px 17px 0;position:relative;
  font-family:'Anton',sans-serif;text-transform:uppercase;font-size:16.5px;color:var(--navy);}
.ink-faq summary::-webkit-details-marker{display:none;}
.ink-faq summary::after{content:"+";position:absolute;right:6px;top:13px;font-size:24px;color:var(--coral);}
.ink-faq details[open] summary::after{content:"\2013";}
.ink-faq details p{font-size:15px;font-weight:600;color:var(--ink-muted);margin:0 0 17px;max-width:70ch;}
.ink-faq summary:focus-visible{outline:3px solid var(--coral);outline-offset:2px;}

/* related pages */
.ink-rel{background:var(--mist);border-top:1px solid var(--mist-dk);padding:52px 0;}
.ink-rel h2{font-size:clamp(22px,2.8vw,28px);text-align:center;margin-bottom:26px;}
.ink-rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.ink-rel-item{display:block;background:var(--cream);border:2px solid var(--navy);border-radius:12px;
  padding:17px 19px;box-shadow:4px 4px 0 rgba(22,50,74,.12);transition:transform .1s,box-shadow .1s;}
.ink-rel-item:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 rgba(22,50,74,.12);}
.ink-rel-item .t{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:16px;color:var(--navy);}
.ink-rel-item .d{font-size:13px;font-weight:600;color:var(--ink-muted);margin-top:4px;line-height:1.45;}

/* neighbour strip on destination pages */
.ink-nbr{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap;margin-top:34px;}
.ink-nbr a{flex:1;min-width:210px;border:2px dashed #c3cfd8;border-radius:12px;padding:15px 18px;}
.ink-nbr a:hover{border-style:solid;border-color:var(--teal);}
.ink-nbr .lbl{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-label);}
.ink-nbr .t{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:17px;color:var(--navy);margin-top:3px;}

/* contact / quote panels */
.ink-contact{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start;}
.ink-form-note{background:var(--cream);border:2px dashed var(--coral);border-radius:12px;
  padding:18px 20px;font-size:14px;font-weight:700;color:var(--coral);}

@media(max-width:820px){
  .ink-rel-grid{grid-template-columns:1fr;}
  .ink-contact{grid-template-columns:1fr;}
  .ink-prose h2{margin-top:26px;}
}

/* ===== v1.4 — hero restructure, matching the ASNM network pattern ===== */

/* two-column hero: headline left, logo right, logo drops on mobile */
.ink-hero.split{text-align:left;padding:52px 0 44px;}
.ink-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;}
.ink-hero.split h1{margin:0 0 16px;max-width:18ch;font-size:clamp(34px,5.4vw,60px);}
.ink-hero.split .ink-hero-sub{margin:0 0 30px;max-width:54ch;}
.ink-hero.split .ink-cta-row{justify-content:flex-start;}
.ink-hero.split .ink-badge-banner{margin-bottom:22px;}
.ink-hero-logo{max-width:400px;width:100%;justify-self:end;margin:0;}
.ink-hero-logo img{width:100%;height:auto;display:block;}

/* serving line under the CTAs */
.ink-hero-serving{margin:28px 0 0;padding-top:20px;border-top:1px solid var(--cream-dk);
  font-size:15px;color:var(--ink-muted);font-weight:600;display:flex;align-items:center;gap:9px;}
.ink-hero-serving svg{flex:none;color:var(--coral);}
.ink-hero-serving b{color:var(--navy);font-weight:800;}

/* trust strip */
.ink-trust{background:var(--mist);border-top:2px solid var(--navy);border-bottom:2px solid var(--navy);}
.ink-trust .ink-wrap{display:flex;flex-wrap:wrap;gap:14px 40px;padding-top:20px;padding-bottom:20px;
  justify-content:space-between;}
.ink-trust-item{display:flex;align-items:baseline;gap:9px;font-size:14.5px;color:var(--ink-muted);font-weight:600;}
.ink-trust-item b{font-family:'Anton',sans-serif;font-weight:400;font-size:20px;color:var(--navy);
  text-transform:uppercase;letter-spacing:.01em;}

@media(max-width:820px){
  .ink-hero.split{text-align:center;}
  .ink-hero-grid{grid-template-columns:1fr;gap:0;}
  .ink-hero-logo{display:none;}
  .ink-hero.split h1{margin-left:auto;margin-right:auto;}
  .ink-hero.split .ink-hero-sub{margin-left:auto;margin-right:auto;}
  .ink-hero.split .ink-cta-row{justify-content:center;}
  .ink-hero-serving{justify-content:center;text-align:left;}
  .ink-trust .ink-wrap{justify-content:flex-start;gap:12px 28px;}
}

/* ===== v1.5 — rotating hero photo ===== */
.ink-photo{position:relative;width:100%;max-width:440px;justify-self:end;margin:0;
  aspect-ratio:4/3;border:2px solid var(--navy);border-radius:16px;overflow:hidden;
  box-shadow:10px 10px 0 rgba(22,50,74,.14);background:var(--sand);}
.ink-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .9s ease;}
.ink-photo img.on{opacity:1;}
.ink-photo figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;
  display:flex;align-items:center;gap:11px;padding:14px 16px;
  background:linear-gradient(to top,rgba(15,36,54,.88),rgba(15,36,54,0));}
.ink-photo .cap-mm{flex:none;background:var(--coral);color:var(--cream);
  font-family:'Anton',sans-serif;font-size:12px;letter-spacing:.06em;
  padding:5px 9px;border-radius:4px;line-height:1;}
.ink-photo .cap-txt{font-family:'Anton',sans-serif;text-transform:uppercase;
  font-size:15px;letter-spacing:.02em;color:var(--cream);line-height:1.1;}

@media(max-width:820px){
  .ink-photo{display:none;}
}
@media(prefers-reduced-motion:reduce){
  .ink-photo img{transition:none;}
}

/* ===== v1.6 — route tabs and lane rows ===== */
.ink-tabs{display:inline-flex;gap:4px;background:var(--cream);border:2px solid var(--navy);
  border-radius:11px;padding:4px;margin-bottom:24px;box-shadow:4px 4px 0 rgba(22,50,74,.12);}
.ink-tab{border:none;background:none;font-family:'Anton',sans-serif;text-transform:uppercase;
  font-size:14px;letter-spacing:.04em;color:var(--ink-label);padding:10px 20px;border-radius:7px;
  cursor:pointer;transition:background .12s,color .12s;}
.ink-tab.on{background:var(--navy);color:var(--cream);}
.ink-tab:focus-visible{outline:3px solid var(--coral);outline-offset:2px;}
.ink-pane{display:none;}
.ink-pane.on{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.ink-rt{display:flex;align-items:center;gap:13px;padding:14px 18px;background:var(--cream);
  border:2px solid var(--navy);border-radius:11px;box-shadow:4px 4px 0 rgba(22,50,74,.1);
  transition:transform .1s,box-shadow .1s;}
.ink-rt:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 rgba(22,50,74,.1);}
.ink-rt .o,.ink-rt .d{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:15px;
  color:var(--navy);white-space:nowrap;}
.ink-rt .o{color:var(--ink-label);}
.ink-rt .ln{flex:1;min-width:28px;height:8px;}
.ink-rt .ln path{stroke:var(--teal);stroke-width:1.6;fill:none;}
.ink-rt .ln circle{fill:var(--teal);}
.ink-rt-note{margin-top:20px;font-size:14.5px;font-weight:600;color:var(--ink-muted);}
.ink-rt-note a{color:var(--teal);font-weight:800;}
.ink-rt-note a:hover{text-decoration:underline;}

/* who-does-what split */
.ink-leg{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:8px;}
.ink-leg .ink-panel h3{margin-bottom:12px;}

@media(max-width:820px){
  .ink-pane.on{grid-template-columns:1fr;}
  .ink-leg{grid-template-columns:1fr;}
  .ink-tabs{width:100%;}
  .ink-tab{flex:1;padding:10px 12px;}
}
@media(prefers-reduced-motion:reduce){.ink-rt{transition:none;}}

/* ===== v1.7 — authority disclaimer ===== */
.ink-disclaim{background:var(--cream);border:2px dashed var(--navy);border-radius:14px;
  padding:28px 30px;margin-top:34px;}
.ink-disclaim h3{font-size:19px;margin:0 0 14px;display:flex;align-items:center;gap:11px;}
.ink-disclaim h3 svg{flex:none;color:var(--coral);}
.ink-disclaim p{font-size:14.5px;font-weight:600;color:var(--ink-muted);margin:0 0 12px;
  line-height:1.65;max-width:78ch;}
.ink-disclaim p:last-child{margin-bottom:0;}
.ink-disclaim strong{color:var(--navy);font-weight:800;}
.ink-disclaim a{color:var(--teal);font-weight:800;}
.ink-disclaim a:hover{text-decoration:underline;}

/* compact version for page footers */
.ink-disclaim.tight{padding:20px 22px;margin-top:0;}
.ink-disclaim.tight p{font-size:13.5px;}

/* ===== v1.10 — Fluent Forms =====
   No class needed on the shortcode block. Targets both the plugin wrapper div
   (.fluentform) and the form element itself (.frm-fluent-form), because which
   one is present varies by version. Layout rules are forced because both
   Fluent Forms and Astra ship their own form CSS. */

/* keep the page background cream so a shortcode block between two .ink
   sections doesn't flash white */
.ast-plain-container,.ast-page-builder-template,.ast-separate-container{background-color:#fcfaf4;}

/* centre and constrain, whichever wrapper exists */
.entry-content .fluentform,
.entry-content [class*="fluentform_wrapper"],
.entry-content .frm-fluent-form{
  max-width:660px !important;width:100% !important;
  margin-left:auto !important;margin-right:auto !important;float:none !important;
  box-sizing:border-box;
}
.entry-content .fluentform{margin-bottom:60px !important;}

/* the card itself sits on the form element */
.entry-content .frm-fluent-form{
  --navy:#16324a; --teal:#34b3bd; --coral:#ef5c42; --cream:#f6efda;
  --cream-dk:#ece3c4; --sand:#fbf7ea; --ink-muted:#3d5468; --ink-label:#6b7f8e;
  background:var(--cream);border:2px solid var(--navy);border-radius:16px;
  padding:32px 32px 28px !important;box-shadow:8px 8px 0 rgba(22,50,74,.12);
  font-family:'Nunito',-apple-system,sans-serif;color:var(--navy);margin-bottom:60px !important;
}
.entry-content .frm-fluent-form *{box-sizing:border-box;}
.entry-content .frm-fluent-form .ff-el-group{margin-bottom:16px;}

/* labels */
.entry-content .frm-fluent-form .ff-el-input--label label,
.entry-content .frm-fluent-form label{
  font-family:'Nunito',sans-serif !important;
  font-size:11.5px !important;font-weight:800 !important;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-label) !important;margin-bottom:6px;
  display:block;line-height:1.3;}
.entry-content .frm-fluent-form .ff-el-is-required label:after,
.entry-content .frm-fluent-form .ff_t_c label:after{color:var(--coral);}

/* fields */
.entry-content .frm-fluent-form input[type=text],
.entry-content .frm-fluent-form input[type=email],
.entry-content .frm-fluent-form input[type=tel],
.entry-content .frm-fluent-form input[type=number],
.entry-content .frm-fluent-form input[type=date],
.entry-content .frm-fluent-form select,
.entry-content .frm-fluent-form textarea,
.entry-content .frm-fluent-form .ff-el-form-control{
  width:100% !important;max-width:100% !important;
  background:var(--cream) !important;border:2px solid var(--navy) !important;
  border-radius:8px !important;padding:12px 15px !important;
  font-family:'Nunito',sans-serif !important;font-size:15.5px !important;font-weight:600;
  color:var(--navy) !important;box-shadow:none !important;height:auto !important;line-height:1.4;}
.entry-content .frm-fluent-form textarea{min-height:110px !important;}
.entry-content .frm-fluent-form input:focus,
.entry-content .frm-fluent-form select:focus,
.entry-content .frm-fluent-form textarea:focus,
.entry-content .frm-fluent-form .ff-el-form-control:focus{
  border-color:var(--teal) !important;outline:3px solid rgba(52,179,189,.28);outline-offset:1px;}
.entry-content .frm-fluent-form ::placeholder{color:#9aa9b4;font-weight:600;}

/* checkbox / radio labels stay sentence case */
.entry-content .frm-fluent-form .ff-el-form-check-label,
.entry-content .frm-fluent-form .ff-el-form-check label{
  text-transform:none;letter-spacing:0;font-size:14.5px !important;font-weight:600 !important;
  color:var(--ink-muted) !important;}

/* submit */
.entry-content .frm-fluent-form .ff-btn-submit,
.entry-content .frm-fluent-form button[type=submit],
.entry-content .frm-fluent-form input[type=submit]{
  font-family:'Anton',sans-serif !important;text-transform:uppercase;letter-spacing:.05em;
  font-size:17px !important;background:var(--coral) !important;color:var(--cream) !important;
  border:none !important;border-radius:6px !important;padding:15px 32px !important;
  box-shadow:0 4px 0 #c23e28 !important;cursor:pointer;width:auto !important;height:auto !important;
  line-height:1.2;transition:transform .1s,box-shadow .1s;}
.entry-content .frm-fluent-form .ff-btn-submit:hover,
.entry-content .frm-fluent-form button[type=submit]:hover{
  transform:translateY(2px);box-shadow:0 2px 0 #c23e28 !important;}

/* states */
.entry-content .frm-fluent-form .ff-el-is-error .ff-el-form-control{border-color:var(--coral) !important;}
.entry-content .frm-fluent-form .error,
.entry-content .frm-fluent-form .text-danger{color:var(--coral);font-weight:700;font-size:13.5px;}
.entry-content .ff-message-success{background:#f6efda;border:2px solid #34b3bd;border-radius:12px;
  padding:20px 22px;font-weight:700;color:#16324a;max-width:660px;margin:0 auto 60px;}

@media(max-width:600px){
  .entry-content .frm-fluent-form{padding:24px 20px 22px !important;
    box-shadow:5px 5px 0 rgba(22,50,74,.12);margin-bottom:44px !important;}
  .entry-content .frm-fluent-form .ff-t-cell{display:block !important;width:100% !important;padding:0 !important;}
}
@media(prefers-reduced-motion:reduce){
  .entry-content .frm-fluent-form .ff-btn-submit{transition:none;}
}

/* band that introduces the form */
.ink-formhead{background:var(--mist);padding:52px 0 30px;text-align:center;
  border-top:1px solid var(--mist-dk);}
.ink-formhead h2{font-size:clamp(25px,3.4vw,38px);margin-bottom:12px;}
.ink-formhead p{font-size:16.5px;color:var(--ink-muted);font-weight:600;margin:0 auto;max-width:54ch;}

/* ===== v1.11 — SITE FOOTER =====
   Markup goes in a footer widget (Custom HTML block). This CSS stays here.
   Never combine the two — wpautop injects tags inside style elements. */
.ink-footer{
  --navy:#16324a; --deep:#0f2436; --teal:#34b3bd; --coral:#ef5c42; --gold:#f4a24c;
  --cream:#f6efda; --cream-dk:#ece3c4; --paper:#fcfaf4; --mist:#e9f1f1; --mist-dk:#d6e5e5;
  --ink-muted:#3d5468; --ink-label:#6b7f8e;
  font-family:'Nunito',-apple-system,sans-serif;color:var(--navy);line-height:1.6;
  display:block;width:100%;max-width:none;margin:0;padding:0;float:none;clear:both;
  text-align:left;flex:1 1 100%;align-self:stretch;grid-column:1/-1;
}
.ink-footer *{box-sizing:border-box;}
.ink-footer h2,.ink-footer h3,.ink-footer .fbrand-nm{
  font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;
  letter-spacing:.01em;line-height:1.05;margin:0;}
.ink-footer a{color:inherit;text-decoration:none;}
.ink-footer a:hover{color:var(--teal);}
.ink-footer a:focus-visible{outline:3px solid var(--coral);outline-offset:3px;border-radius:5px;}
.inkf-wrap{max-width:1080px;margin:0 auto;padding:0 28px;}

/* CTA band */
.inkf-cta{background:var(--deep);color:var(--cream);text-align:center;padding:56px 0;}
.inkf-cta h2{color:var(--cream);font-size:clamp(25px,3.3vw,36px);margin:0 auto 12px;max-width:22ch;}
.inkf-cta p{color:#9fb8bd;font-size:16.5px;max-width:50ch;margin:0 auto 26px;font-weight:600;}
.inkf-btn{display:inline-flex;align-items:center;gap:9px;background:var(--coral);color:var(--cream);
  font-family:'Anton',sans-serif;text-transform:uppercase;letter-spacing:.05em;font-size:16px;
  padding:15px 30px;border-radius:6px;box-shadow:0 4px 0 #c23e28;transition:transform .1s,box-shadow .1s;}
.inkf-btn:hover{color:var(--cream);transform:translateY(2px);box-shadow:0 2px 0 #c23e28;}
.inkf-cta-phone{display:block;margin-top:18px;font-size:15px;color:#9fb8bd;font-weight:600;}
.inkf-cta-phone a{color:var(--gold);font-weight:800;}

/* main grid */
.inkf-main{background:var(--mist);border-top:2px solid var(--navy);padding:44px 0 34px;}
.inkf-grid{display:grid;grid-template-columns:1.1fr .8fr .9fr .9fr;gap:32px;align-items:start;}
.inkf-brand img{max-width:160px;width:100%;height:auto;display:block;margin:0 0 12px;}
.inkf-brand .fbrand-nm{font-size:22px;color:var(--navy);margin-bottom:10px;}
.inkf-brand p{font-size:14.5px;line-height:1.55;color:var(--ink-muted);margin:0 0 12px;max-width:32ch;font-weight:600;}
.inkf-tagline{display:inline-block;background:var(--navy);color:var(--cream);
  font-family:'Anton',sans-serif;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  padding:6px 11px;border-radius:4px;}
.inkf-col h3{font-size:12px;letter-spacing:.1em;color:var(--ink-label);margin:0 0 13px;}
.inkf-col ul{list-style:none;margin:0;padding:0;}
.inkf-col li{margin:0 0 9px;font-size:14.5px;font-weight:600;line-height:1.4;}
.inkf-col li .mm{display:inline-block;min-width:44px;font-family:'Anton',sans-serif;
  font-size:11.5px;color:var(--teal);letter-spacing:.04em;}
.inkf-tel{font-family:'Anton',sans-serif;font-size:23px;display:block;margin:0 0 4px;color:var(--navy);}
.inkf-contact p{font-size:14.5px;color:var(--ink-muted);margin:0 0 8px;font-weight:600;word-break:break-word;}
.inkf-contact a{color:var(--teal);font-weight:800;}

/* legal strip */
.inkf-legal{background:var(--paper);border-top:1px solid var(--mist-dk);padding:22px 0 28px;}
.inkf-legal .inkf-wrap{display:flex;gap:26px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;}
.inkf-legal .txt{flex:1 1 540px;}
.inkf-legal p{font-size:12.5px;line-height:1.55;color:var(--ink-muted);margin:0 0 7px;max-width:76ch;font-weight:600;}
.inkf-legal p strong{color:var(--navy);font-weight:800;}
.inkf-legal .fine{color:#7f8f99;}
.inkf-social{display:flex;gap:9px;flex-wrap:wrap;}
.inkf-social a{width:36px;height:36px;border:2px solid var(--navy);border-radius:9px;
  display:inline-flex;align-items:center;justify-content:center;background:var(--cream);
  color:var(--navy);transition:background .12s,color .12s;}
.inkf-social a:hover{background:var(--navy);color:var(--cream);}

@media(max-width:900px){.inkf-grid{grid-template-columns:1fr 1fr;gap:30px;}}
@media(max-width:560px){
  .inkf-grid{grid-template-columns:1fr;gap:26px;}
  .inkf-cta{padding:44px 0;}
  .inkf-legal .inkf-wrap{gap:20px;}
}
@media(prefers-reduced-motion:reduce){.inkf-btn,.inkf-social a{transition:none;}}

/* ===== v1.18 — footer placement guard =====
   If the footer ends up inside #content, Astra's .ast-container is a flex ROW
   on desktop, so the footer becomes a second column and shares width with the
   article. Making that container a block when it holds the footer lets the two
   stack at full width. No 100vw, so no scrollbar overflow.

   This is a safety net. The proper fix is placing the block in footer.php
   AFTER the line </div><!-- #content --> (or just above wp_footer();). */
.site-content .ast-container:has(.ink-footer){display:block !important;}
.site-content .ast-container:has(.ink-footer) > #primary{width:100% !important;max-width:100% !important;}
.ink-footer{
  display:block !important;width:100% !important;max-width:100% !important;
  flex:0 0 auto !important;order:99 !important;grid-column:1/-1 !important;
  margin-left:0 !important;margin-right:0 !important;float:none !important;
  overflow-x:clip;
}

/* ===== v1.13 — button text contrast fix =====
   ".ink a{color:inherit}" has higher specificity than ".ink-btn{color:...}",
   so every button was inheriting its section's text colour instead of its
   own. On cream sections that made navy buttons navy-on-navy. These rules
   restate the colour at a specificity that actually wins. */
.ink a.ink-btn,
.ink a.ink-btn:link,
.ink a.ink-btn:visited,
.ink a.ink-btn:hover,
.ink a.ink-btn:focus{color:var(--cream);}
.ink a.ink-btn.teal,
.ink a.ink-btn.navy{color:var(--cream);}
.ink-final a.ink-btn{color:var(--cream);}
.ink-footer a.inkf-btn,
.ink-footer a.inkf-btn:hover,
.ink-footer a.inkf-btn:visited{color:var(--cream);}

/* ===== v1.15 — blog post typography ===== */
.ink-prose .ink-lede{font-size:18.5px;color:var(--navy);font-weight:700;line-height:1.55;
  margin-bottom:22px;}
.ink-prose .ink-pull{border-left:5px solid var(--coral);padding:4px 0 4px 22px;margin:28px 0;
  font-family:'Anton',sans-serif;text-transform:none;font-size:20px;line-height:1.3;
  color:var(--navy);font-weight:400;letter-spacing:.01em;}
.ink-phero .ink-mm .mm-lbl{font-size:8.5px;}


/* ===== v1.16 — footer proportions =====
   Columns were 1.1/.8/.9/.9 which left the brand column visually heavy and
   the two link columns narrower than their content wanted. Evened out, logo
   capped, and the contact block aligned to the same baseline as the lists. */
.ink-footer .inkf-grid{grid-template-columns:1.15fr 1fr 1fr 1.05fr;gap:36px;}
.ink-footer .inkf-brand img{max-width:132px;margin-bottom:14px;}
.ink-footer .inkf-brand .fbrand-nm{font-size:20px;margin-bottom:8px;}
.ink-footer .inkf-brand p{font-size:14px;max-width:30ch;margin-bottom:14px;}
.ink-footer .inkf-col h3{margin-bottom:14px;min-height:16px;}
.ink-footer .inkf-col li{margin-bottom:10px;}
.ink-footer .inkf-col li .mm{min-width:52px;}
.ink-footer .inkf-tel{font-size:21px;margin-bottom:6px;}
.ink-footer .inkf-contact p{font-size:14px;margin-bottom:10px;}
.ink-footer .inkf-main{padding:46px 0 38px;}
.ink-footer .inkf-cta{padding:50px 0;}
@media(max-width:900px){
  .ink-footer .inkf-grid{grid-template-columns:1fr 1fr;gap:32px;}
}
@media(max-width:560px){
  .ink-footer .inkf-grid{grid-template-columns:1fr;gap:28px;}
  .ink-footer .inkf-brand img{max-width:120px;}
}


/* ===== v1.17 — no sideways scroll =====
   Belt and braces: nothing in the INK blocks should be able to push the page
   wider than the viewport. */
.ink,.ink-footer{max-width:100%;}
.ink img,.ink-footer img,.ink svg{max-width:100%;}
.ink-wrap,.inkf-wrap{width:100%;box-sizing:border-box;}

/* ===== v1.19 — images inside post prose ===== */
.ink-prose figure{margin:30px 0;}
.ink-prose figure img{width:100%;height:auto;display:block;
  border:2px solid var(--navy);border-radius:14px;box-shadow:8px 8px 0 rgba(22,50,74,.12);}
.ink-prose figcaption{font-size:13.5px;font-weight:600;color:var(--ink-label);
  margin-top:12px;line-height:1.5;max-width:68ch;}
@media(max-width:820px){
  .ink-prose figure img{box-shadow:5px 5px 0 rgba(22,50,74,.12);}
}