/* ==========================================================================
   FirstCall — shared stylesheet
   One file, no build step. Edit tokens in :root to retheme.
   ========================================================================== */

:root{
  /* color */
  --navy:#213251;          /* primary brand, headers, buttons */
  --navy-deep:#16243B;     /* hover / dark sections */
  --ink:#1A1A1A;           /* body text */
  --muted:#5B6470;         /* secondary text */
  --bg:#FFFFFF;            /* page background */
  --bg-warm:#F7F5F1;       /* alternating section background */
  --accent:#B0894F;        /* muted brass, used sparingly for rules/links */
  --line:#E3E1DC;          /* borders, dividers */

  /* type */
  --font-head:"Fraunces","Georgia",serif;
  --font-body:"Inter","Helvetica Neue",Arial,sans-serif;

  /* scale */
  --maxw:1160px;
  --radius:10px;
  --pad:24px;

  /* derived */
  --header-h:76px;
}

/* ----- reset / base ----------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:84px;}  /* keep anchor targets clear of the sticky header */
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  font-size:18px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:var(--navy);text-decoration-color:var(--accent);text-underline-offset:3px;}
a:hover{color:var(--navy-deep);}

h1,h2,h3{font-family:var(--font-head);color:var(--navy);line-height:1.15;font-weight:600;margin:0 0 .4em;}
h1{font-size:clamp(2rem,5vw,3.3rem);letter-spacing:-.01em;}
h2{font-size:clamp(1.6rem,3.4vw,2.3rem);}
h3{font-size:1.3rem;}
p{margin:0 0 1rem;}
.lead{font-size:1.18rem;color:var(--muted);}

