/* Tailored Insurance Partners: shared stylesheet
   Luxury private-client treatment: deep navy bands, hairline copper rules,
   Marcellus display over Outfit, 1140px column */
:root{
  --navy:#1E2A44;
  --navy-deep:#141D31;
  --navy-ink:#0E1626;
  --copper:#B4632F;
  --copper-text:#9A5226; /* copper dark enough for small text on white/mist (WCAG AA) */
  --copper-light:#E3A47A;
  --slate:#5B6475;
  --mist:#E8EBF0;
  --white:#FFFFFF;
  --line:#D6DAE1;
  --hairline-dark:rgba(227,164,122,.35);
  --bg:var(--white);
  --fg:var(--navy);
  --display:'Marcellus',Georgia,'Times New Roman',serif;
  --body:'Outfit',-apple-system,'Segoe UI',sans-serif;
}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:17px;line-height:1.7;margin:0;font-weight:300}
*{box-sizing:border-box}
img{max-width:100%}
h1,h2,h3{text-wrap:balance;margin:0;font-family:var(--display);font-weight:400;line-height:1.12;letter-spacing:.01em}
p{margin:0}
a{color:var(--copper-text)}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--copper);color:var(--white);padding:12px 20px;font-weight:500;text-decoration:none}
.skip:focus{left:0}
.wrap{max-width:1140px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.eyebrow{font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--copper-text);font-weight:500}
.eyebrow.light{color:var(--copper-light)}
.stitch{border:none;border-top:1px dashed var(--copper);opacity:.6;margin:0 0 14px;width:88px}
.btn{display:inline-block;font-family:var(--body);font-size:14px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:16px 34px;border-radius:2px;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s}
.btn-copper{background:var(--copper);color:var(--white)}
.btn-copper:hover{background:#9A5226;color:var(--white)}
.btn-ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.35)}
.btn-ghost:hover{border-color:var(--copper-light);color:var(--copper-light)}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid var(--copper-light);outline-offset:2px}
.ondark{color:var(--white)}
.textlink{color:var(--copper-light);text-decoration:none;font-size:15px;letter-spacing:.06em}
.textlink:hover{text-decoration:underline}

