:root{
  --navy:#0f2a44; --navy-2:#173a5c; --teal:#2b6cb0; --teal-2:#4a89c8; --teal-light:#e6eff9;
  --sand:#f5efe4; --sand-2:#ebe1cf; --coral:#d9744f; --ink:#1d2733; --muted:#5a6675; --line:#e2e6ea; --white:#fff;
  --serif:"Lora",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --radius:14px; --shadow:0 10px 30px rgba(15,42,68,.10); --max:1140px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--white);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--teal)} a:hover{color:var(--navy)}
h1,h2,h3{font-family:var(--serif);color:var(--navy);line-height:1.2;margin:0 0 .6em;font-weight:600}
h1{font-size:clamp(2.1rem,4.6vw,3.4rem)} h2{font-size:clamp(1.6rem,3vw,2.3rem)} h3{font-size:1.2rem}
p{margin:0 0 1em}
.container{max-width:var(--max);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;background:#fff;padding:8px 12px;z-index:100}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:saturate(1.2) blur(6px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:78px}
.logo{text-decoration:none;display:flex;flex-direction:row;align-items:center;gap:12px;line-height:1.1}
.logo-mark{display:block;height:52px;width:auto;flex:none}
.logo-text{display:flex;flex-direction:column}
.logo-chip{display:inline-flex;background:#fff;border-radius:8px;padding:6px 8px;flex:none}
.logo .l1{font-family:var(--serif);font-weight:700;font-size:1.45rem;color:var(--navy);letter-spacing:.01em}
.logo .l2{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);font-weight:600;margin-top:4px}
.nav{display:flex;align-items:center;gap:6px}
.nav a{text-decoration:none;color:var(--ink);font-weight:500;font-size:.97rem;padding:8px 14px;border-radius:8px}
.nav a:hover{background:var(--teal-light);color:var(--navy)}
.nav a[aria-current="page"]{color:var(--teal);font-weight:600}
.nav .btn{margin-left:8px}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--navy);margin:4px 0}

