:root { --teal:#164a4a; --teal-dark:#0f3838; --terracotta:#c76545; --terracotta-dark:#a94d32; --cream:#f7f0e3; --cream-deep:#eee2cf; --mustard:#d9a62e; --charcoal:#292b28; --muted:#5e625c; --white:#fffdf8; --line:rgba(22,74,74,.18); --shadow:0 28px 80px rgba(42,53,46,.14); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--teal); }
body { margin:0; background:var(--cream); color:var(--charcoal); font-family:"DM Sans",system-ui,sans-serif; font-size:16px; line-height:1.55; }
a { color:inherit; }
.skip-link { position:fixed; z-index:100; top:-5rem; left:1rem; padding:.7rem 1rem; background:var(--white); color:var(--teal); font-weight:700; }
.skip-link:focus { top:1rem; }
.contact-banner { min-height:94px; padding:0 clamp(1.25rem,4vw,4.5rem); display:grid; grid-template-columns:auto 1fr auto; gap:clamp(1.5rem,4vw,4rem); align-items:center; background:var(--teal); color:var(--white); }
.brand { display:inline-flex; align-items:center; gap:.85rem; text-decoration:none; line-height:1.15; }
.brand-mark { width:47px; height:47px; display:grid; place-items:center; border:1px solid rgba(247,240,227,.5); border-radius:50%; color:var(--cream); font-family:"Newsreader",Georgia,serif; font-size:1.05rem; }
.brand-copy { display:grid; }
.brand-copy strong { font-family:"Newsreader",Georgia,serif; font-size:1.18rem; font-weight:600; }
.brand-copy small { margin-top:.22rem; color:rgba(255,253,248,.65); font-size:.66rem; letter-spacing:.09em; text-transform:uppercase; }
.banner-intro { justify-self:center; color:rgba(255,253,248,.72); font-size:.78rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; }
.contact-links { display:flex; align-items:stretch; gap:.65rem; }
.contact-links a { min-height:54px; padding:.65rem .9rem; display:grid; align-content:center; border:1px solid rgba(247,240,227,.24); border-radius:4px; text-decoration:none; transition:background .2s,border-color .2s,transform .2s; }
.contact-links a:hover { transform:translateY(-2px); border-color:var(--mustard); background:rgba(255,255,255,.06); }
.contact-links span { color:var(--mustard); font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.contact-links strong { margin-top:.08rem; font-size:.83rem; font-weight:600; }
.story-panel { min-height:calc(100vh - 94px); display:grid; grid-template-columns:minmax(370px,.78fr) minmax(570px,1.22fr); background:var(--cream); }
.photo-column { min-height:800px; position:relative; padding:clamp(1.5rem,3vw,3.25rem); background:var(--cream-deep); overflow:hidden; }
.photo-column::before { content:""; width:230px; height:230px; position:absolute; left:-105px; top:-90px; border:1px solid rgba(199,101,69,.35); border-radius:50%; }
.photo-column::after { content:""; width:10px; height:85px; position:absolute; right:0; top:13%; background:var(--mustard); }
.family-photo { height:100%; min-height:650px; margin:0; position:relative; z-index:1; overflow:hidden; border-radius:180px 180px 12px 12px; box-shadow:var(--shadow); background:#cdd6d0; }
.family-photo img { width:100%; height:100%; display:block; object-fit:cover; object-position:center center; }
.story-copy { max-width:940px; padding:clamp(3.2rem,5vw,6rem) clamp(2rem,6vw,7rem) 2.2rem; align-self:center; }
.eyebrow { margin:0 0 .75rem; color:var(--terracotta); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
h1,h2 { margin:0; color:var(--teal); font-family:"Newsreader",Georgia,serif; line-height:1.02; letter-spacing:-.025em; }
h1 { max-width:760px; font-size:clamp(3.8rem,6.6vw,7rem); font-weight:600; }
h1 em { display:block; color:var(--terracotta); font-weight:inherit; }
.lede { max-width:730px; margin:1.25rem 0 0; color:#49544e; font-size:clamp(1.03rem,1.45vw,1.25rem); line-height:1.62; }
.bio { margin-top:2.25rem; padding-top:1.65rem; display:grid; grid-template-columns:145px 1fr; gap:.55rem 1.5rem; border-top:1px solid var(--line); }
.bio h2 { grid-row:span 2; font-size:1.8rem; line-height:1.08; }
.bio p { margin:0; color:var(--muted); font-size:.92rem; line-height:1.6; }
.bio p + p { margin-top:.2rem; }
.help-section { margin-top:2.1rem; padding:1.5rem 0; display:grid; grid-template-columns:185px 1fr; gap:2rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.help-heading h2 { font-size:1.8rem; line-height:1.08; }
.situations { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.situation { padding-left:1rem; border-left:2px solid var(--mustard); }
.situation > span { color:var(--terracotta); font-family:"Newsreader",Georgia,serif; font-size:1.05rem; }
.situation strong { margin-top:.15rem; display:block; color:var(--teal); font-size:.91rem; }
.situation p { margin:.35rem 0 0; color:var(--muted); font-size:.78rem; line-height:1.48; }
.quote-types { grid-column:1 / -1; margin-top:.2rem; padding-top:1.1rem; display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; border-top:1px solid var(--line); }
.quote-types strong { margin-right:.25rem; color:var(--teal); font-size:.82rem; }
.quote-types span { padding:.3rem .6rem; border:1px solid rgba(22,74,74,.2); border-radius:999px; background:rgba(255,253,248,.45); color:var(--muted); font-size:.72rem; font-weight:600; }
.closing-row { margin-top:1.4rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.closing-row > div { display:grid; color:var(--teal); font-size:.85rem; }
.closing-row > div span { margin-top:.15rem; color:var(--muted); }
.call-button { min-width:210px; min-height:58px; padding:.75rem 1rem; display:grid; grid-template-columns:1fr auto; column-gap:1rem; align-items:center; border-radius:4px; background:var(--terracotta); color:var(--white); text-decoration:none; transition:background .2s,transform .2s; }
.call-button:hover { transform:translateY(-2px); background:var(--terracotta-dark); }
.call-button span { color:rgba(255,255,255,.78); font-size:.64rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.call-button strong { grid-column:1; font-size:.9rem; }
.call-button b { grid-column:2; grid-row:1 / span 2; font-size:1.25rem; }
.license-line { margin:1.1rem 0 0; display:flex; align-items:center; gap:.6rem; color:var(--muted); font-size:.75rem; }
.license-line span { width:7px; height:7px; flex:0 0 auto; border-radius:50%; background:var(--mustard); }
.email-dialog { width:min(560px,calc(100% - 2rem)); padding:0; border:0; border-radius:8px; background:var(--cream); color:var(--charcoal); box-shadow:var(--shadow); }
.email-dialog::backdrop { background:rgba(15,56,56,.72); backdrop-filter:blur(3px); }
.email-dialog-card { position:relative; padding:2.25rem; }
.email-dialog-card h2 { max-width:420px; font-size:2.2rem; }
.dialog-close { width:42px; height:42px; position:absolute; top:1rem; right:1rem; border:0; border-radius:50%; background:transparent; color:var(--teal); font-size:2rem; line-height:1; cursor:pointer; }
.email-address { margin:.7rem 0 1.3rem; color:var(--muted); overflow-wrap:anywhere; }
.email-options { display:grid; gap:.6rem; }
.email-option { width:100%; min-height:66px; padding:.8rem 1rem; display:grid; align-content:center; border:1px solid var(--line); border-radius:5px; background:var(--white); color:var(--teal); text-align:left; text-decoration:none; cursor:pointer; }
.email-option.primary { border-color:var(--terracotta); background:var(--terracotta); color:var(--white); }
.email-option strong { font-size:.92rem; }
.email-option span { margin-top:.1rem; color:var(--muted); font-size:.76rem; }
.email-option.primary span { color:rgba(255,255,255,.78); }
.email-option:hover { border-color:var(--mustard); }
.copy-status { min-height:1.3rem; margin:.65rem 0 0; color:var(--teal); font-size:.8rem; text-align:center; }
@media (max-width:1080px) {
  .banner-intro { display:none; }
  .contact-banner { grid-template-columns:1fr auto; }
  .story-panel { grid-template-columns:minmax(320px,.8fr) minmax(480px,1.2fr); }
  .story-copy { padding:3.5rem 2.5rem 2rem; }
  .bio { grid-template-columns:1fr; }
  .bio h2 { grid-row:auto; }
  .help-section { grid-template-columns:1fr; gap:1rem; }
}
@media (max-width:820px) {
  .contact-banner { padding:.85rem 1.25rem; grid-template-columns:1fr; gap:.7rem; }
  .brand { justify-self:center; }
  .contact-links { width:100%; }
  .contact-links a { flex:1; }
  .story-panel { min-height:0; grid-template-columns:1fr; }
  .photo-column { min-height:0; padding:1.25rem 1.25rem 0; }
  .family-photo { height:auto; min-height:0; aspect-ratio:1 / 1; border-radius:140px 140px 10px 10px; }
  .story-copy { padding:3.5rem 1.25rem 2.4rem; }
  h1 { font-size:clamp(3.45rem,15vw,5.2rem); }
  .situations { gap:.8rem; }
}
@media (max-width:560px) {
  .brand-copy small { display:none; }
  .contact-links { gap:.45rem; }
  .contact-links a { min-width:0; padding:.65rem .7rem; }
  .contact-links strong { font-size:.72rem; overflow-wrap:anywhere; }
  .family-photo { aspect-ratio:1 / 1.06; }
  .contact-links a strong { display:none; }
  .contact-links a { min-height:46px; place-items:center; }
  .contact-links span { font-size:.7rem; }
  .email-dialog-card { padding:2rem 1rem 1.25rem; }
  .story-copy { padding-top:3rem; }
  .bio { margin-top:1.8rem; }
  .situations { grid-template-columns:1fr; }
  .situation { padding:.35rem 0 .35rem 1rem; }
  .situation p { max-width:340px; }
  .closing-row { align-items:stretch; flex-direction:column; gap:1rem; }
  .call-button { width:100%; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; } }