/* Header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(14,22,38,.94);backdrop-filter:blur(10px);border-bottom:1px solid rgba(227,164,122,.18)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:rgba(14,22,38,.94)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:16px;flex-wrap:wrap}
.lockup{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--white)}
.lockup .word{display:flex;flex-direction:column;line-height:1}
.lockup .word .big{font-family:var(--display);font-size:24px;letter-spacing:.02em}
.lockup .word .small{font-size:8.5px;font-weight:500;letter-spacing:.32em;color:var(--copper-light);margin-top:4px}
nav.links{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
nav.links a{color:var(--mist);text-decoration:none;font-size:13px;font-weight:400;letter-spacing:.16em;text-transform:uppercase}
nav.links a:hover,nav.links a.active{color:var(--copper-light)}
nav.links a.navphone{color:var(--white);font-weight:500;letter-spacing:.06em}
nav.links a.navbtn{border:1px solid var(--hairline-dark);padding:10px 20px;border-radius:2px;color:var(--copper-light)}
nav.links a.navbtn:hover{background:var(--copper);border-color:var(--copper);color:var(--white)}
.navtoggle{position:absolute;opacity:0;pointer-events:none}
.menu-btn{display:none;color:var(--copper-light);cursor:pointer;padding:8px;border:1px solid var(--hairline-dark);border-radius:2px;line-height:0}
.menu-btn svg{width:24px;height:24px}
.menu-btn .ic-close{display:none}
.navtoggle:checked~.menu-btn .ic-open{display:none}
.navtoggle:checked~.menu-btn .ic-close{display:block}
.navtoggle:focus-visible~.menu-btn{outline:3px solid var(--copper-light);outline-offset:2px}

/* Hero (home) */
.hero{background:linear-gradient(180deg,var(--navy-ink) 0%,var(--navy) 100%);color:var(--white);position:relative;overflow:hidden}
.herogrid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding-block:76px}
.herocol{display:flex;flex-direction:column;gap:26px;min-width:0}
.hero h1{font-size:clamp(38px,5.4vw,62px);color:var(--white)}
.hero .sub{font-size:19px;color:var(--mist);max-width:32em;font-weight:300;line-height:1.8}
.ctas{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hero-art{display:flex;justify-content:center}
.hero-art svg{width:min(310px,66vw);height:auto;filter:drop-shadow(0 24px 60px rgba(0,0,0,.45))}
.hero-points{display:flex;flex-wrap:wrap}
.hero-points div{font-size:12px;color:var(--copper-light);font-weight:500;letter-spacing:.26em;text-transform:uppercase;padding:0 22px;border-left:1px solid var(--hairline-dark)}
.hero-points div:first-child{padding-left:0;border-left:none}
.phone-line{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.phone-line .label{font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--copper-light);font-weight:500}
.phone-line a{font-family:var(--display);font-size:clamp(22px,2.6vw,30px);color:var(--white);text-decoration:none;letter-spacing:.03em}
.phone-line a:hover{color:var(--copper-light)}
.phone-big{font-family:var(--display);font-size:24px;color:var(--white);text-decoration:none;letter-spacing:.03em}
.phone-big:hover{color:var(--copper-light)}
.phone-big.dark{color:var(--navy)}
.phone-big.dark:hover{color:var(--copper)}

/* Interior page hero */
.page-hero{background:linear-gradient(180deg,var(--navy-ink) 0%,var(--navy) 100%);color:var(--white);padding-block:52px}
.page-hero h1{font-size:clamp(30px,4vw,48px);color:var(--white);max-width:20em}
.page-hero .sub{font-size:18px;color:var(--mist);max-width:38em;font-weight:300;margin-top:16px}
.page-hero .eyebrow{color:var(--copper-light);margin-bottom:14px}
.crumb{font-size:12.5px;letter-spacing:.1em;color:var(--slate);margin-bottom:22px;display:flex;gap:10px;flex-wrap:wrap}
.crumb a{color:var(--copper-light);text-decoration:none;text-transform:uppercase}
.crumb a:hover{text-decoration:underline}
.crumb span{color:var(--mist);text-transform:uppercase}

/* Bands & sections */
.band-navy{background:var(--navy);color:var(--white)}
.band-ink{background:var(--navy-ink);color:var(--white)}
.band-mist{background:var(--mist)}
section{padding-block:64px}
.sec-head{display:flex;flex-direction:column;gap:14px;max-width:44em;margin-bottom:36px}
.sec-head h2{font-size:clamp(28px,3.4vw,40px)}
.sec-head p{color:var(--slate);font-size:18px}
.band-navy .sec-head p,.band-ink .sec-head p{color:var(--mist)}
.sec-head.rowhead{flex-direction:row;justify-content:space-between;align-items:flex-end;max-width:none;gap:24px;flex-wrap:wrap}
.sec-head.rowhead>div{display:flex;flex-direction:column;gap:14px}

/* Coverage cards, symmetric rows: 5 across on desktop, 2+2+full on tablet, stacked on phones */
.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.card{background:var(--white);border:1px solid var(--line);padding:30px 24px;display:flex;flex-direction:column;gap:14px;min-width:0}
.cards.three{grid-template-columns:repeat(3,1fr);gap:22px}
.cards.three .card{padding:34px 30px}
@media (max-width:1020px){
  .cards{grid-template-columns:repeat(2,1fr);gap:22px}
  .cards .card:nth-child(5):last-child{grid-column:1/-1}
  .cards.three{grid-template-columns:1fr}
}
@media (max-width:640px){
  .cards{grid-template-columns:1fr}
  .cards .card:nth-child(5):last-child{grid-column:auto}
}
a.cardlink{text-decoration:none;color:var(--navy);transition:border-color .2s,transform .2s}
a.cardlink:hover{border-color:var(--copper)}
.card .icon{width:50px;height:50px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%}
.card .icon svg{width:26px;height:26px;stroke:var(--copper);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.card h3{font-size:22px}
.card p{color:var(--slate);font-size:15.5px;font-weight:300;flex-grow:1}
.allstates{margin-top:32px;display:flex;align-items:center;gap:16px;color:var(--slate);font-size:16px;flex-wrap:wrap}
.allstates strong{color:var(--navy);font-weight:500}

/* Independent band */
.indepgrid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.indepcol{display:flex;flex-direction:column;gap:18px;min-width:0}
.indep h2{font-size:clamp(28px,3.4vw,40px)}
.indep .lead{color:var(--mist);font-size:18px;line-height:1.8}
.indep-facts{display:flex;flex-direction:column}
.indep-facts div{padding:24px 0;border-bottom:1px solid rgba(227,164,122,.2)}
.indep-facts div:first-child{border-top:1px solid rgba(227,164,122,.2)}
.indep-facts b{display:block;font-family:var(--display);font-weight:400;font-size:21px;color:var(--copper-light);margin-bottom:6px}
.indep-facts p{color:var(--mist);font-size:15.5px;font-weight:300}

/* Process steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:36px}
.step{display:flex;flex-direction:column;gap:13px;min-width:0;padding-top:24px;border-top:1px solid var(--hairline-dark)}
.step .num{font-size:12px;letter-spacing:.3em;color:var(--copper-light);font-weight:500}
.step h3{color:var(--white);font-size:23px}
.step p{color:var(--mist);font-size:15.5px;font-weight:300}

/* About */
.aboutgrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.about-art{display:flex;justify-content:center}
.about-art svg{width:min(240px,56vw);height:auto}
.story{font-family:var(--display);font-size:clamp(20px,2.1vw,25px);line-height:1.65;color:var(--navy)}
.meaning{margin-top:30px;display:grid;grid-template-columns:150px 1fr;column-gap:18px;row-gap:14px}
.meaning div{display:grid;grid-template-columns:subgrid;grid-column:1/-1;align-items:baseline;font-size:15.5px;color:var(--slate)}
.meaning b{color:var(--copper-text);font-weight:500;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
@media (max-width:640px){
  .meaning{grid-template-columns:1fr;row-gap:16px}
  .meaning div{grid-template-columns:1fr;gap:3px}
}

/* Team */
.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,340px));gap:26px}
.member{background:var(--white);border:1px solid var(--line);padding:36px 30px;display:flex;flex-direction:column;gap:10px;min-width:0}
.portrait{width:110px;height:110px;border-radius:50%;border:1px solid var(--line);background:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:10px;position:relative;overflow:hidden}
.portrait::after{content:"";position:absolute;inset:7px;border-radius:50%;border:1.5px dashed var(--copper-light);opacity:.65}
.portrait span{font-family:var(--display);font-size:34px;color:var(--copper-light);letter-spacing:.04em}
.portrait img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.member h3{font-size:23px}
.member .role{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--copper-text);font-weight:500}
.member p{color:var(--slate);font-size:15.5px;font-weight:300;margin-top:6px}