/* Buttons */
.btn{display:inline-block;text-decoration:none;font-weight:600;border-radius:10px;padding:13px 24px;font-size:1rem;border:2px solid transparent;transition:.2s;cursor:pointer;font-family:var(--sans)}
.btn-primary{background:var(--teal);color:#fff!important}
.btn-primary:hover{background:var(--navy);color:#fff}
.btn-outline{border-color:rgba(255,255,255,.85);color:#fff!important}
.btn-outline:hover{background:#fff;color:var(--navy)!important}
.btn-small{padding:9px 18px;font-size:.92rem}

/* Hero */
.hero{position:relative;color:#fff;background:var(--navy) url("../images/hero-painting-1600.jpg") center/cover no-repeat;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,32,54,.94) 0%,rgba(11,32,54,.82) 42%,rgba(11,32,54,.35) 75%,rgba(11,32,54,.15) 100%)}
.hero .container{position:relative;padding-top:110px;padding-bottom:120px}
.hero-content{max-width:620px}
.eyebrow{display:inline-block;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--teal-2);margin-bottom:14px}
.hero .eyebrow{color:#a9c9ec}
.hero h1{color:#fff;margin-bottom:.4em}
.hero p.lead{font-size:1.18rem;color:#e6edf3;max-width:560px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.page-hero{position:relative;color:#fff;background:var(--navy) url("../images/hero-painting-1600.jpg") center 40%/cover no-repeat}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,32,54,.93),rgba(11,32,54,.70))}
.page-hero .container{position:relative;padding-top:70px;padding-bottom:70px}
.page-hero h1{color:#fff;margin:0}
.page-hero p{color:#dfe8ef;margin:.6em 0 0;font-size:1.1rem;max-width:640px}

/* Sections */
section{padding:84px 0}
.bg-sand{background:var(--sand)}
.section-head{max-width:720px;margin-bottom:44px}
.center{text-align:center;margin-left:auto;margin-right:auto}
.intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.intro-grid .big{font-size:1.15rem}
.creds-card{background:var(--navy);color:#fff;border-radius:var(--radius);padding:36px;box-shadow:var(--shadow)}
.creds-card h3{color:#fff;font-size:1.35rem}
.creds-card ul{list-style:none;padding:0;margin:0}
.creds-card li{padding:12px 0 12px 34px;border-top:1px solid rgba(255,255,255,.14);position:relative;color:#e3ebf2}
.creds-card li:first-child{border-top:0}
.creds-card li::before{content:"";position:absolute;left:0;top:17px;width:18px;height:18px;border-radius:50%;background:var(--teal-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/11px no-repeat}
.creds-card strong{color:#fff}

.services{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.service{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;box-shadow:0 2px 0 rgba(15,42,68,.03);transition:.2s}
.service:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.icon{width:52px;height:52px;border-radius:12px;background:var(--teal-light);display:grid;place-items:center;margin-bottom:18px}
.icon svg{width:26px;height:26px;stroke:var(--teal);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.service p{color:var(--muted);margin:0;font-size:.98rem}

.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split-img{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3}
.split-img img{width:100%;height:100%;object-fit:cover}

.cta-band{background:linear-gradient(120deg,var(--navy) 0%,var(--navy-2) 55%,var(--teal) 130%);color:#fff;padding:72px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.cta-band h2{color:#fff;margin-bottom:.25em}
.cta-band p{color:#d8e4ee;margin:0;max-width:600px;font-size:1.08rem}
.cta-actions{display:flex;gap:14px;flex-wrap:wrap}

/* About */
.team{display:grid;gap:36px}
.bio{display:grid;grid-template-columns:260px 1fr;gap:44px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:40px;box-shadow:var(--shadow);align-items:start}
.bio img{width:260px;height:260px;object-fit:cover;border-radius:50%;border:6px solid var(--sand)}
.bio .role{color:var(--teal);font-weight:600;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}
.bio h2{font-size:1.9rem;margin-bottom:.5em}
.bio p{color:#3a4654}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:40px;align-items:start}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:40px;box-shadow:var(--shadow)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:18px}
label{display:block;font-weight:600;font-size:.92rem;margin-bottom:6px;color:var(--navy)}
label .req{color:var(--coral)}
input,textarea{width:100%;font:inherit;font-size:1rem;padding:12px 14px;border:1px solid #cfd6dd;border-radius:10px;background:#fbfcfd;color:var(--ink)}
input:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(43,108,176,.18);background:#fff}
textarea{min-height:120px;resize:vertical}
.form-note{font-size:.88rem;color:var(--muted);margin-top:14px}
.form-status{display:none;margin-top:16px;padding:14px 16px;border-radius:10px;background:var(--teal-light);color:var(--navy);font-size:.95rem}
.info-card{background:var(--sand);border-radius:var(--radius);padding:36px}
.info-card h2{font-size:1.5rem}
.info-item{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--sand-2)}
.info-item:first-of-type{border-top:0}
.info-item svg{flex:0 0 24px;width:24px;height:24px;stroke:var(--teal);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-top:3px}
.info-item strong{display:block;color:var(--navy)}
.info-item a{text-decoration:none}

/* Footer */
.site-footer{background:#0b2036;color:#b9c7d4;padding:60px 0 28px;font-size:.95rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.site-footer h4{color:#fff;font-family:var(--sans);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;margin:0 0 14px}
.site-footer a{color:#dbe6ef;text-decoration:none}.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .logo .l1{color:#fff}.site-footer .logo .l2{color:#9cc3ea}
.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin-bottom:8px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:44px;padding-top:22px;font-size:.85rem;color:#8698a9}

/* Responsive */
@media (max-width:960px){
  .services{grid-template-columns:repeat(2,1fr)}
  .intro-grid,.split,.contact-grid{grid-template-columns:1fr;gap:36px}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  body{font-size:16px}
  section{padding:60px 0}
  .nav-toggle{display:block}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:12px 20px 20px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  .nav.open{display:flex}
  .nav .btn{margin:8px 0 0;text-align:center}
  .logo .l1{font-size:1.2rem}.logo .l2{font-size:.62rem;letter-spacing:.12em}
  .hero{background-image:url("../images/hero-painting-1000.jpg")}
  .hero::before{background:linear-gradient(180deg,rgba(11,32,54,.88),rgba(11,32,54,.80))}
  .hero .container{padding-top:72px;padding-bottom:80px}
  .page-hero{background-image:url("../images/hero-painting-1000.jpg")}
  .services{grid-template-columns:1fr}
  .bio{grid-template-columns:1fr;padding:28px;gap:20px;text-align:center}
  .bio img{width:200px;height:200px;margin:0 auto}
  .bio p{text-align:left}
  .card,.info-card{padding:26px}
  .form-row{grid-template-columns:1fr;gap:0}
  .footer-grid{grid-template-columns:1fr;gap:28px}
  .cta-actions .btn{flex:1 1 100%;text-align:center}
}
/* layout refinements */
.cta-inner>div:first-child{flex:1 1 520px;max-width:660px}
@media (max-width:760px){.hero-actions .btn{flex:1 1 100%;text-align:center}}

@media (max-width:760px){.logo-mark{height:42px}.logo{gap:10px}}

/* Home services teaser */
.service-chips{list-style:none;padding:0;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;max-width:900px}
.service-chips a{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:999px;padding:12px 22px;font-weight:600;color:var(--navy);text-decoration:none;transition:.2s}
.service-chips a:hover{border-color:var(--teal);color:var(--teal);box-shadow:var(--shadow)}
@media print{.service,.bio,.creds-card,.card,.info-card,.split-img,.cta-band,.footer-grid>div{break-inside:avoid}}
@media print{.services{display:block}.service{margin-bottom:20px;page-break-inside:avoid}}

/* Top photo on Home page */
.top-photo{padding:0;line-height:0;background:var(--navy)}
.top-photo img{display:block;width:100%;height:auto;max-height:620px;object-fit:cover;object-position:center 45%}
.hero.hero-plain{background:var(--navy)}
.hero.hero-plain::before{display:none}
.narrow-copy{max-width:820px}
@media print{.top-photo img{max-height:420px}}

/* ===== web2: brighter palette ===== */
.page-hero{background:linear-gradient(120deg,#f7f1e6 0%,#e8f0fa 100%);color:var(--navy);border-bottom:1px solid var(--sand-2)}
.page-hero::before{display:none}
.page-hero h1{color:var(--navy)}
.page-hero p{color:#3a4654}
.page-hero .eyebrow{color:var(--teal)}
.hero.hero-plain{background:linear-gradient(120deg,#e8f0fa 0%,#f7f1e6 100%);color:var(--navy)}
.hero.hero-plain h1{color:var(--navy)}
.hero.hero-plain p.lead{color:#3a4654}
.hero.hero-plain .eyebrow{color:var(--teal)}
.hero.hero-plain .btn-outline,.cta-band .btn-outline{border-color:var(--navy);color:var(--navy)!important}
.hero.hero-plain .btn-outline:hover,.cta-band .btn-outline:hover{background:var(--navy);color:#fff!important}
.top-photo{background:#fff}
.creds-card{background:var(--teal-light);color:var(--ink);border:1px solid #cfdff0}
.creds-card h3,.creds-card strong{color:var(--navy)}
.creds-card li{color:#2f3b48;border-top-color:rgba(15,42,68,.12)}
.cta-band{background:linear-gradient(120deg,#e6eff9 0%,#f5efe4 100%);color:var(--navy)}
.cta-band h2{color:var(--navy)}
.cta-band p{color:#3a4654}
.site-footer{background:#2c4a66;color:#e1e9f0}
.site-footer a{color:#fff}
.footer-bottom{color:#c3d0dc;border-top-color:rgba(255,255,255,.18)}
@media (max-width:760px){.hero.hero-plain{background:linear-gradient(180deg,#e8f0fa,#f7f1e6)}}
.page-hero .eyebrow,.hero.hero-plain .eyebrow{color:var(--teal)!important}
