:root{
    --ink:#1B2E35;
    --paper:#FAFAF7;
    --sage:#7C9885;
    --sage-dark:#5E7A67;
    /*--sand:#C1C1E8;*/
    --sand:#d0e0f2;
    --coral:#e2485a;
    --coral-dark:#B84F38;
    --grey:#67727A;
    --line: rgba(27,46,53,0.12);
    --radius: 4px;
    --maxw: 1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces', serif;
    font-weight:600;
    line-height:1.12;
    margin:0 0 .5em;
    letter-spacing:-0.01em;
  }
  p{ line-height:1.65; color:var(--grey); margin:0 0 1em; }
  a{ color:inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }
  ul{ margin:0; padding:0; list-style:none; }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }
  .eyebrow{
    font-family:'Inter', sans-serif;
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--sage-dark);
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:14px;
  }
  .eyebrow::before{
    content:"";
    width:22px; height:1px;
    background:var(--coral);
    display:inline-block;
  }
  :focus-visible{ outline:2px solid var(--coral); outline-offset:3px; }
  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  }

  /* ---------- Pulse line signature ---------- */
  .pulse-line{ width:100%; height:auto; display:block; }
  .pulse-line path{
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-dasharray:1400;
    stroke-dashoffset:1400;
  }
  .pulse-line.draw path{
    animation:draw 2.2s ease-out forwards;
  }
  @keyframes draw{ to{ stroke-dashoffset:0; } }

  /* ---------- Top bar ---------- */
  .topbar{
    background:var(--ink);
    color:#EAF0EC;
    font-size:.82rem;
  }
  .topbar .wrap{
    display:flex; justify-content:space-between; align-items:center;
    padding:9px 32px; gap:16px; flex-wrap:wrap;
  }
  .topbar a{ opacity:.9; }
  .topbar a:hover{ opacity:1; text-decoration:underline; }
  .topbar-left{ display:flex; gap:22px; flex-wrap:wrap; }

  /* ---------- Header ---------- */
  header.site{
    position:sticky; top:0; z-index:50;
    background:rgba(250,250,247,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 32px;
  }
  .brand{ display:flex; align-items:center; gap:10px; font-family:'Fraunces', serif; font-weight:700; font-size:1.28rem; }
  .brand-mark{ color:var(--coral); width:26px; height:26px; }
  .nav-links{ display:flex; gap:30px; align-items:center; }
  .nav-links a{
    font-size:.92rem; font-weight:500; color:var(--ink);
    position:relative; padding:4px 0;
  }
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px;
    background:var(--coral); transition:width .25s ease;
  }
  .nav-links a:hover::after{ width:100%; }
  .nav-cta{ display:flex; align-items:center; gap:18px; }
  .phone-link{ font-weight:600; font-size:.92rem; display:flex; align-items:center; gap:7px; }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:12px 22px; border-radius:var(--radius);
    font-weight:600; font-size:.88rem; cursor:pointer; border:1px solid transparent;
    transition:transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
  }
  .btn-primary{ background:var(--coral); color:#fff; }
  .btn-primary:hover{ background:var(--coral-dark); transform:translateY(-1px); }
  .btn-outline{ border-color:var(--ink); color:var(--ink); }
  .btn-outline:hover{ background:var(--ink); color:#fff; }
  .menu-toggle{ display:none; background:none; border:none; cursor:pointer; padding:6px; }
  .menu-toggle span{ display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    background:linear-gradient(180deg,var(--sand) 0%, var(--paper) 78%);
    overflow:hidden;
  }
  .hero .wrap{
    /*padding:88px 32px 48px;*/
    display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:top;
  }
  .hero-eyebrow-badge{
    display:inline-flex; align-items:center; gap:8px;
    background:#fff; border:1px solid var(--line); border-radius:999px;
    padding:7px 14px 7px 8px; font-size:.8rem; font-weight:600; margin-bottom:24px;
  }
  .dot-live{ width:8px; height:8px; border-radius:50%; background:var(--sage); position:relative; }
  .dot-live::after{
    content:""; position:absolute; inset:0; border-radius:50%; background:var(--sage);
    animation:ping 1.8s cubic-bezier(0,0,.2,1) infinite;
  }
  @keyframes ping{ 0%{ transform:scale(1); opacity:.7;} 100%{ transform:scale(2.4); opacity:0;} }
  .hero h1{ font-size:clamp(2.4rem, 4.2vw, 3.6rem); max-width:14ch; }
  .hero h1 em{ font-style:italic; color:var(--sage-dark); }
  .hero p.lead{ font-size:1.08rem; max-width:46ch; margin-bottom:28px; }
  .hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:36px; }

  .hero-strip{
    display:grid; grid-template-columns:repeat(3,1fr); gap:0;
    border-top:1px solid var(--line); padding-top:22px; max-width:520px;
  }
  .hero-strip div{ padding-right:16px; border-right:1px solid var(--line); }
  .hero-strip div:last-child{ border-right:none; }
  .hero-strip strong{ display:block; font-family:'Fraunces', serif; font-size:1.5rem; }
  .hero-strip span{ font-size:.78rem; color:var(--grey); }

  .hero-visual{ position:relative; }
  .hero-card{
    background:#fff; border-radius:10px; border:1px solid var(--line);
    padding:28px; box-shadow:0 20px 50px -20px rgba(27,46,53,.25);
    position:relative; z-index:2;
  }
  .hero-card .pulse-line{ color:var(--coral); height:60px; margin-bottom:10px; }
  .hero-card-row{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
  .hero-card-row strong{ font-family:'Fraunces', serif; font-size:1.05rem; }
  .hero-card-row span{ font-size:.78rem; color:var(--sage-dark); font-weight:600; }
  .hero-blob{
    position:absolute; width:340px; height:340px; border-radius:50%;
    background:radial-gradient(circle at 30% 30%, rgba(124,152,133,.25), transparent 70%);
    top:-60px; right:-60px; z-index:1;
  }

  /* ---------- Info bar ---------- */
  .infobar{ background:var(--ink); color:#EAF0EC; }
  .infobar .wrap{
    display:grid; grid-template-columns:repeat(4,1fr);
    padding:0;
  }
  .infobar-item{
    padding:26px 28px; display:flex; gap:14px; align-items:flex-start;
    border-right:1px solid rgba(255,255,255,.1);
  }
  .infobar-item:last-child{ border-right:none; }
  .infobar-item svg{ flex-shrink:0; width:22px; height:22px; color:var(--coral); margin-top:2px; }
  .infobar-item strong{ display:block; font-size:.92rem; margin-bottom:3px; }
  .infobar-item p{ margin:0; font-size:.82rem; color:#B9C4BE; line-height:1.5; }
  .infobar-item a{ color:#EAF0EC; }
  .infobar-item a:hover{ text-decoration:underline; }

  /* ---------- Section basics ---------- */
  section{ padding:96px 0; }
  .section-head{ max-width:640px; margin-bottom:52px; }
  .section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
  .section-head p{ font-size:1.02rem; }

  /* ---------- About ---------- */
  .about .wrap{ display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:start; }
  .about-media{ position:sticky; top:110px; }
  .about-media img{ border-radius:8px; }
  .about-media-caption{
    background:#fff; border:1px solid var(--line); border-radius:8px;
    padding:18px 20px; margin-top:-40px; margin-left:24px; position:relative;
    max-width:260px; box-shadow:0 12px 30px -14px rgba(27,46,53,.25);
  }
  .about-media-caption strong{ font-family:'Fraunces', serif; font-size:1.3rem; display:block; }
  .about-media-caption span{ font-size:.78rem; color:var(--grey); }
  .about-pillars{ display:grid; gap:28px; margin-top:12px; }
  .pillar{ display:flex; gap:20px; padding-bottom:28px; border-bottom:1px solid var(--line); }
  .pillar:last-child{ border-bottom:none; padding-bottom:0; }
  .pillar-num{ font-family:'Fraunces', serif; font-size:1.1rem; color:var(--coral); flex-shrink:0; width:34px; }
  .pillar h3{ font-size:1.15rem; margin-bottom:6px; }
  .pillar p{ margin:0; font-size:.95rem; }

  /* ---------- Services ---------- */
  .services{
    position:relative;
    background:var(--sand);
    overflow:hidden;
    isolation:isolate;
  }
  .services::before{
    content:"";
    position:absolute;
    inset:-20px;
    background:url('services.jpg') center/cover no-repeat;
    filter:blur(1px) brightness(.9);
    transform:scale(1.1);
    z-index:-2;
  }
  .services::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(208,224,242,.88);
    z-index:-1;
  }
  .service-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .service-card{
    background:var(--paper); border-radius:8px; padding:30px 26px;
    border:1px solid var(--line);
    transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  }
  .service-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 36px -18px rgba(27,46,53,.3);
    border-color:transparent;
  }
  .service-icon{
    width:44px; height:44px; border-radius:50%;
    background:rgba(124,152,133,.15); color:var(--sage-dark);
    display:flex; align-items:center; justify-content:center; margin-bottom:18px;
  }
  .service-icon svg{ width:22px; height:22px; }
  .service-card h3{ font-size:1.12rem; margin-bottom:8px; }
  .service-card p{ font-size:.92rem; margin-bottom:16px; }
  .service-card .learn{ font-size:.82rem; font-weight:700; color:var(--coral); display:inline-flex; align-items:center; gap:6px; }
  .service-card .learn svg{ width:14px; height:14px; transition:transform .2s ease; }
  .service-card:hover .learn svg{ transform:translateX(3px); }
  .service-more{ text-align:center; margin-top:44px; }

  /* ---------- Team ---------- */
  .team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
  .team-card{ text-align:left; }
  .team-photo{
    aspect-ratio:3/3.4; border-radius:8px; overflow:hidden; margin-bottom:14px;
    background:var(--sand);
    position:relative;
  }
  .team-photo img{ width:100%; height:100%; object-fit:cover; }
  .team-card h4{ font-size:1.02rem; margin-bottom:2px; }
  .team-card span{ font-size:.8rem; color:var(--sage-dark); font-weight:600; }

  /* Clickable profile cards */
  .team-card.detailed{
    cursor:pointer;
    border-radius:10px;
    transition:transform .2s ease;
  }
  .team-card.detailed:hover{ transform:translateY(-4px); }
  .team-card.detailed:hover .team-photo{ box-shadow:0 14px 28px -14px rgba(27,46,53,.35); }
  .team-card.detailed:focus-visible{ outline:2px solid var(--coral); outline-offset:4px; border-radius:10px; }
  .team-card.detailed .team-photo{ transition:box-shadow .2s ease; }
  .team-card.detailed .view-profile{
    display:inline-flex; align-items:center; gap:5px;
    font-size:.76rem; font-weight:700; color:var(--coral);
    margin-top:6px;
  }
  .team-card.detailed .view-profile svg{ width:12px; height:12px; transition:transform .2s ease; }
  .team-card.detailed:hover .view-profile svg{ transform:translateX(3px); }

  /* ---------- Team profile modal ---------- */
  .profile-overlay{
    position:fixed; inset:0; z-index:200;
    background:rgba(27,46,53,.55);
    backdrop-filter:blur(3px);
    display:flex; align-items:center; justify-content:center;
    padding:24px;
    opacity:0; visibility:hidden;
    transition:opacity .25s ease, visibility .25s ease;
  }
  .profile-overlay.open{ opacity:1; visibility:visible; }
  .profile-modal{
    background:var(--paper);
    border-radius:14px;
    max-width:680px; width:100%;
    max-height:86vh;
    overflow-y:auto;
    display:grid;
    grid-template-columns:220px 1fr;
    gap:0;
    position:relative;
    transform:translateY(16px) scale(.98);
    transition:transform .25s ease;
    box-shadow:0 30px 60px -20px rgba(27,46,53,.4);
  }
  .profile-overlay.open .profile-modal{ transform:translateY(0) scale(1); }
  .profile-modal-photo{
    background:var(--sand);
    min-height:220px;
  }
  .profile-modal-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .profile-modal-body{ padding:32px 32px 32px 28px; }
  .profile-modal-body .eyebrow{ margin-bottom:8px; }
  .profile-modal-body h3{ font-size:1.5rem; margin-bottom:4px; }
  .profile-modal-role{ font-size:.85rem; color:var(--sage-dark); font-weight:600; display:block; margin-bottom:18px; }
  .profile-modal-bio{ font-size:.92rem; line-height:1.7; margin-bottom:20px; }
  .profile-modal-actions{ display:flex; gap:10px; flex-wrap:wrap; }
  .profile-close{
    position:absolute; top:14px; right:14px;
    width:34px; height:34px; border-radius:50%;
    background:var(--paper); border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; z-index:2;
    transition:background .15s ease;
  }
  .profile-close:hover{ background:var(--sand); }
  .profile-close svg{ width:16px; height:16px; }
  @media (max-width:640px){
    .profile-modal{ grid-template-columns:1fr; max-height:90vh; }
    .profile-modal-photo{ min-height:180px; }
    .profile-modal-body{ padding:24px; }
  }

  /* ---------- Trust strip ---------- */
  .trust{ text-align:center; }
  .trust-logos{ display:flex; justify-content:center; gap:56px; flex-wrap:wrap; opacity:.7; margin-top:8px; }
  .trust-logos span{ font-family:'Fraunces', serif; font-weight:600; font-size:1.15rem; color:var(--grey); letter-spacing:.02em; }

  /* ---------- News ---------- */
  .news{
    position:relative;
    background:var(--sand);
    overflow:hidden;
    isolation:isolate;
  }
  .news::before{
    content:"";
    position:absolute;
    inset:-10px;
    background:url('news.jpg') center/cover no-repeat;
    filter:blur(0px) brightness(.9);
    transform:scale(1.1);
    z-index:-2;
  }
  .news::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(208,224,242,.88);
    z-index:-1;
  }
  .news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .news-card{ background:var(--paper); border-radius:8px; overflow:hidden; border:1px solid var(--line); }
  .news-thumb{ aspect-ratio:16/10; background:linear-gradient(135deg, var(--sage), var(--ink)); position:relative; }
  .news-body{ padding:22px 22px 24px; }
  .news-date{ font-size:.76rem; font-weight:700; color:var(--sage-dark); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; display:block; }
  .news-card h3{ font-size:1.06rem; margin-bottom:8px; }
  .news-card p{ font-size:.9rem; }
  .news-card a.readmore{ font-size:.82rem; font-weight:700; color:var(--ink); }
  .news-card a.readmore:hover{ color:var(--coral); }

  /* ---------- Contact ---------- */
  .contact .wrap{ display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; }
  .contact-info-card{ background:var(--ink); color:#EAF0EC; border-radius:10px; padding:40px 34px; }
  .contact-info-card h2{ color:#fff; font-size:1.7rem; }
  .contact-info-card p{ color:#C4CEC8; }
  .contact-lines{ margin-top:28px; display:grid; gap:20px; }
  .contact-line{ display:flex; gap:14px; align-items:flex-start; }
  .contact-line svg{ width:20px; height:20px; color:var(--coral); flex-shrink:0; margin-top:2px; }
  .contact-line strong{ display:block; font-size:.92rem; margin-bottom:2px; }
  .contact-line span, .contact-line a{ font-size:.86rem; color:#B9C4BE; }
  .contact-line a:hover{ color:#fff; }

  form.appt-form{ display:grid; gap:18px; }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  .field label{ display:block; font-size:.8rem; font-weight:600; margin-bottom:7px; }
  .field input, .field textarea, .field select{
    width:100%; border:1px solid var(--line); border-radius:6px;
    padding:12px 14px; font-family:'Inter', sans-serif; font-size:.92rem;
    background:#fff; color:var(--ink); transition:border-color .2s ease, box-shadow .2s ease;
  }
  .field input:focus, .field textarea:focus, .field select:focus{
    border-color:var(--sage); box-shadow:0 0 0 3px rgba(124,152,133,.18); outline:none;
  }
  .field textarea{ resize:vertical; min-height:110px; }
  .form-note{ font-size:.78rem; color:var(--grey); }
  #formStatus, #careersStatus{ font-size:.85rem; font-weight:600; min-height:1.2em; }
  #formStatus.ok, #careersStatus.ok{ color:var(--sage-dark); }

  /* ---------- Map / hours ---------- */
  .locate{ padding-top:0; }
  .locate .wrap{ display:grid; grid-template-columns:1.2fr .8fr; gap:0; border-radius:10px; overflow:hidden; border:1px solid var(--line); }
  .map-embed{ min-height:380px; }
  .map-embed iframe{ width:100%; height:100%; min-height:380px; border:0; display:block; }
  .hours-panel{ background:#fff; padding:40px 36px; }
  .hours-panel h3{ font-size:1.3rem; }
  .hours-row{ display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line); font-size:.92rem; }
  .hours-row:last-of-type{ border-bottom:none; }
  .hours-row span:first-child{ color:var(--grey); }
  .hours-row span:last-child{ font-weight:600; }
  .hours-flag{ margin-top:18px; background:var(--sand); border-radius:6px; padding:14px 16px; font-size:.85rem; }

  /* ---------- Footer ---------- */
  footer{ background:var(--ink); color:#C4CEC8; padding:72px 0 28px; }
  .foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:56px; }
  .foot-brand{ display:flex; align-items:center; gap:10px; font-family:'Fraunces', serif; font-weight:700; font-size:1.3rem; color:#fff; margin-bottom:16px; }
  .foot-brand svg{ color:var(--coral); width:24px; height:24px; }
  footer p{ color:#93A199; font-size:.88rem; }
  footer h4{ color:#fff; font-family:'Inter', sans-serif; font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:18px; }
  footer ul li{ margin-bottom:11px; }
  footer ul a{ font-size:.88rem; color:#B9C4BE; }
  footer ul a:hover{ color:#fff; }
  .foot-social{ display:flex; gap:12px; margin-top:18px; }
  .foot-social a{
    width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
    display:flex; align-items:center; justify-content:center;
  }
  .foot-social a:hover{ background:var(--coral); border-color:var(--coral); }
  .foot-social svg{ width:16px; height:16px; }
  .foot-bottom{ border-top:1px solid rgba(255,255,255,.1); padding-top:26px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.8rem; color:#8A988F; }
  .foot-bottom a{ color:#8A988F; }
  .foot-bottom a:hover{ color:#fff; }

  /* ---------- Reveal on scroll ---------- */
  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:none; }

  /* ---------- Back to top ---------- */
  .to-top{
    position:fixed; right:24px; bottom:24px; width:44px; height:44px; border-radius:50%;
    background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center;
    border:none; cursor:pointer; opacity:0; pointer-events:none; transform:translateY(10px);
    transition:opacity .25s ease, transform .25s ease; z-index:40;
  }
  .to-top.show{ opacity:1; pointer-events:auto; transform:none; }

  /* ---------- Responsive ---------- */
  @media (max-width:960px){
    .hero .wrap{ grid-template-columns:1fr; }
    .hero-visual{ order:-1; }
    .infobar .wrap{ grid-template-columns:repeat(2,1fr); }
    .infobar-item:nth-child(2){ border-right:none; }
    .about .wrap{ grid-template-columns:1fr; }
    .about-media{ position:static; }
    .service-grid{ grid-template-columns:repeat(2,1fr); }
    .team-grid{ grid-template-columns:repeat(2,1fr); }
    .news-grid{ grid-template-columns:1fr; }
    .contact .wrap{ grid-template-columns:1fr; }
    .locate .wrap{ grid-template-columns:1fr; }
    .foot-grid{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width:720px){
    .topbar .wrap{ justify-content:center; text-align:center; }
    .nav-links, .nav-cta .phone-link{ display:none; }
    .menu-toggle{ display:block; }
    .nav-links.mobile-open{
      display:flex; position:absolute; top:100%; left:0; right:0; background:var(--paper);
      flex-direction:column; padding:20px 32px; border-bottom:1px solid var(--line); gap:16px;
    }
    .hero-strip{ grid-template-columns:1fr; gap:14px; max-width:none; }
    .hero-strip div{ border-right:none; border-bottom:1px solid var(--line); padding-bottom:14px; }
    .service-grid, .team-grid{ grid-template-columns:1fr; }
    .form-row{ grid-template-columns:1fr; }
    .foot-grid{ grid-template-columns:1fr; gap:32px; }
    section{ padding:64px 0; }
  }

  /* ---------- Nav active state ---------- */
  .nav-links a.active{ color:var(--coral); }
  .nav-links a.active::after{ width:100%; }

  /* ---------- Page banner (inner pages) ---------- */
  .page-banner{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:linear-gradient(180deg,var(--sand) 0%, var(--paper) 100%);
    padding:56px 0 44px;
    border-bottom:1px solid var(--line);
  }
  /* Blurred hero background image — set per page via inline style="--hero-bg:url(...)" */
  .page-banner::before{
    content:"";
    position:absolute;
    inset:-30px;
    z-index:-2;
    background-image:var(--hero-bg, none);
    background-size:cover;
    background-position:center;
    filter:blur(1px) saturate(1.05);
    transform:scale(1.06);
  }
  /* Tint overlay at 50% so the photo stays clearly visible while text keeps contrast */
  .page-banner::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:linear-gradient(180deg, rgba(250,250,247,.5) 0%, rgba(250,250,247,.6) 100%);
  }
  .page-banner:not([style*="--hero-bg"])::before,
  .page-banner:not([style*="--hero-bg"])::after{ content:none; }
  .breadcrumb{
    display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--grey);
    margin-bottom:16px;
  }
  .breadcrumb a{ color:var(--sage-dark); font-weight:600; }
  .breadcrumb a:hover{ text-decoration:underline; }
  .page-banner h1{ font-size:clamp(2rem, 3.4vw, 2.9rem); max-width:16ch; }
  .page-banner:is([style*="--hero-bg"]) h1{ text-shadow:0 1px 24px rgba(250,250,247,.9); }
  .page-banner p.lead{ max-width:56ch; font-size:1.02rem; }

  /* ---------- Full services page grid ---------- */
  .service-grid.full{ grid-template-columns:repeat(3,1fr); }
  .service-card.anchor-target{ scroll-margin-top:110px; }
  .service-note{
    background:var(--sand); border-radius:8px; padding:26px 30px; margin-top:44px;
    font-size:.95rem; color:var(--ink);
  }
  .service-note strong{ color:var(--coral-dark); }

  @media (max-width:960px){
    .service-grid.full{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:720px){
    .service-grid.full{ grid-template-columns:1fr; }
  }

  /* ---------- About intro ---------- */
  .about-intro .wrap{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
  .about-intro-media{ position:relative; }
  .about-intro-media img{ border-radius:8px; }
  .about-intro-badge{
    position:absolute; bottom:-24px; left:-24px; background:var(--ink); color:#fff;
    border-radius:8px; padding:20px 24px; box-shadow:0 16px 34px -16px rgba(27,46,53,.4);
  }
  .about-intro-badge strong{ font-family:'Fraunces', serif; font-size:1.7rem; display:block; }
  .about-intro-badge span{ font-size:.76rem; color:#B9C4BE; }
  .about-intro-copy p{ font-size:1rem; }

  /* ---------- Values & Vision ---------- */
  .values-vision{ background:var(--sand); }
  .vv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
  .vv-card{
    background:var(--paper); border-radius:10px; padding:38px 36px;
    border:1px solid var(--line); position:relative;
  }
  .vv-card .eyebrow{ margin-bottom:10px; }
  .vv-card h3{ font-size:1.5rem; margin-bottom:14px; }
  .vv-card p{ font-size:.95rem; margin-bottom:0; }
  .vv-icon{
    width:46px; height:46px; border-radius:50%; margin-bottom:18px;
    display:flex; align-items:center; justify-content:center;
    background:rgba(216,101,74,.12); color:var(--coral-dark);
  }
  .vv-card:last-child .vv-icon{ background:rgba(124,152,133,.18); color:var(--sage-dark); }
  .vv-icon svg{ width:22px; height:22px; }

  /* ---------- Why choose us ---------- */
  .why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .why-card{
    padding:30px 26px; border-radius:8px; border:1px solid var(--line);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .why-card:hover{ transform:translateY(-4px); box-shadow:0 18px 36px -18px rgba(27,46,53,.28); }
  .why-num{ font-family:'Fraunces', serif; font-size:.95rem; color:var(--coral); margin-bottom:14px; display:block; }
  .why-card h3{ font-size:1.08rem; margin-bottom:8px; }
  .why-card p{ font-size:.9rem; margin:0; }

  /* ---------- CTA banner ---------- */
  .cta-banner{
    background:var(--ink); color:#fff; border-radius:12px; padding:52px 56px;
    display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap;
  }
  .cta-banner h2{ color:#fff; font-size:1.7rem; margin-bottom:8px; max-width:26ch; }
  .cta-banner p{ color:#B9C4BE; margin:0; max-width:44ch; }
  .cta-banner .btn-primary{ flex-shrink:0; }

  @media (max-width:960px){
    .about-intro .wrap{ grid-template-columns:1fr; }
    .about-intro-badge{ position:static; margin-top:-40px; margin-left:24px; display:inline-block; }
    .vv-grid{ grid-template-columns:1fr; }
    .why-grid{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:720px){
    .why-grid{ grid-template-columns:1fr; }
    .cta-banner{ padding:38px 28px; flex-direction:column; align-items:flex-start; }
  }

  /* ---------- Team page ---------- */
  .team-section{ margin-bottom:64px; }
  .team-section:last-child{ margin-bottom:0; }
  .team-section-head{ display:flex; align-items:baseline; gap:16px; margin-bottom:32px; border-bottom:1px solid var(--line); padding-bottom:18px; }
  .team-section-head h2{ font-size:1.6rem; margin:0; }
  .team-section-head span{ font-size:.82rem; color:var(--grey); }
  .team-card.wide{ display:flex; align-items:flex-start; gap:18px; }
  .team-card.wide .team-photo{ width:88px; height:100px; flex-shrink:0; aspect-ratio:auto; margin-bottom:0; }
  .team-card.wide h4{ font-size:.98rem; margin-bottom:3px; }
  .team-card.wide p{ margin:6px 0 0; font-size:.86rem; }
  .allied-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }

  /* ---------- Careers page ---------- */
  .careers-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; }
  .careers-intro h2{ font-size:1.7rem; }
  .careers-perks{ display:grid; gap:18px; margin-top:28px; }
  .careers-perk{ display:flex; gap:14px; align-items:flex-start; }
  .careers-perk svg{ width:20px; height:20px; color:var(--sage-dark); flex-shrink:0; margin-top:3px; }
  .careers-perk strong{ display:block; font-size:.94rem; margin-bottom:2px; }
  .careers-perk p{ margin:0; font-size:.86rem; }

  .role-checklist{ display:grid; gap:10px; margin-bottom:6px; }
  .role-check{
    display:flex; align-items:center; gap:12px; border:1px solid var(--line);
    border-radius:6px; padding:13px 16px; font-size:.9rem; cursor:pointer;
    transition:border-color .18s ease, background .18s ease;
  }
  .role-check:hover{ border-color:var(--sage); }
  .role-check input{ width:17px; height:17px; accent-color:var(--coral); flex-shrink:0; }
  .file-field{
    border:1.5px dashed var(--line); border-radius:6px; padding:22px 18px;
    text-align:center; background:#fff;
  }
  .file-field span{ display:block; font-size:.78rem; color:var(--grey); margin-top:6px; }
  .file-field input[type="file"]{ font-size:.84rem; }

  /* ---------- News page ---------- */
  .news-grid.full{ grid-template-columns:repeat(3,1fr); }
  @media (max-width:960px){ .news-grid.full{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:720px){ .news-grid.full{ grid-template-columns:1fr; } }

  /* ---------- Contact page quick cards ---------- */
  .contact-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
  .contact-card{
    background:#fff; border:1px solid var(--line); border-radius:8px; padding:26px 22px;
    text-align:left;
  }
  .contact-card .service-icon{ margin-bottom:14px; }
  .contact-card h3{ font-size:1rem; margin-bottom:6px; }
  .contact-card p, .contact-card a{ font-size:.86rem; color:var(--grey); margin:0; }
  .contact-card a:hover{ color:var(--coral); }

  @media (max-width:960px){
    .careers-grid{ grid-template-columns:1fr; }
    .allied-grid{ grid-template-columns:repeat(2,1fr); }
    .contact-cards{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:720px){
    .allied-grid{ grid-template-columns:1fr; }
    .contact-cards{ grid-template-columns:1fr; }
    .team-card.wide{ flex-direction:column; }
    .team-card.wide .team-photo{ width:100%; height:auto; aspect-ratio:3/3.2; }
  }

  /* Slightly tighter nav gap to fit 6 items */
  .nav-links{ gap:22px; }

  /* ---------- Team page ---------- */
  .team-group{ margin-bottom:64px; scroll-margin-top:110px; }
  .team-group:last-child{ margin-bottom:0; }
  .team-group-head{ display:flex; align-items:baseline; gap:16px; margin-bottom:32px; }
  .team-group-head h2{ font-size:1.7rem; margin:0; }
  .team-group-head span{ font-size:.85rem; color:var(--grey); }
  .team-group-head::after{ content:""; flex:1; height:1px; background:var(--line); }
  .team-card.detailed .team-photo{ aspect-ratio:1/1.05; }
  .team-card.detailed span{ display:block; font-size:.78rem; color:var(--grey); font-weight:500; margin-top:2px; }

  /* ---------- Careers page ---------- */
  .careers-layout .wrap{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
  .careers-copy h2{ font-size:1.6rem; }
  .careers-perks{ display:grid; gap:18px; margin-top:28px; }
  .perk{ display:flex; gap:14px; align-items:flex-start; }
  .perk svg{ width:20px; height:20px; color:var(--sage-dark); flex-shrink:0; margin-top:3px; }
  .perk strong{ display:block; font-size:.95rem; }
  .perk p{ margin:2px 0 0; font-size:.86rem; }
  .role-list{ display:grid; gap:12px; margin:22px 0 0; }
  .role-check{
    display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:6px;
    padding:14px 16px; font-size:.9rem; font-weight:500; cursor:pointer; background:#fff;
    transition:border-color .2s ease, background .2s ease;
  }
  .role-check:has(input:checked){ border-color:var(--sage); background:rgba(124,152,133,.08); }
  .role-check input{ width:17px; height:17px; accent-color:var(--sage-dark); }
  .file-upload{
    border:1.5px dashed var(--line); border-radius:8px; padding:26px 20px; text-align:center;
    font-size:.85rem; color:var(--grey); cursor:pointer; transition:border-color .2s ease, background .2s ease;
  }
  .file-upload:hover{ border-color:var(--sage); background:rgba(124,152,133,.06); }
  .file-upload strong{ color:var(--ink); display:block; margin-bottom:4px; font-size:.92rem; }
  .file-upload input{ display:none; }
  .file-note{ font-size:.76rem; color:var(--grey); margin-top:6px; }

  /* ---------- News page ---------- */
  .news-grid.full{ grid-template-columns:repeat(3,1fr); }
  @media (max-width:960px){
    .careers-layout .wrap{ grid-template-columns:1fr; }
    .news-grid.full{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:720px){
    .news-grid.full{ grid-template-columns:1fr; }
  }

  /* ---------- Contact page hero cards ---------- */
  .contact-hero-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:12px; }
  .contact-hero-card{
    background:#fff; border:1px solid var(--line); border-radius:8px; padding:26px 24px;
  }
  .contact-hero-card .service-icon{ margin-bottom:14px; }
  .contact-hero-card h3{ font-size:1rem; margin-bottom:6px; }
  .contact-hero-card p, .contact-hero-card a{ font-size:.88rem; color:var(--grey); margin:0; }
  .contact-hero-card a:hover{ color:var(--coral); }
  @media (max-width:720px){
    .contact-hero-cards{ grid-template-columns:1fr; }
  }

  /* ---------- Floating WhatsApp image button (fully responsive) ---------- */
  .whatsapp-float{
    position: fixed;
    right: clamp(10px, 3vw, 24px);
    bottom: clamp(90px, 3vw, 24px);
    z-index: 9999;
    width: clamp(64px, 18vw, 160px);
    display: block;
    transition: transform 0.25s ease, box-shadow 0.2s ease;
  }
  .whatsapp-float img{
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
  }
  .whatsapp-float:hover{
    transform: scale(1.06);
  }
  @media (max-width: 480px){
    .whatsapp-float{ width: clamp(56px, 24vw, 100px); }
  }