/* visible focus everywhere for accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--accent);
  outline-offset:2px;
  border-radius:4px;
}

/* skip link */
.skip-link{
  position:absolute;left:-999px;top:0;z-index:200;
  background:var(--navy);color:#fff;padding:12px 18px;border-radius:0 0 var(--radius) 0;
}
.skip-link:focus{left:0;color:#fff;}

/* ----- layout helpers --------------------------------------------------- */
.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);}
.section{padding:clamp(44px,7vw,88px) 0;}
.section--warm{background:var(--bg-warm);}
.section--navy{background:var(--navy);color:#fff;}
.section--navy h1,.section--navy h2,.section--navy h3{color:#fff;}
.section--tight{padding-block:clamp(36px,5vw,56px);}
.measure{max-width:62ch;}
.center{text-align:center;}
.eyebrow{
  font-family:var(--font-body);
  text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:600;
  color:var(--accent);margin:0 0 .8rem;
}
.rule{width:54px;height:3px;background:var(--accent);border:0;margin:0 0 1.4rem;}
.center .rule{margin-inline:auto;}

/* ----- buttons ---------------------------------------------------------- */
.btn{
  display:inline-block;font-family:var(--font-body);font-weight:600;font-size:1rem;
  padding:14px 26px;border-radius:var(--radius);cursor:pointer;
  text-decoration:none;border:1.5px solid transparent;transition:background .15s,color .15s,border-color .15s;
  line-height:1.2;
}
.btn--primary{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn--primary:hover{background:var(--navy-deep);border-color:var(--navy-deep);color:#fff;}
.btn--secondary{background:transparent;color:var(--navy);border-color:var(--navy);}
.btn--secondary:hover{background:rgba(33,50,81,.07);color:var(--navy);}
.section--navy .btn--secondary{color:#fff;border-color:rgba(255,255,255,.7);}
.section--navy .btn--secondary:hover{background:rgba(255,255,255,.12);color:#fff;}
.btn--light{background:#fff;color:var(--navy);border-color:#fff;}
.btn--light:hover{background:var(--bg-warm);color:var(--navy-deep);}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:1.6rem;}
.center .btn-row{justify-content:center;}

/* ----- header / nav ----------------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  min-height:var(--header-h);
}
.brand{display:inline-flex;align-items:center;}
.brand img{height:50px;width:auto;}
.nav{display:flex;align-items:center;gap:26px;}
.nav a{
  font-size:.98rem;font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap;
}
.nav a:hover{color:var(--navy);}
.nav a.is-current{color:var(--navy);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent);}
.nav .btn{padding:11px 22px;}
/* Keep the Contact button white text (override .nav a color) */
.nav a.btn--primary,
.nav a.btn--primary:hover,
.nav a.btn--primary:focus{color:#fff;}

.nav-toggle{
  display:none;background:none;border:0;cursor:pointer;padding:10px;margin-right:-10px;
  color:var(--navy);
}
.nav-toggle svg{display:block;}

@media (max-width:820px){
  /* slimmer sticky header reclaims screen height on phones */
  .header-inner{min-height:64px;}
  .brand img{height:42px;}
  .nav-toggle{display:inline-flex;}
  .nav{
    position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;
    background:#fff;border-bottom:1px solid var(--line);
    padding:8px var(--pad) 20px;
    box-shadow:0 14px 30px rgba(22,36,59,.12);
    display:none;
  }
  .nav.is-open{display:flex;}
  .nav a{padding:14px 4px;border-bottom:1px solid var(--line);}
  .nav a.is-current{box-shadow:none;}
  .nav .btn{margin-top:14px;text-align:center;}
}

/* ----- hero ------------------------------------------------------------- */
.hero{background:var(--navy);color:#fff;}
.hero .container{padding-block:clamp(44px,6vw,84px);}
.hero h1{color:#fff;max-width:18ch;}
.hero .lead{color:rgba(255,255,255,.82);max-width:60ch;font-size:1.22rem;}
.hero--page .container{padding-block:clamp(36px,4vw,56px);}
.hero--page h1{max-width:24ch;}

/* ----- generic sections / prose ---------------------------------------- */
.prose p{max-width:62ch;}
.section--navy .prose p,.section--navy p{color:rgba(255,255,255,.85);}

/* ticked list */
.ticks{list-style:none;margin:1.2rem 0 0;padding:0;max-width:60ch;}
.ticks li{
  position:relative;padding:0 0 .85rem 2rem;
}
.ticks li::before{
  content:"";position:absolute;left:0;top:.55em;width:11px;height:11px;
  border-radius:50%;background:var(--accent);
}
.ticks li:last-child{padding-bottom:0;}

/* ----- card grids ------------------------------------------------------- */
.grid{display:grid;gap:24px;margin-top:2rem;}
.grid--4{grid-template-columns:repeat(4,1fr);}
.grid--2{grid-template-columns:repeat(2,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}

.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:28px 24px;display:flex;flex-direction:column;
  transition:transform .15s,box-shadow .15s,border-color .15s;
}
.section--warm .card{background:#fff;}
.card--link{text-decoration:none;color:inherit;}
a.card--link:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 34px rgba(22,36,59,.10);
  border-color:#d4d0c8;color:inherit;
}
.card .card-num{
  font-family:var(--font-head);color:var(--accent);font-size:1.05rem;font-weight:600;
  margin-bottom:.4rem;
}
.card h3{margin-bottom:.5rem;}
.card p{color:var(--muted);margin-bottom:1rem;font-size:1rem;}
.card .card-go{
  margin-top:auto;font-weight:600;color:var(--navy);font-size:.98rem;
}
.card .card-go::after{content:" \2192";color:var(--accent);}

/* model cards (home care: registry vs agency) */
.card--feature{padding:32px 30px;}
.card--feature .tag{
  display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);margin-bottom:.7rem;
}
.card--feature .partner{
  margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--line);
  font-size:.95rem;color:var(--muted);
}
.card--feature .partner strong{color:var(--ink);}

/* ----- two-column split ------------------------------------------------- */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,64px);align-items:start;}
.split--center{align-items:center;}

/* role / partner callout */
.callout{
  background:var(--bg-warm);border:1px solid var(--line);border-left:4px solid var(--accent);
  border-radius:var(--radius);padding:24px 26px;
}
.callout p:last-child{margin-bottom:0;}
.section--warm .callout{background:#fff;}

/* cross-link row */
.crosslinks{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:1.6rem;}
.crosslink{
  display:block;text-decoration:none;color:inherit;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;
  transition:border-color .15s,box-shadow .15s,transform .15s;
}
.crosslink:hover{border-color:#d4d0c8;box-shadow:0 12px 26px rgba(22,36,59,.08);transform:translateY(-2px);color:inherit;}
.crosslink .cl-label{font-weight:600;color:var(--navy);}
.crosslink .cl-label::after{content:" \2192";color:var(--accent);}
.crosslink p{margin:.35rem 0 0;color:var(--muted);font-size:.96rem;}

/* image placeholder (mockup) */
.imgph{
  background:linear-gradient(135deg,#e9e6e0,#dcd7cf);
  border-radius:var(--radius);min-height:340px;
  display:flex;align-items:center;justify-content:center;
  color:#8a8073;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;
  text-align:center;padding:20px;border:1px solid var(--line);
}

/* ----- persistent CTA band --------------------------------------------- */
.cta-band{background:var(--bg-warm);border-top:1px solid var(--line);}
.cta-band .container{
  padding-block:clamp(44px,6vw,72px);text-align:center;
}
.cta-band h2{max-width:22ch;margin-inline:auto;}
.cta-band p{color:var(--muted);max-width:50ch;margin-inline:auto;}

/* ----- contact / form --------------------------------------------------- */
.form{display:grid;gap:18px;}
.form .field{display:flex;flex-direction:column;gap:6px;}
.form label{font-weight:600;font-size:.95rem;color:var(--ink);}
.form input,.form select,.form textarea{
  font-family:var(--font-body);font-size:1rem;color:var(--ink);
  padding:13px 14px;border:1px solid #c9c4ba;border-radius:var(--radius);background:#fff;
}
.form textarea{min-height:130px;resize:vertical;}
.form input::placeholder,.form textarea::placeholder{color:#A7ADB6;opacity:1;}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.contact-meta a{font-weight:600;}
.contact-meta .big{font-size:1.5rem;font-family:var(--font-head);color:var(--navy);display:block;margin-bottom:.3rem;}

/* ----- footer ----------------------------------------------------------- */
.site-footer{background:var(--navy);color:rgba(255,255,255,.8);}
.site-footer .container{padding-block:56px;}
.footer-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:36px;
}
.site-footer img.foot-logo{height:48px;width:auto;margin-bottom:16px;}
.site-footer h4{
  font-family:var(--font-body);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.6);margin:0 0 14px;font-weight:600;
}
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{margin-bottom:10px;}
.site-footer a{color:rgba(255,255,255,.85);text-decoration:none;}
.site-footer a:hover{color:#fff;text-decoration:underline;text-decoration-color:var(--accent);}
.site-footer .tagline{color:rgba(255,255,255,.7);max-width:30ch;font-size:.96rem;}
.footer-contact span{display:block;margin-bottom:8px;color:rgba(255,255,255,.85);font-size:.96rem;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.14);margin-top:40px;padding-top:22px;
  font-size:.85rem;color:rgba(255,255,255,.55);
  display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;
}

/* ----- responsive ------------------------------------------------------- */
@media (max-width:980px){
  .grid--4{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;gap:30px 36px;}
}
@media (max-width:760px){
  body{font-size:17px;}
  .split{grid-template-columns:1fr;gap:26px;}
  .grid--2,.grid--3{grid-template-columns:1fr;}
  .form .row2{grid-template-columns:1fr;}
  .hero .lead{font-size:1.1rem;}
  /* tighten stacked vertical rhythm on phones */
  .section{padding-block:42px;}
  .section--tight{padding-block:30px;}
  .grid{margin-top:1.5rem;}
  .article h2{margin-top:1.7rem;}
  .article h3{margin-top:1.4rem;}
  .site-footer .container{padding-block:42px;}
  .footer-bottom{margin-top:28px;padding-top:18px;}
  /* photos/placeholders shouldn't eat a full screen when stacked */
  .imgph{min-height:200px;}
  .stockimg{min-height:230px;max-height:330px;}
  /* roomier tap targets for stacked footer links */
  .site-footer li{margin-bottom:4px;}
  .site-footer .footer-grid a{display:inline-block;padding:6px 0;}
}
@media (max-width:520px){
  .grid--4{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .btn{display:block;text-align:center;}
  .btn-row .btn{width:100%;}
  /* smallest screens: a touch tighter still, without cramming */
  .section{padding-block:36px;}
  .hero .container{padding-block:40px;}
  .hero--page .container{padding-block:30px;}
  .cta-band .container{padding-block:38px;}
  /* a little more usable width on small phones */
  .container{padding-inline:20px;}
  .card--feature{padding:26px 22px;}
}

/* Respect users who prefer less motion */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
}

/* About page founder sign-off */
.signoff{font-family:var(--font-head);font-style:italic;color:var(--navy);margin-top:1.4rem;}

/* Founder portrait (About + home teaser) */
.portrait-wrap{width:100%;}
.portrait{width:100%;height:auto;display:block;border-radius:var(--radius,10px);box-shadow:0 10px 30px rgba(33,50,81,.18);}

/* Temporary stock photo placeholders (license-free; swap for owned photos later) */
.stockimg{width:100%;height:100%;min-height:340px;max-height:460px;object-fit:cover;
  border-radius:var(--radius);border:1px solid var(--line);display:block;
  box-shadow:0 8px 24px rgba(33,50,81,.10);}

/* ==========================================================================
   Blog / Insights
   ========================================================================== */

/* Index: stacked article cards (image left, text right) */
.post-stack{display:flex;flex-direction:column;gap:24px;margin-top:2.4rem;}
.post-card{
  display:grid;grid-template-columns:320px 1fr;gap:0;align-items:stretch;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  text-decoration:none;color:inherit;
  transition:transform .15s,box-shadow .15s,border-color .15s;
}
.post-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(22,36,59,.10);border-color:#d4d0c8;color:inherit;}
.post-card .thumb{width:100%;height:100%;min-height:210px;object-fit:cover;display:block;}
.post-card .post-body{padding:28px 32px;display:flex;flex-direction:column;}
.post-meta{
  font-family:var(--font-body);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:600;color:var(--accent);margin-bottom:.6rem;
}
.post-card h2{font-size:1.45rem;margin-bottom:.5rem;}
.post-card .excerpt{color:var(--muted);font-size:1rem;margin-bottom:1rem;}
.post-card .post-go{margin-top:auto;font-weight:600;color:var(--navy);font-size:.98rem;}
.post-card .post-go::after{content:" \2192";color:var(--accent);}

/* Article page */
.article-meta{color:rgba(255,255,255,.82);font-size:1.02rem;margin-top:.5rem;}
.article-hero-img{max-width:960px;margin:0 auto 0;}
.article-hero-img img{width:100%;height:auto;border-radius:var(--radius);box-shadow:0 14px 34px rgba(33,50,81,.16);}
.article{max-width:720px;margin-inline:auto;}
.article > p:first-child{font-size:1.18rem;color:var(--muted);}   /* standfirst */
.article h2{font-size:1.5rem;margin-top:2.2rem;}
.article h3{font-size:1.2rem;margin-top:1.7rem;}
.article ul,.article ol{padding-left:1.25rem;margin:0 0 1.2rem;}
.article li{margin-bottom:.55rem;}
.article .disclaimer{font-size:.92rem;color:var(--muted);font-style:italic;border-top:1px solid var(--line);padding-top:1.3rem;margin-top:1.8rem;}
.article .bio{font-size:.95rem;color:var(--muted);}
.back-link{display:inline-block;margin-top:2.2rem;font-weight:600;}
.back-link::before{content:"\2190  ";color:var(--accent);}

@media (max-width:680px){
  .post-card{grid-template-columns:1fr;}
  .post-card .thumb{min-height:200px;max-height:230px;}
  .post-card .post-body{padding:22px 24px;}
}

/* Caregiver form: multi-select checkbox groups */
.form .choices{display:flex;flex-wrap:wrap;gap:10px 20px;padding-top:2px;}
.form .choices label{display:flex;align-items:center;gap:8px;font-weight:500;font-size:.97rem;}
.form .choices input{width:auto;padding:0;margin:0;border:0;}