/* Prose / coverage line pages / articles */
.prose{max-width:46em}
.lineblock{margin-bottom:36px}
.lineblock h2{font-size:clamp(24px,2.8vw,32px);margin-bottom:12px}
.lineblock p{color:var(--slate);font-size:17px}
.otherlines{font-size:14.5px;color:var(--slate);border-top:1px dashed var(--copper);padding-top:20px}
.otherlines a{color:var(--copper-text);text-decoration:none}
.otherlines a:hover{text-decoration:underline}
.article p{color:var(--navy);font-size:17.5px;margin-bottom:20px}
.post-cta{margin-top:36px;border:1px solid var(--line);border-left:3px solid var(--copper);padding:28px;display:flex;flex-direction:column;gap:16px;background:var(--mist)}
.post-cta p{margin:0;color:var(--navy)}

/* Journal cards */
.posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px}
.posts.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.post{background:var(--white);border:1px solid var(--line);padding:32px 28px;display:flex;flex-direction:column;gap:14px;min-width:0}
.post .meta{display:flex;gap:12px;align-items:center;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--copper-text);font-weight:500}
.post .meta .date{color:var(--slate);letter-spacing:.08em;text-transform:none;font-weight:300;font-size:13.5px}
.post h3{font-size:21px;line-height:1.3}
.postlink{color:var(--navy);text-decoration:none}
.postlink:hover{color:var(--copper)}
.post .excerpt{color:var(--slate);font-size:15.5px;font-weight:300;flex-grow:1}
.readlink{font-family:var(--body);background:none;border:none;padding:0;text-align:left;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--copper-text);cursor:pointer;text-decoration:none}
.readlink:hover{color:#9A5226}

/* FAQ */
.faq{max-width:46em}
.faq details{border-bottom:1px solid var(--line);padding-block:4px}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{font-family:var(--display);font-size:20px;color:var(--navy);padding:18px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--body);font-weight:300;font-size:26px;color:var(--copper);flex-shrink:0;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq .a{color:var(--slate);font-size:16px;padding-bottom:22px;max-width:40em}

/* CTA band */
.ctaband{padding-block:56px}
.ctaband-in{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.ctaband h2{color:var(--white);font-size:clamp(26px,3vw,36px);margin-bottom:8px}
.ctaband p{color:var(--mist);font-weight:300}
.ctaband-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}

/* Quote page */
.quotepage{padding-block:72px}
.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.quote-info{display:flex;flex-direction:column;gap:18px}
.quote-info h1{font-size:clamp(30px,3.8vw,46px)}
.quote-info p{color:var(--mist);font-size:17px;font-weight:300}
.offices-note{color:var(--copper-light)}
.offices-note strong{color:var(--white);font-weight:500}
.contact-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:16px;color:var(--copper-light)}
.contact-line code{font-family:var(--body);font-size:16px;background:rgba(255,255,255,.07);padding:8px 14px;border-radius:2px;user-select:all;border:1px solid rgba(227,164,122,.25)}
.copybtn{font-family:var(--body);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;background:transparent;color:var(--copper-light);border:1px solid rgba(227,164,122,.5);border-radius:2px;padding:8px 14px;cursor:pointer}
.copybtn:hover{border-color:var(--copper-light)}
form{background:var(--white);border-radius:3px;padding:36px;display:flex;flex-direction:column;gap:18px}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field label{font-size:12px;font-weight:500;color:var(--navy);letter-spacing:.14em;text-transform:uppercase}
.field input,.field select,.field textarea{font-family:var(--body);font-size:16px;color:var(--navy);background:var(--white);border:1px solid var(--line);border-radius:2px;padding:12px 14px;width:100%}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--navy);border:1px solid var(--line);border-radius:999px;padding:8px 16px;cursor:pointer}
.chips input{accent-color:var(--copper)}
#formnote{font-size:14.5px;color:var(--slate)}
#formnote.ok{color:#1F6B3A;font-weight:400}

