:root{--navy:#0a3048;--blue:#3c8fc7;--sage:#82958a;--gray:#d9d5cd;--cream:#f7f5f0;--ink:#17384b;--muted:#627079}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--navy);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}img{display:block;width:100%;object-fit:cover}button{cursor:pointer}.topbar{background:var(--navy);color:#fff;display:flex;justify-content:space-between;padding:12px 6%;font-size:11px;letter-spacing:.4px}.tiny-star{color:#a9c7b6;padding-right:8px}.header{height:105px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;background:var(--cream);position:relative;z-index:10}.brand{width:155px;height:98px;display:flex;align-items:center}.brand img{height:98px;object-fit:contain}.header nav{display:flex;gap:35px;font-size:13px}.header nav a{position:relative;padding:12px 0}.header nav a.active:after{content:'';position:absolute;bottom:3px;height:2px;background:var(--sage);left:0;right:0}.button{background:var(--navy);border:1px solid var(--navy);color:white;min-height:49px;padding:16px 23px;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;font-size:12px;font-weight:600;border-radius:3px;transition:background .2s,transform .2s}.button:hover{background:#184b67;transform:translateY(-2px)}.button span{font-size:18px;line-height:12px}.header-contact{min-height:44px;padding:14px 19px}.menu-toggle{display:none}.hero{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:580px;padding:17px 3.3% 48px 6%;gap:20px}.hero-copy{padding:51px 12px 36px 0}.eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:700;display:flex;align-items:center;gap:10px;margin:0 0 25px}.eyebrow>span{width:7px;height:7px;background:var(--sage);border-radius:50%}h1{font-size:clamp(43px,4.6vw,72px);line-height:1.08;letter-spacing:-3px;font-weight:500;margin:0 0 25px}h1 em,h2 em{font-family:Georgia,serif;font-weight:400;color:var(--sage)}.hero-description{font-size:15px;line-height:1.85;max-width:375px;color:var(--muted);margin-bottom:31px}.hero-actions{display:flex;gap:24px;align-items:center}.text-link{font-size:12px;font-weight:600;display:inline-flex;gap:18px;align-items:center}.text-link:hover{color:var(--blue)}.hero-note{display:flex;align-items:center;gap:9px;margin-top:38px;font-size:10px;color:var(--muted)}.check-circle{border:1px solid #9daea4;color:#607f6c;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px}.hero-image{position:relative;min-height:475px;overflow:hidden;border-radius:4px}.hero-image>img{height:100%;position:absolute;object-position:52% center}.image-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,31,43,.6),transparent 50%)}.photo-caption{position:absolute;bottom:34px;left:30px;color:#fff;display:flex;align-items:center;gap:14px;font-size:19px;letter-spacing:-.4px}.sparkle{font-size:45px;font-weight:normal}.photo-caption small{display:block;font-size:8px;letter-spacing:2px;margin-top:11px}.image-label{position:absolute;right:19px;top:20px;background:#f7f5f0ed;border-radius:3px;padding:11px 12px;font-size:8px;letter-spacing:1px;display:flex;align-items:center;gap:7px}.image-label span{height:6px;width:6px;border-radius:50%;background:var(--sage)}.hero-index{position:absolute;right:3.3%;bottom:22px;font-size:8px;letter-spacing:1.5px;color:var(--muted)}.values-strip{border-top:1px solid var(--gray);border-bottom:1px solid var(--gray);display:flex;align-items:center;justify-content:space-between;padding:25px 6%;gap:20px}.values-strip p{font-size:14px;line-height:1.5;margin:0;padding-right:40px;border-right:1px solid var(--gray)}.values-strip strong{font-weight:500}.values-strip>span{font-size:12px;display:flex;align-items:center;gap:12px}.values-strip i{font-size:26px;color:var(--sage);font-style:normal}.section{padding:88px 6%}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px;gap:35px}.section-heading .eyebrow{margin-bottom:18px}h2{font-size:clamp(30px,3.1vw,46px);line-height:1.17;letter-spacing:-1.5px;font-weight:500;margin:0}.section-heading>p{font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 4px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.service-card{border:1px solid var(--gray);border-radius:4px;overflow:hidden}.service-photo{height:235px;position:relative;overflow:hidden}.service-photo img{height:100%;transition:transform .45s;object-position:center 43%}.service-card:hover img{transform:scale(1.04)}.service-number{position:absolute;left:17px;top:17px;color:white;background:#0a304855;border:1px solid #ffffff60;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-size:10px}.round-arrow{position:absolute;bottom:15px;right:15px;width:34px;height:34px;display:grid;place-items:center;background:var(--cream);border-radius:50%;font-size:20px}.service-content{padding:23px 23px 20px}.service-content h3{font-weight:500;font-size:20px;letter-spacing:-.6px;margin:0 0 13px}.service-content p{font-size:12px;line-height:1.9;color:var(--muted);margin:0 0 22px}.service-link{border-top:1px solid var(--gray);padding-top:16px;display:flex;justify-content:space-between;font-size:10px;font-weight:600}.about{background:#eeeee7;display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.about-image{height:480px;position:relative}.about-image>img{height:100%;object-position:center 40%;border-radius:3px}.about-stamp{position:absolute;bottom:25px;right:-25px;background:var(--navy);padding:24px;color:var(--cream);font-size:50px;display:flex;gap:16px;align-items:center}.about-stamp span{font-size:8px;line-height:1.8;letter-spacing:1.4px}.about-copy>p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:1.9;max-width:440px}.about-copy h2{margin-bottom:22px}.about-values{margin:24px 0;display:grid;gap:14px;font-size:12px}.about-values b{font-weight:400;color:var(--sage);margin-right:15px;font-size:10px}.process>div:first-child{text-align:center}.process .eyebrow{justify-content:center}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:45px}.steps article{border-top:1px solid var(--gray);padding-top:22px}.steps article>span{font-size:12px;color:var(--sage)}.steps h3{font-size:18px;font-weight:500}.steps p{font-size:13px;color:var(--muted);line-height:1.8;max-width:270px}.contact{background:var(--navy);color:var(--cream);display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:start}.contact .eyebrow{color:#b6c9bd}.contact h2{font-size:54px}.contact h2 em{color:#aec3b6}.contact-copy>p:not(.eyebrow){font-size:14px;line-height:1.9;color:#c2cdd3;max-width:330px;margin:25px 0 32px}.contact-phone{display:block;font-size:24px;margin-bottom:16px}.contact-phone span{font-size:20px;margin-left:20px;color:#b6c9bd}.contact-email{font-size:14px;border-bottom:1px solid #59717f;padding-bottom:5px}.location{font-size:11px;color:#c2cdd3;margin-top:45px}.location span{font-size:20px;margin-right:10px}form{background:var(--cream);color:var(--navy);padding:30px;border-radius:4px}form h3{font-size:22px;font-weight:500;margin:0 0 25px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}label{display:block;font-size:10px;font-weight:600;margin-bottom:17px}input,select,textarea{display:block;width:100%;margin-top:8px;background:transparent;border:1px solid #d1d3cc;padding:12px 10px;font-size:11px;color:var(--navy);border-radius:2px;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:2px}textarea{resize:vertical}form .button{width:100%}.form-note{font-size:9px;color:var(--muted);text-align:center;margin:12px 0 0}#form-status{font-size:12px;line-height:1.6;background:#e5ebe3;padding:12px}footer{padding:40px 6% 22px}.footer-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gray);padding-bottom:28px}.footer-brand{font-size:24px;font-weight:800;letter-spacing:2px}.footer-brand span{display:block;color:var(--blue);font-size:9px;letter-spacing:4px;margin-top:5px}.footer-top p{font-family:Georgia,serif;font-style:italic;font-size:21px;color:#657b6d}.back-top{font-size:11px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;font-size:9px;color:var(--muted);padding-top:22px}.footer-bottom nav{display:flex;gap:20px}.skip-link{position:fixed;left:10px;top:-60px;padding:12px;background:white;z-index:100}.skip-link:focus{top:10px}@media(min-width:1500px){.hero,.header,.topbar,.values-strip,.section,footer{padding-left:max(6%,calc((100vw - 1320px)/2));padding-right:max(6%,calc((100vw - 1320px)/2))}.hero{min-height:650px}.hero-copy{padding-top:70px}}@media(max-width:1000px){.hero{grid-template-columns:1.05fr 1fr;padding-left:5%;padding-right:5%}.hero-copy{padding-top:30px}h1{font-size:49px}.hero-actions{gap:16px;flex-wrap:wrap}.hero-description{font-size:14px}.hero-note{margin-top:26px}.photo-caption{font-size:15px;left:20px}.values-strip{padding:22px 5%;gap:15px}.values-strip>span{font-size:10px;gap:8px}.values-strip p{padding-right:20px}.section{padding:65px 5%}.service-grid{gap:16px}.service-content{padding:18px}.service-content h3{font-size:18px}.about{gap:7%}.contact{gap:5%}form{padding:23px}.header nav{gap:24px}.header{padding:0 5%}}@media(max-width:700px){html{scroll-padding-top:15px}.topbar{padding:10px 5%;font-size:8px}.topbar>a{font-size:9px}.topbar>span{max-width:200px;line-height:1.5}.header{height:85px}.brand,.brand img{height:80px;width:125px}.header-contact{margin-left:auto;margin-right:18px;font-size:10px;padding:12px;min-height:40px;gap:12px}.menu-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:0;padding:10px}.menu-toggle span{display:block;width:21px;height:2px;background:var(--navy)}.header nav{display:none;position:absolute;top:85px;left:0;right:0;padding:15px 6% 25px;background:var(--cream);border-bottom:1px solid var(--gray)}.header nav.open{display:flex;flex-direction:column;gap:6px}.header nav a.active:after{right:auto;width:25px}.hero{display:flex;flex-direction:column;padding:10px 5% 35px;gap:25px}.hero-copy{padding:20px 0 0}.eyebrow{font-size:9px;margin-bottom:20px}h1{font-size:clamp(43px,10vw,66px);letter-spacing:-2px}.hero-description{max-width:430px;line-height:1.8;margin-bottom:25px}.hero-actions{gap:23px}.hero-note{margin-top:23px}.hero-image{min-height:330px}.hero-index{bottom:14px;right:5%;font-size:7px}.photo-caption{bottom:24px}.values-strip{display:grid;grid-template-columns:1fr 1fr;gap:23px;padding:25px 5%}.values-strip p{border:0;font-size:13px}.values-strip>span{font-size:10px}.section{padding:55px 5%}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:20px}h2{font-size:34px}.service-grid{grid-template-columns:1fr;gap:25px}.service-photo{height:260px}.service-content{padding:24px}.service-content h3{font-size:23px}.service-content p{font-size:13px}.service-link{font-size:11px}.about{grid-template-columns:1fr;gap:40px}.about-image{height:360px;margin-right:18px}.about-stamp{right:-18px}.about-copy>p:not(.eyebrow){max-width:none}.steps{grid-template-columns:1fr;gap:22px;margin-top:32px}.steps h3{margin:13px 0 10px}.steps p{max-width:none;margin-bottom:0}.process>div:first-child{text-align:left}.process .eyebrow{justify-content:start}.contact{grid-template-columns:1fr;gap:35px}.contact h2{font-size:48px}.location{margin-top:25px}.contact-copy>p:not(.eyebrow){max-width:400px}.footer-top{flex-wrap:wrap;gap:20px}.footer-top p{order:3;width:100%;margin:0;font-size:19px}.footer-bottom{flex-wrap:wrap;line-height:1.8}.footer-bottom>span:nth-child(2){display:none}footer{padding:30px 5%}.form-row{gap:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Shared page navigation and comfortable touch targets. */
a { text-decoration: none; }
.header { position: sticky; top: 0; height: 96px; border-bottom: 1px solid #d9d5cd80; }
.header nav { gap: 8px; }
.header nav a { padding: 13px 19px; border-radius: 7px; transition: background .2s, color .2s; }
.header nav a.active { background: #e6ebe4; color: #254637; }
.header nav a.active::after { content: none; }
.header nav a:hover { background: #eceee7; }
.button { justify-content: center; border-radius: 7px; min-height: 48px; font-size: 13px; padding: 15px 23px; }
.text-link { min-height: 46px; padding: 12px 18px; border-radius: 7px; background: #e8ece5; transition: background .2s; }
.text-link:hover { color: var(--navy); background: #dae3d8; }
.hero-actions { gap: 14px; }
.service-card { border-radius: 10px; transition: box-shadow .2s, border-color .2s; }
.service-card:hover { border-color: var(--sage); box-shadow: 0 8px 25px #0a30480d; }
.service-card > a { display: block; height: 100%; }
.service-card > a:focus-visible { outline-offset: -4px; }
.service-link { display: inline-flex; border: none; background: #e6ebe4; padding: 10px 13px; border-radius: 5px; line-height: 1.5; }
.page-intro { padding-top: 68px; padding-bottom: 55px; max-width: 1100px; }
.page-intro h1 { font-size: clamp(42px, 5vw, 64px); }
.page-intro > p:last-child { max-width: 530px; color: var(--muted); font-size: 16px; line-height: 1.85; margin-bottom: 0; }
.page-services .services { padding-top: 16px; }
.page-services .services .section-heading { display: none; }
.page-cta { background: #e7ece5; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.page-cta .eyebrow { margin-bottom: 16px; }
.page-cta h2 { font-size: clamp(28px, 3vw, 40px); }
.page-cta p:last-child { font-size: 14px; color: #53675b; line-height: 1.7; margin-bottom: 0; }
.page-cta .button { flex-shrink: 0; }
.service-details { padding-top: 0; }
.detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.detail-grid article { border-top: 2px solid var(--sage); padding-top: 18px; }
.detail-grid h3 { font-size: 20px; font-weight: 500; }
.detail-grid p { font-size: 14px; color: var(--muted); line-height: 1.85; }
.detail-grid .detail-note { font-size: 12px; color: var(--navy); }
.contact { padding-top: 68px; padding-bottom: 68px; }
.contact h1 { font-size: clamp(44px, 5vw, 64px); }
.contact h1 em { color: #aec3b6; }
.contact-methods { display: grid; gap: 12px; max-width: 380px; }
.contact-phone, .contact-email { display: block; border: 0; margin: 0; padding: 17px 19px; background: #ffffff0c; border-radius: 8px; transition: background .2s; overflow-wrap: anywhere; }
.contact-phone { font-size: 23px; }
.contact-email { font-size: 15px; }
.contact-phone:hover, .contact-email:hover { background: #ffffff18; }
.contact-methods .contact-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .4px; color: #b8cabe; margin: 0 0 8px; }
form { border-radius: 10px; padding: 24px; width: 100%; max-width: 460px; justify-self: end; min-width: 0; }
form h3 { font-size: 20px; margin-bottom: 18px; }
form label { font-size: 12px; line-height: 1.5; margin-bottom: 12px; }
.optional { color: var(--muted); font-weight: 400; }
input, select, textarea { font-size: 16px; padding: 9px 10px; margin-top: 5px; min-height: 44px; border-radius: 6px; background: #fffdf9; line-height: 1.5; }
form textarea { height: 82px; min-height: 82px; }
form .button { min-height: 44px; padding: 12px 18px; }
input::placeholder, textarea::placeholder { color: #727978; opacity: 1; }
.form-note { font-size: 11px; line-height: 1.6; }
.footer-bottom { align-items: center; font-size: 11px; }
.footer-bottom nav a, .back-top { display: inline-flex; align-items: center; min-height: 44px; padding: 8px; border-radius: 5px; }
.footer-bottom nav a:hover, .back-top:hover { background: #e6ebe4; }
@media (max-width: 1000px) and (min-width: 701px) {
  .header { padding-left: 4%; padding-right: 4%; }
  .header nav a { padding: 13px; }
  .hero-actions { align-items: stretch; }
  .hero-actions .button, .hero-actions .text-link { padding: 13px 17px; }
  .contact { grid-template-columns: .9fr 1.1fr; gap: 4%; }
  .contact .form-row { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 95px; }
  .header { height: 80px; gap: 12px; padding: 0 5%; }
  .brand { order: 0; width: 112px; height: 76px; flex-shrink: 0; }
  .brand img { width: 112px; height: 76px; }
  .header-contact { order: 1; margin: 0 0 0 auto; padding: 12px 15px; font-size: 11px; min-height: 44px; }
  .menu-toggle { order: 2; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 10px; border-radius: 6px; }
  .menu-toggle:hover, .menu-toggle[aria-expanded="true"] { background: #e6ebe4; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .header nav { top: 79px; padding: 12px 5% 20px; box-shadow: 0 15px 20px #0a304814; max-height: calc(100dvh - 80px); overflow-y: auto; }
  .header nav.open { gap: 6px; }
  .header nav a { font-size: 16px; min-height: 48px; padding: 14px 17px; }
  .hero { padding-top: 20px; gap: 28px; }
  .hero-copy { padding-top: 10px; }
  h1 { font-size: clamp(40px, 10vw, 60px); line-height: 1.12; }
  .hero-description { font-size: 16px; line-height: 1.75; }
  .hero-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .hero-actions .button, .hero-actions .text-link { min-height: 50px; font-size: 12px; padding: 12px 10px; text-align: center; justify-content: center; }
  .hero-note { font-size: 11px; line-height: 1.6; }
  .hero-image { min-height: 0; height: 310px; border-radius: 9px; }
  .image-label { font-size: 7px; }
  .photo-caption { font-size: 15px; left: 18px; gap: 10px; }
  .photo-caption small { font-size: 7px; }
  .values-strip { column-gap: 12px; }
  .values-strip > span { font-size: 11px; line-height: 1.5; }
  .values-strip i { flex-shrink: 0; }
  .service-photo { height: 240px; }
  .service-content p { font-size: 14px; line-height: 1.8; }
  .service-link { font-size: 12px; }
  .page-intro { padding-top: 40px; padding-bottom: 38px; }
  .page-intro h1 { font-size: clamp(39px, 10vw, 56px); }
  .page-intro > p:last-child { font-size: 15px; }
  .about-image { height: 340px; }
  .about-copy > p:not(.eyebrow), .steps p { font-size: 15px; }
  .about-values { font-size: 14px; gap: 18px; }
  .page-cta { align-items: stretch; flex-direction: column; gap: 24px; }
  .detail-grid { grid-template-columns: 1fr; gap: 20px; }
  .service-details { padding-bottom: 10px; }
  .contact { padding-top: 38px; padding-bottom: 38px; gap: 32px; }
  .contact h1 { font-size: 46px; }
  .contact-copy > p:not(.eyebrow) { font-size: 15px; margin-bottom: 22px; }
  .contact-methods { max-width: none; }
  .contact-phone { font-size: 22px; }
  .contact-email { font-size: 16px; }
  .location { margin-top: 20px; font-size: 12px; }
  form { padding: 20px 18px; justify-self: center; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  form label { font-size: 13px; }
  form h3 { font-size: 20px; }
  .footer-bottom { gap: 8px; }
  .footer-bottom nav { width: 100%; gap: 14px; }
}
@media (max-width: 360px) {
  .header { gap: 5px; }
  .header-contact { padding: 11px; }
  .hero-actions { grid-template-columns: 1fr; }
  .hero-image { height: 280px; }
  .photo-caption { font-size: 13px; }
}

/* Homepage previews link to expanded, dedicated pages. */
.page-home .services { padding-bottom: 26px; }
.section-more { padding: 0 6% 65px; }
.home-about .about-image { height: 390px; }
.home-contact { align-items: center; }
.home-contact h2 { font-size: clamp(32px, 3.5vw, 48px); }
.light-button { background: var(--cream); color: var(--navy); border-color: var(--cream); }
.light-button:hover { background: #e6ebe4; }
.home-contact .contact-methods { max-width: none; }
.inline-action { margin-top: 30px; }
.service-detail { display: grid; grid-template-columns: 1.3fr 1fr; column-gap: 8%; row-gap: 30px; padding: 48px 0; border-top: 1px solid var(--gray); scroll-margin-top: 110px; }
.service-detail-image { grid-column: 1 / -1; height: clamp(240px, 30vw, 380px); overflow: hidden; border-radius: 10px; }
.service-detail-image img { height: 100%; object-position: center 45%; }
.service-detail .eyebrow { color: #536e5d; letter-spacing: 1px; }
.service-detail h2 { font-size: clamp(29px, 3vw, 40px); }
.service-detail p { font-size: 15px; line-height: 1.85; color: var(--muted); }
.service-detail .button { margin-top: 10px; }
.planning-card { background: #e9ede6; padding: 28px; border-radius: 10px; align-self: start; }
.planning-card h3 { font-size: 18px; font-weight: 500; margin-top: 0; }
.planning-card ul { padding-left: 20px; }
.planning-card li { font-size: 14px; line-height: 1.7; padding: 6px 0; }
.planning-card p { font-size: 12px; margin-bottom: 0; }
.faq-list { max-width: 850px; }
.faq-list details { border-bottom: 1px solid var(--gray); padding: 20px 0; }
.faq-list summary { cursor: pointer; font-size: 17px; line-height: 1.6; padding: 8px 0; }
.faq-list summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.faq-list p { color: var(--muted); font-size: 15px; line-height: 1.85; margin-bottom: 8px; }
.faq-list .text-link { padding: 3px 8px; min-height: 0; font-size: inherit; }
@media (max-width: 700px) {
  .section-more { padding: 0 5% 45px; }
  .home-about .about-image { height: 320px; }
  .service-detail { grid-template-columns: 1fr; gap: 24px; padding: 35px 0; scroll-margin-top: 95px; }
  .service-detail-image { height: 240px; }
  .planning-card { padding: 24px; }
  .home-contact .light-button { width: 100%; }
  .home-contact { gap: 28px; }
  .faq-list summary { font-size: 16px; }
}

/* Direct contact stays visible alongside the sticky navigation. */
html { scroll-padding-top: 180px; }
.header { height: auto; flex-wrap: wrap; column-gap: 12px; row-gap: 0; }
.header-contact-details {
  order: 3;
  flex: 0 0 100%;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px 28px;
  padding: 6px 0 10px;
  border-top: 1px solid var(--gray);
}
.header-contact-details a {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 7px;
  background: var(--navy);
  color: white;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
  text-decoration: none;
}
.header-contact-details a:hover { background: #184b67; }
.header-contact-label { color: #c9dbd0; font-size: 12px; font-weight: 400; }
@media (max-width: 700px) {
  html { scroll-padding-top: 210px; }
  .header nav { top: 100%; max-height: calc(100dvh - 200px); }
  .header-contact-details { gap: 6px; }
  .header-contact-details a { flex: 1 1 260px; font-size: 14px; padding: 9px 10px; }
}

/* Breadcrumbs remain readable on desktop and mobile. */
.breadcrumbs { padding: 22px 6% 0; font-size: 13px; }
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; align-items: center; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: 10px; }
.breadcrumbs li + li::before { content: "/"; color: var(--muted); }
.breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.breadcrumbs [aria-current] { color: var(--muted); }
.page-error .page-intro { min-height: 45vh; }
@media (max-width: 700px) { .breadcrumbs { padding-left: 5%; padding-right: 5%; } }

@media (max-width: 700px) { .menu-toggle { margin-left: auto; } }

/* Keep the services call-to-action aligned with the centered desktop grid. */
@media (min-width: 1500px) {
  .section-more {
    padding-left: max(6%, calc((100vw - 1320px) / 2));
    padding-right: max(6%, calc((100vw - 1320px) / 2));
  }
}

/* The service introduction and its action stay together at the top of the section. */
.page-home .services .section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 36px;
}
.services-heading-copy .services-intro {
  max-width: 470px;
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.75;
}
.services-cta {
  margin: 0 0 3px;
  padding: 0;
}
.services-cta .text-link {
  min-height: 46px;
  padding: 12px 15px;
  border: 1px solid var(--navy);
  border-radius: 3px;
}
.services-cta .text-link::after { content: "→"; font-size: 17px; line-height: 1; }

/* Service cards acknowledge pointer and keyboard interaction before navigation. */
.service-card { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.service-card.is-active,
.service-card:focus-within {
  transform: translateY(-7px);
  border-color: #9aaca0;
  box-shadow: 0 14px 28px rgba(10, 48, 72, .12);
}
.service-card.is-active .service-link,
.service-card:focus-within .service-link { color: var(--navy); }
.reveal-on-scroll { opacity: 0; transform: translateY(22px); transition: opacity .55s ease, transform .55s ease; }
.reveal-on-scroll.is-visible { opacity: 1; transform: none; }

@media (max-width: 700px) {
  .page-home .services .section-heading { grid-template-columns: 1fr; gap: 20px; }
  .services-heading-copy .services-intro { margin-top: 16px; font-size: 14px; }
  .services-cta { margin: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .service-card { transition: none; }
  .service-card.is-active,
  .service-card:focus-within { transform: none; }
}

/* Reserve real viewport space for the header; content cannot scroll behind it. */
html { height: 100%; scroll-padding-top: 0; }
body { height: 100vh; height: 100dvh; display: flex; flex-direction: column; overflow: hidden; }
.topbar, .header { flex-shrink: 0; }
.header { position: relative; top: auto; }
.page-content { flex: 1; min-height: 0; overflow: auto; scroll-behavior: smooth; scroll-padding-top: 16px; }
.service-detail { scroll-margin-top: 0; }
@media (max-width: 700px) {
  .header nav { position: static; order: 4; flex-basis: 100%; max-height: 30dvh; }
}
@media (max-height: 500px) {
  body { height: auto; min-height: 100dvh; overflow: auto; }
  .page-content { overflow: visible; }
}
@media (prefers-reduced-motion: reduce) { .page-content { scroll-behavior: auto; } }
/* Anchor positioning must not depend on the reveal animation's translation. */
.reveal-on-scroll:target { opacity: 1; transform: none; transition: none; }
@media (max-height: 500px) { html { scroll-padding-top: 16px; } }