/* Footer */
footer{background:var(--navy-ink);color:var(--mist);padding-block:44px;border-top:1px solid rgba(227,164,122,.18)}
.footgrid{display:flex;flex-direction:column;gap:26px}
.footbrand{display:flex;align-items:center;gap:14px}
.footname{font-family:var(--display);font-size:18px;color:var(--white)}
.domain{font-size:12px;font-weight:500;color:var(--copper-light);letter-spacing:.22em;text-transform:uppercase}
.offices{font-size:13px;color:#8A94A8;font-weight:300}
.footlinks{display:flex;gap:22px;flex-wrap:wrap}
.footlinks a{color:var(--mist);text-decoration:none;font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.footlinks a:hover{color:var(--copper-light)}
footer .fine{font-size:13px;color:#8A94A8;max-width:56em;font-weight:300}

/* Anchors & responsive */
section[id],div[id]{scroll-margin-top:96px}
@media (max-width:880px){
  section[id],div[id]{scroll-margin-top:92px}
  .nav{flex-wrap:nowrap}
  .menu-btn{display:block}
  nav.links{display:none;position:absolute;left:0;right:0;top:100%;z-index:40;flex-direction:column;align-items:stretch;gap:0;background:var(--navy-ink);border-bottom:1px solid rgba(227,164,122,.25);padding:8px max(20px,env(safe-area-inset-left,0px)) 20px max(20px,env(safe-area-inset-right,0px))}
  .navtoggle:checked~nav.links{display:flex}
  nav.links a{padding:15px 0;border-bottom:1px solid rgba(227,164,122,.14);font-size:14px}
  nav.links a.navphone{font-size:17px}
  nav.links a.navbtn{border:1px solid var(--copper);background:var(--copper);color:var(--white);text-align:center;margin-top:16px;padding:14px;border-radius:2px}
  .herogrid,.aboutgrid,.quote-grid,.indepgrid{grid-template-columns:1fr}
  .herogrid{padding-block:40px;gap:28px}
  .hero-art{display:none}
  section{padding-block:44px}
  .page-hero{padding-block:36px}
  .frow{grid-template-columns:1fr}
  .hero-points div{padding:4px 0;border-left:none;width:100%}
  .ctaband-in{flex-direction:column;align-items:flex-start}
}
