@charset "UTF-8";
:root {
  --navy:#142b40;
  --navy-deep:#102336;
  --blue:#214c69;
  --copper:#a45b36;
  --copper-light:#dfae87;
  --ink:#182b3d;
  --muted:#556575;
  --line:#dce2e7;
  --pale:#f2f5f7;
  --white:#fff;
  --wrap:1180px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:104px
}
body {
  margin:0;
  color:var(--ink);
  background:var(--white);
  font-family:Arial,Helvetica,sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit
}
img {
  display:block;
  width:100%;
  height:auto
}
svg {
  flex-shrink:0
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2,h3 {
  line-height:1.15;
  letter-spacing:-.035em
}
h1,h2 {
  font-weight:700
}
p {
  color:var(--muted)
}
.wrap {
  width:min(var(--wrap),calc(100% - 80px));
  margin-inline:auto
}
.section {
  padding-block:94px
}
.arrow {
  width:20px;
  height:20px;
  display:inline-block;
  vertical-align:middle
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid #db8f4d;
  outline-offset:5px
}
.skip-link {
  position:fixed;
  top:-90px;
  left:16px;
  padding:10px 20px;
  background:white;
  color:var(--navy);
  z-index:100
}
.skip-link:focus {
  top:12px
}
.eyebrow {
  font-size:11px;
  line-height:1.4;
  font-weight:700;
  letter-spacing:.15em;
  color:var(--copper);
  margin-bottom:18px
}
.eyebrow::before {
  content:"";
  display:inline-block;
  width:24px;
  height:2px;
  background:currentColor;
  vertical-align:middle;
  margin-right:10px
}
h2 {
  font-size:clamp(32px,3.2vw,44px)
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  min-height:52px;
  padding:13px 24px;
  background:var(--navy);
  border:1px solid transparent;
  color:white;
  font-size:14px;
  font-weight:700;
  line-height:1.4;
  transition:background .18s ease
}
.button:hover {
  background:var(--blue)
}
.button-small {
  min-height:44px;
  padding:11px 20px;
  gap:20px;
  font-size:13px
}
.button-copper {
  background:var(--copper)
}
.button-copper:hover {
  background:#8a4829
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:15px;
  font-size:14px;
  font-weight:700;
  color:var(--navy);
  border-bottom:1px solid var(--line);
  padding-bottom:7px
}
.text-link:hover {
  color:var(--copper)
}
.topbar {
  background:var(--pale);
  border-bottom:1px solid var(--line);
  font-size:12px;
  color:#526271
}
.topbar-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:40px;
  gap:20px
}
.topbar-inner>div {
  display:flex;
  gap:27px
}
.topbar a {
  white-space:nowrap
}
.topbar strong {
  margin-left:7px;
  color:var(--navy)
}
.topbar a:hover {
  color:var(--copper)
}
.header {
  position:sticky;
  top:0;
  z-index:30;
  background:white;
  border-bottom:1px solid var(--line)
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:94px;
  gap:25px
}
.brand {
  display:inline-flex;
  gap:12px;
  align-items:center;
  color:var(--navy);
  flex-shrink:0
}
.brand-icon {
  width:37px;
  height:46px
}
.brand strong {
  display:block;
  font-size:31px;
  line-height:1;
  font-weight:800;
  letter-spacing:.055em
}
.brand small {
  display:block;
  font-size:9px;
  letter-spacing:.18em;
  font-weight:700;
  margin-top:7px
}
.brand-icon {
  color:var(--copper)
}
nav {
  display:flex;
  align-items:center;
  gap:33px
}
nav>a {
  font-size:13px;
  font-weight:700
}
nav>a:not(.button):hover {
  color:var(--copper)
}
.menu-toggle {
  display:none
}
.hero {
  position:relative;
  isolation:isolate;
  background:var(--navy-deep);
  overflow:hidden;
  color:white
}
.hero-photo {
  position:absolute;
  inset:0 0 0 38%;
  z-index:-2
}
.hero-photo img {
  height:100%;
  object-fit:cover;
  object-position:55% 50%
}
.hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,#102336 0%,#102336 32%,rgba(16,35,54,.93) 45%,rgba(16,35,54,.36) 76%,rgba(16,35,54,.12) 100%)
}
.hero-inner {
  min-height:526px;
  display:flex;
  align-items:center;
  padding-block:70px
}
.hero-copy {
  width:650px;
  max-width:67%
}
.hero .eyebrow {
  color:var(--copper-light);
  margin-bottom:25px
}
h1 {
  font-size:clamp(42px,4.5vw,62px);
  letter-spacing:-.045em;
  line-height:1.08
}
.hero h1 span {
  color:white
}
.hero-description {
  max-width:465px;
  color:#d8e2e9;
  font-size:17px;
  line-height:1.75;
  margin-top:24px
}
.hero-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:23px;
  margin-top:31px
}
.hero-secondary {
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:white;
  font-weight:700;
  font-size:13px
}
.hero-secondary:hover {
  color:var(--copper-light)
}
.hero-contact {
  font-size:12px;
  color:#c3d0da;
  margin-top:24px
}
.hero-contact a {
  color:white;
  border-bottom:1px solid #728290
}
.hero-bottom {
  background:rgba(16,35,54,.87);
  border-top:1px solid #ffffff26
}
.hero-services {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.hero-services a {
  display:flex;
  align-items:center;
  gap:16px;
  min-height:76px;
  font-weight:700;
  font-size:14px;
  padding-right:25px
}
.hero-services a+a {
  border-left:1px solid #ffffff26;
  padding-left:32px
}
.hero-services span {
  font-size:10px;
  color:var(--copper-light);
  letter-spacing:.08em
}
.hero-services .arrow {
  margin-left:auto;
  width:18px;
  color:#bbcad5
}
.hero-services a:hover {
  color:var(--copper-light)
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:50px;
  margin-bottom:40px
}
.section-heading>p {
  max-width:330px;
  font-size:15px;
  line-height:1.8;
  padding-bottom:4px
}
.service-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:27px
}
.service-card {
  border:1px solid var(--line);
  scroll-margin-top:120px;
  display:flex;
  flex-direction:column
}
.service-image {
  height:224px;
  position:relative;
  overflow:hidden
}
.service-image img {
  height:100%;
  object-fit:cover
}
.service-card:nth-child(3) .service-image img {
  object-position:50% 60%
}
.service-label {
  position:absolute;
  bottom:0;
  left:0;
  display:block;
  background:var(--navy);
  padding:10px 18px;
  color:white;
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase
}
.service-body {
  padding:27px 27px 24px;
  display:flex;
  flex-direction:column;
  flex:1
}
.service-body h3 {
  font-size:23px;
  letter-spacing:-.025em
}
.service-body>p {
  font-size:14px;
  line-height:1.8;
  margin-top:15px
}
.service-body ul {
  list-style:none;
  margin:20px 0 25px;
  padding:0;
  font-size:13px;
  color:#435666;
  line-height:1.6
}
.service-body li {
  position:relative;
  padding-left:15px;
  margin-block:8px
}
.service-body li::before {
  content:"";
  position:absolute;
  left:0;
  top:.65em;
  width:5px;
  height:5px;
  background:var(--copper)
}
.service-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:auto;
  padding-top:19px;
  border-top:1px solid var(--line);
  font-weight:700;
  font-size:12px
}
.service-link:hover {
  color:var(--copper)
}
.service-link .arrow {
  width:18px
}
.service-note {
  text-align:center;
  font-size:12px;
  margin-top:27px
}
.approach {
  background:var(--pale);
  padding-block:86px
}
.approach-inner {
  display:grid;
  grid-template-columns:.9fr 1fr;
  gap:86px;
  align-items:center
}
.approach-photo {
  position:relative;
  align-self:stretch;
  min-height:520px
}
.approach-photo img {
  height:100%;
  max-height:600px;
  object-fit:cover;
  object-position:50% 58%
}
.approach-photo figcaption {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  background:rgba(20,43,64,.95);
  color:white;
  padding:19px 24px;
  font-size:12px;
  line-height:1.7
}
.approach-intro {
  font-size:15px;
  line-height:1.8;
  margin-top:22px;
  max-width:440px
}
.steps {
  list-style:none;
  padding:0;
  margin:27px 0
}
.steps li {
  display:flex;
  gap:20px;
  padding-block:20px;
  border-top:1px solid #d4dde4
}
.steps li>span {
  font-size:11px;
  letter-spacing:.07em;
  font-weight:700;
  color:var(--copper);
  padding-top:3px
}
.steps h3 {
  font-size:17px;
  letter-spacing:-.02em
}
.steps p {
  font-size:13px;
  line-height:1.75;
  margin-top:7px
}
.urgent {
  background:var(--navy);
  color:white;
  padding-block:55px
}
.urgent-inner {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  align-items:center;
  gap:80px
}
.urgent .eyebrow {
  color:var(--copper-light);
  margin-bottom:17px
}
.urgent h2 {
  font-size:33px;
  line-height:1.2
}
.urgent-inner>div>p:last-child {
  color:#c2cfd9;
  font-size:13px;
  margin-top:16px
}
.urgent-contact {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 26px;
  padding-left:45px;
  border-left:1px solid #ffffff30
}
.urgent-contact>a {
  display:flex;
  align-items:center;
  gap:12px;
  white-space:nowrap
}
.urgent-contact>a>svg {
  width:24px;
  height:24px;
  color:var(--copper-light)
}
.urgent-contact small {
  display:block;
  font-size:11px;
  color:#c9d4dc;
  margin-bottom:4px
}
.urgent-contact strong {
  display:block;
  font-size:18px;
  line-height:1.5;
  letter-spacing:-.02em
}
.urgent-contact a:hover strong {
  color:var(--copper-light)
}
.urgent-contact>p {
  grid-column:1/-1;
  font-size:11px!important;
  margin-top:0!important
}
.faq {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:95px
}
.faq-intro>p:not(.eyebrow) {
  font-size:14px;
  margin-block:22px
}
.faq-intro .eyebrow {
  font-size:10px
}
.faq-list {
  border-top:1px solid var(--line)
}
details {
  border-bottom:1px solid var(--line)
}
summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding-block:23px;
  font-size:15px;
  font-weight:700;
  line-height:1.5;
  cursor:pointer;
  list-style:none
}
summary::-webkit-details-marker {
  display:none
}
summary>span {
  font-size:23px;
  font-weight:400;
  color:var(--copper);
  line-height:1
}
details[open] summary>span {
  transform:rotate(45deg)
}
details>p {
  font-size:14px;
  line-height:1.85;
  padding:0 32px 23px 0
}
.contact {
  border-top:1px solid var(--line);
  background:var(--pale);
  padding-block:85px
}
.contact-inner {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:90px
}
.contact-intro>p:not(.eyebrow) {
  font-size:15px;
  margin-top:23px;
  max-width:375px
}
.enquiry-note {
  margin-top:31px;
  padding-left:19px;
  border-left:2px solid var(--copper)
}
.enquiry-note h3 {
  font-size:14px;
  letter-spacing:0
}
.enquiry-note p {
  font-size:13px;
  line-height:1.8;
  max-width:340px;
  margin-top:9px
}
.contact-intro .contact-availability {
  font-size:11px!important;
  color:#62717e;
  margin-top:25px!important
}
.contact-grid {
  display:grid;
  gap:16px
}
.contact-card {
  background:white;
  border:1px solid var(--line);
  padding:27px 30px
}
.contact-person {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:15px
}
.contact-person h3 {
  font-size:20px
}
.contact-person p {
  font-size:11px
}
.phone-number {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:29px;
  letter-spacing:-.025em;
  font-weight:700;
  line-height:1.4;
  margin-top:11px
}
.phone-number>svg {
  width:22px;
  height:22px;
  color:var(--copper)
}
.phone-number:hover {
  color:var(--copper)
}
.contact-actions {
  display:flex;
  align-items:center;
  gap:25px;
  margin-top:19px
}
.sms-link {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  font-weight:700
}
.sms-link:hover {
  color:var(--copper)
}
.sms-link .arrow {
  width:17px
}
.service-context {
  font-size:13px;
  color:var(--navy);
  background:#e5edf2;
  border-left:2px solid var(--blue);
  padding:12px 17px;
  margin-bottom:16px
}
footer {
  background:var(--navy-deep);
  color:#d0dbe3;
  padding-block:57px 23px
}
.footer-top {
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:70px;
  padding-bottom:40px
}
.footer-brand {
  color:white
}
.footer-brand .brand-icon {
  color:var(--copper-light)
}
.footer-brand strong {
  font-size:27px
}
.footer-brand small {
  font-size:8px
}
.footer-top>div>p {
  font-size:12px;
  line-height:1.9;
  color:#aebfcb;
  margin-top:20px
}
.footer-top h2 {
  color:white;
  font-size:12px;
  letter-spacing:.04em;
  margin-bottom:19px
}
.footer-top>div>a:not(.brand) {
  display:block;
  font-size:12px;
  margin-block:9px;
  color:#b9c9d4
}
.footer-top>div>a:hover {
  color:white
}
.footer-top .arrow {
  width:15px;
  margin-left:5px
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid #ffffff20;
  padding-top:22px;
  font-size:10px
}
.footer-bottom p {
  color:#adbfcc
}
.footer-bottom>div {
  display:flex;
  gap:23px
}
.footer-bottom a:hover {
  color:white
}
.photography-note {
  font-size:9px;
  color:#a5b7c5;
  margin-top:12px
}
.mobile-callbar {
  display:none
}
.legal {
  max-width:840px;
  padding-block:65px 90px
}
.legal h1 {
  font-size:44px;
  margin-bottom:24px
}
.legal h2 {
  font-size:22px;
  margin:32px 0 12px
}
.legal p {
  font-size:15px;
  line-height:1.9;
  margin-block:15px
}
.legal p>a {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px
}
.legal .button {
  margin-top:20px
}
@media(min-width:1600px) {
  .hero-photo {
    left:42%
  }
  .hero-inner {
    min-height:560px
  }
}
@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 56px)
  }
  nav {
    gap:24px
  }
  .hero-copy {
    max-width:72%
  }
  .hero h1 {
    font-size:52px
  }
  .hero-inner {
    min-height:510px
  }
  .hero-services a {
    font-size:12px;
    gap:10px
  }
  .hero-services a+a {
    padding-left:22px
  }
  .service-grid {
    gap:18px
  }
  .service-body {
    padding:23px 20px
  }
  .service-body h3 {
    font-size:20px
  }
  .service-image {
    height:200px
  }
  .approach-inner {
    gap:50px
  }
  .urgent-inner {
    gap:35px
  }
  .urgent-contact {
    padding-left:27px;
    gap:20px 15px
  }
  .urgent-contact strong {
    font-size:16px
  }
  .urgent-contact>a>svg {
    width:19px
  }
  .faq {
    gap:50px
  }
  .contact-inner {
    gap:50px
  }
  .contact-person {
    display:block
  }
  .contact-person p {
    margin-top:5px
  }
  .footer-top {
    gap:40px
  }
}
@media(max-width:800px) {
  .topbar-inner>span {
    display:none
  }
  .topbar-inner {
    justify-content:center;
    min-height:35px
  }
  .header-inner {
    height:80px
  }
  .brand strong {
    font-size:27px
  }
  .brand small {
    font-size:8px
  }
  .brand-icon {
    width:32px;
    height:39px
  }
  nav {
    gap:19px
  }
  nav>a {
    font-size:12px
  }
  nav .button {
    padding:10px 13px;
    gap:10px
  }
  .hero-copy {
    max-width:80%
  }
  .hero h1 {
    font-size:46px
  }
  .hero-photo {
    left:28%
  }
  .hero::before {
    background:linear-gradient(90deg,#102336 0%,rgba(16,35,54,.96) 38%,rgba(16,35,54,.5) 100%)
  }
  .hero-inner {
    min-height:480px;
    padding-block:55px
  }
  .hero-description {
    font-size:16px;
    max-width:440px
  }
  .hero-services a {
    font-size:11px;
    gap:8px;
    min-height:68px;
    padding-right:14px
  }
  .hero-services a+a {
    padding-left:14px
  }
  .hero-services .arrow {
    width:15px
  }
  .section {
    padding-block:65px
  }
  .section-heading {
    align-items:flex-start;
    gap:25px
  }
  .section-heading>p {
    max-width:250px;
    font-size:13px
  }
  .section-heading h2 {
    font-size:33px
  }
  .service-grid {
    grid-template-columns:1fr
  }
  .service-card {
    display:grid;
    grid-template-columns:.8fr 1.2fr
  }
  .service-image {
    height:100%;
    min-height:290px
  }
  .service-body {
    padding:26px
  }
  .service-body h3 {
    font-size:24px
  }
  .service-body>p {
    margin-top:12px
  }
  .service-body ul {
    margin:12px 0 19px
  }
  .approach {
    padding-block:65px
  }
  .approach-inner {
    gap:34px;
    grid-template-columns:.8fr 1fr
  }
  .approach-photo {
    min-height:510px
  }
  .approach-photo figcaption {
    padding:18px;
    font-size:11px
  }
  .approach h2 {
    font-size:32px
  }
  .approach-intro {
    font-size:13px
  }
  .steps {
    margin-block:20px
  }
  .steps li {
    padding-block:16px;
    gap:13px
  }
  .steps h3 {
    font-size:15px
  }
  .steps p {
    font-size:12px
  }
  .urgent-inner {
    grid-template-columns:1fr;
    gap:30px
  }
  .urgent-contact {
    padding:25px 0 0;
    border-left:0;
    border-top:1px solid #ffffff30;
    max-width:500px;
    gap:20px 45px
  }
  .urgent-contact strong {
    font-size:20px
  }
  .urgent-contact>a>svg {
    width:24px
  }
  .faq {
    grid-template-columns:1fr;
    gap:30px
  }
  .faq-intro h2 br {
    display:none
  }
  .faq-intro>p:not(.eyebrow) {
    margin-block:16px
  }
  .faq-intro .text-link {
    margin-bottom:8px
  }
  .contact {
    padding-block:65px
  }
  .contact-inner {
    gap:36px;
    grid-template-columns:.9fr 1.1fr
  }
  .contact h2 {
    font-size:33px
  }
  .contact-card {
    padding:24px
  }
  .phone-number {
    font-size:25px
  }
  .contact-actions {
    gap:16px
  }
  .contact-actions .button {
    padding:10px 14px;
    gap:10px
  }
  .contact-actions .sms-link {
    gap:6px
  }
  .footer-top {
    grid-template-columns:1.2fr 1fr 1fr;
    gap:25px
  }
  .footer-brand {
    gap:8px
  }
  .footer-brand strong {
    font-size:24px
  }
  .footer-brand .brand-icon {
    width:28px
  }
  .footer-brand small {
    font-size:7px
  }
}
@media(max-width:640px) {
  html {
    scroll-padding-top:90px
  }
  body {
    padding-bottom:60px
  }
  .wrap {
    width:calc(100% - 40px)
  }
  .topbar {
    font-size:10px
  }
  .topbar-inner>div {
    gap:17px
  }
  .topbar strong {
    margin-left:4px
  }
  .header-inner {
    height:76px
  }
  .brand {
    gap:10px
  }
  .brand strong {
    font-size:27px
  }
  .brand small {
    font-size:8px
  }
  .menu-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:43px;
    height:43px;
    padding:11px;
    background:white;
    border:1px solid var(--line);
    color:var(--navy);
    cursor:pointer
  }
  .menu-toggle span {
    display:block;
    height:2px;
    background:currentColor;
    width:100%
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform:translateY(7px) rotate(45deg)
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity:0
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform:translateY(-7px) rotate(-45deg)
  }
  nav {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:white;
    padding:17px 20px 23px;
    border-bottom:1px solid var(--line);
    box-shadow:0 8px 12px #142b4010
  }
  nav.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0
  }
  nav>a {
    padding:13px 0;
    font-size:14px;
    border-bottom:1px solid var(--line)
  }
  nav .button {
    margin-top:15px;
    padding:13px 20px
  }
  .hero-photo {
    inset:0
  }
  .hero-photo img {
    object-position:60% 50%
  }
  .hero::before {
    background:linear-gradient(90deg,rgba(16,35,54,.97),rgba(16,35,54,.8))
  }
  .hero-inner {
    min-height:470px;
    padding-block:54px 47px
  }
  .hero-copy {
    width:100%;
    max-width:100%
  }
  .hero .eyebrow {
    font-size:9px;
    letter-spacing:.11em;
    margin-bottom:23px
  }
  .hero h1 {
    font-size:clamp(33px,8.8vw,48px);
    line-height:1.12;
    max-width:500px
  }
  .hero-description {
    font-size:15px;
    line-height:1.8;
    max-width:410px;
    margin-top:21px
  }
  .hero-actions {
    margin-top:27px;
    gap:20px
  }
  .hero-actions .button {
    font-size:12px;
    gap:16px;
    min-height:48px;
    padding:13px 18px
  }
  .hero-secondary {
    font-size:12px
  }
  .hero-contact {
    margin-top:25px;
    font-size:11px
  }
  .hero-services {
    grid-template-columns:1fr
  }
  .hero-services a {
    min-height:49px;
    font-size:12px;
    padding-right:0
  }
  .hero-services a+a {
    border-left:0;
    border-top:1px solid #ffffff20;
    padding-left:0
  }
  .hero-services span {
    margin-right:9px;
    font-size:9px
  }
  .hero-services .arrow {
    width:17px
  }
  .section {
    padding-block:55px
  }
  .eyebrow {
    font-size:10px;
    margin-bottom:16px
  }
  h2 {
    font-size:33px
  }
  .section-heading {
    display:block;
    margin-bottom:27px
  }
  .section-heading>p {
    max-width:360px;
    margin-top:20px;
    font-size:14px
  }
  .section-heading h2 {
    font-size:34px
  }
  .service-grid {
    gap:24px
  }
  .service-card {
    display:flex
  }
  .service-image {
    height:215px;
    min-height:0
  }
  .service-body {
    padding:25px
  }
  .service-body h3 {
    font-size:23px
  }
  .service-body>p {
    font-size:14px
  }
  .service-body ul {
    font-size:13px;
    margin:15px 0 22px
  }
  .service-body li {
    margin-block:9px
  }
  .service-link {
    font-size:12px
  }
  .service-note {
    text-align:left;
    line-height:1.85;
    font-size:11px;
    margin-top:23px
  }
  .approach {
    padding-block:55px
  }
  .approach-inner {
    grid-template-columns:1fr;
    gap:33px
  }
  .approach-photo {
    min-height:0;
    height:320px
  }
  .approach-photo img {
    object-position:50% 60%
  }
  .approach-photo figcaption {
    padding:17px 20px
  }
  .approach h2 {
    font-size:34px
  }
  .approach-intro {
    font-size:14px;
    margin-top:19px
  }
  .steps {
    margin-block:25px
  }
  .steps li {
    gap:20px;
    padding-block:20px
  }
  .steps h3 {
    font-size:17px
  }
  .steps p {
    font-size:13px
  }
  .urgent {
    padding-block:44px
  }
  .urgent h2 {
    font-size:29px
  }
  .urgent h2 br {
    display:none
  }
  .urgent-inner {
    gap:26px
  }
  .urgent-contact {
    gap:21px 15px
  }
  .urgent-contact strong {
    font-size:18px
  }
  .urgent-contact>a {
    gap:10px
  }
  .urgent-contact>a>svg {
    width:20px
  }
  .urgent-contact>p {
    font-size:10px!important
  }
  .faq {
    gap:27px
  }
  .faq-intro h2 {
    font-size:33px
  }
  .faq-intro h2 br {
    display:inline
  }
  .faq-intro .text-link {
    font-size:13px
  }
  summary {
    font-size:14px;
    padding-block:21px
  }
  details>p {
    font-size:13px;
    padding-right:10px
  }
  .contact {
    padding-block:55px
  }
  .contact-inner {
    grid-template-columns:1fr;
    gap:31px
  }
  .contact h2 {
    font-size:34px
  }
  .contact-intro>p:not(.eyebrow) {
    font-size:14px;
    margin-top:19px
  }
  .enquiry-note {
    margin-top:25px
  }
  .contact-card {
    padding:26px
  }
  .contact-person {
    display:flex
  }
  .contact-person p {
    font-size:10px;
    margin:0
  }
  .phone-number {
    font-size:29px;
    margin-top:15px
  }
  .contact-actions {
    gap:24px;
    margin-top:20px
  }
  .contact-actions .button {
    padding:11px 19px;
    gap:19px
  }
  .footer-top {
    grid-template-columns:1fr 1fr;
    gap:32px 20px;
    padding-bottom:31px
  }
  .footer-top>div:first-child {
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px
  }
  .footer-top>div>p {
    font-size:10px;
    margin-top:0
  }
  .footer-brand strong {
    font-size:24px
  }
  .footer-brand small {
    font-size:7px
  }
  .footer-top h2 {
    font-size:11px;
    margin-bottom:16px
  }
  .footer-top>div>a:not(.brand) {
    font-size:11px
  }
  .footer-bottom {
    display:block;
    font-size:9px
  }
  .footer-bottom>div {
    margin-top:15px;
    gap:23px
  }
  .photography-note {
    font-size:8px;
    line-height:1.9;
    max-width:300px;
    margin-left:20px
  }
  footer {
    padding-block:42px 23px
  }
  .mobile-callbar {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:40;
    display:grid;
    grid-template-columns:1fr 1fr;
    box-shadow:0 -2px 10px #10233618;
    padding-bottom:env(safe-area-inset-bottom);
    background:var(--navy)
  }
  .mobile-callbar>a {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:60px;
    background:var(--navy);
    color:white;
    font-size:13px;
    font-weight:700
  }
  .mobile-callbar>a+a {
    background:var(--blue)
  }
  .mobile-callbar svg {
    width:19px;
    height:19px
  }
  .legal {
    padding-block:45px 65px
  }
  .legal h1 {
    font-size:34px
  }
}
@media(max-width:359px) {
  .wrap {
    width:calc(100% - 32px)
  }
  .topbar {
    font-size:9px
  }
  .topbar-inner>div {
    gap:12px
  }
  .hero h1 {
    font-size:32px
  }
  .hero-actions {
    align-items:flex-start;
    flex-direction:column;
    gap:18px
  }
  .hero-inner {
    padding-block:44px
  }
  .service-body {
    padding:22px
  }
  .contact-card {
    padding:22px
  }
  .contact-person {
    display:block
  }
  .contact-person p {
    margin-top:5px
  }
  .urgent-contact {
    gap:20px 12px
  }
  .urgent-contact>a>svg {
    display:none
  }
  .urgent-contact strong {
    font-size:17px
  }
  .footer-top>div:first-child {
    display:block
  }
  .footer-top>div>p {
    margin-top:17px
  }
  .photography-note {
    margin-left:16px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important
  }
}

/* Dedicated service number uses the same layout on desktop and mobile. */
.urgent-contact-dedicated {
  grid-template-columns: minmax(0, 1fr);
}
.urgent-contact-dedicated strong {
  font-size: 32px;
}
.contact-availability a {
  color: var(--navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.faq-list details p a {
  color: var(--navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Contact hierarchy: a dedicated emergency line and equal team contacts. */
.header-inner { gap: 28px; }
.header-inner > .brand { order: 0; }
.header-inner > nav { order: 1; margin-left: auto; gap: 25px; }
.header-inner > .header-emergency { order: 2; }
.header-inner > .menu-toggle { order: 3; }
.header-emergency { display: flex; align-items: center; gap: 12px; flex-shrink: 0; color: var(--copper); padding-left: 25px; border-left: 1px solid var(--line); }
.header-phone-icon { width: 39px; height: 39px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #f7eee8; }
.header-phone-icon svg { width: 21px; height: 21px; }
.header-emergency small { display: block; font-size: 9px; font-weight: 700; letter-spacing: .1em; margin-bottom: 4px; }
.header-emergency strong { display: block; font-size: 22px; line-height: 1.2; letter-spacing: -.02em; }
.header-emergency:hover { color: #874525; }
.topbar-general { color: var(--navy); font-weight: 700; }
.topbar .topbar-emergency { display: none; }
.contact .contact-inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.contact-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 60px; margin-bottom: 32px; }
.contact-heading > p { font-size: 14px; line-height: 1.8; max-width: 460px; justify-self: end; }
.contact .contact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.contact .contact-card { padding: 28px; }
.contact .contact-person { display: block; }
.contact .contact-person h3 { font-size: 19px; letter-spacing: -.02em; }
.contact .phone-number { font-size: 26px; white-space: nowrap; gap: 11px; margin-top: 18px; }
.contact .phone-number > svg { width: 20px; height: 20px; }
.contact .contact-actions { display: flex; align-items: center; gap: 24px; margin-top: 24px; }
.contact .contact-actions .button { min-width: 80px; min-height: 44px; padding: 11px 20px; }
.contact .sms-link { min-height: 44px; display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: 4px; }
.contact-emergency { display: flex; justify-content: space-between; align-items: center; gap: 35px; background: var(--navy); color: white; border-left: 4px solid var(--copper); padding: 29px 32px; margin-top: 24px; }
.contact-emergency-copy { display: flex; align-items: center; gap: 18px; }
.emergency-phone-icon { width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; background: #ffffff0f; border: 1px solid #ffffff26; border-radius: 50%; flex-shrink: 0; }
.emergency-phone-icon svg { width: 22px; height: 22px; color: var(--copper-light); }
.contact-emergency h3 { font-size: 22px; line-height: 1.3; }
.contact-emergency p { font-size: 13px; color: #d0dce4; margin-top: 7px; }
.contact-emergency > a { flex-shrink: 0; }
.contact-emergency > a small { display: block; color: #c6d4df; font-size: 11px; margin-bottom: 4px; }
.contact-emergency > a strong { display: block; font-size: 32px; line-height: 1.3; white-space: nowrap; letter-spacing: -.025em; }
.contact-emergency > a:hover strong { color: var(--copper-light); }
.contact-terms { font-size: 11px; line-height: 1.8; margin-top: 15px; }
@media(max-width: 1100px) {
  .header-inner { gap: 20px; }
  .header-inner > nav { gap: 19px; }
  .header-emergency { padding-left: 18px; gap: 9px; }
  .header-phone-icon { display: none; }
  .contact .contact-card { padding: 23px; }
  .contact .phone-number { font-size: 24px; gap: 8px; }
}
@media(max-width: 1000px) {
  .header-inner { position: relative; }
  .header-inner > .header-emergency { margin-left: auto; border-left: 0; padding-left: 0; }
  .header .menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 43px; height: 43px; padding: 11px; background: white; border: 1px solid var(--line); color: var(--navy); cursor: pointer; }
  .header .menu-toggle span { display: block; height: 2px; background: currentColor; width: 100%; }
  .header .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .header .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .header .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .header nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: white; padding: 17px 20px 23px; margin: 0; border: 1px solid var(--line); box-shadow: 0 8px 12px #142b4010; }
  .header nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .header nav > a { padding: 13px 0; font-size: 14px; border-bottom: 1px solid var(--line); }
  .header nav > .button { margin-top: 15px; padding: 13px 20px; }
}
@media(max-width: 900px) {
  .contact-heading { grid-template-columns: minmax(0, 1fr); gap: 18px; margin-bottom: 27px; }
  .contact-heading > p { justify-self: start; max-width: 600px; }
  .contact .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 0; border: 1px solid var(--line); }
  .contact .contact-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 5px 20px; padding: 21px 25px; border: 0; border-bottom: 1px solid var(--line); }
  .contact .contact-card:last-child { border-bottom: 0; }
  .contact .contact-person { grid-column: 1; grid-row: 1; }
  .contact .contact-person h3 { font-size: 15px; }
  .contact .phone-number { grid-column: 1; grid-row: 2; font-size: 24px; margin: 0; }
  .contact .phone-number > svg { display: none; }
  .contact .contact-actions { grid-column: 2; grid-row: 1 / 3; gap: 20px; margin: 0; }
  .contact-emergency { padding: 25px; gap: 25px; }
  .contact-emergency h3 { font-size: 19px; }
  .contact-emergency > a strong { font-size: 28px; }
}
@media(max-width: 640px) {
  .header-inner > .header-emergency { display: none; }
  .header-inner > .menu-toggle { margin-left: auto; }
  .topbar .topbar-general { display: none; }
  .topbar .topbar-emergency { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 44px; font-size: 11px; }
  .topbar .topbar-emergency strong { margin: 0; font-size: 15px; color: var(--copper); }
  .contact-heading h2 { font-size: 32px; }
  .contact .contact-card { padding: 18px; gap: 4px 15px; }
  .contact .contact-person h3 { font-size: 14px; }
  .contact .phone-number { font-size: 21px; }
  .contact .contact-actions { gap: 12px; }
  .contact .contact-actions .button { min-width: 55px; padding: 11px 14px; font-size: 12px; }
  .contact .sms-link { font-size: 12px; }
  .contact-emergency { display: block; padding: 24px; }
  .contact-emergency-copy { gap: 13px; }
  .emergency-phone-icon { width: 36px; height: 36px; }
  .emergency-phone-icon svg { width: 18px; height: 18px; }
  .contact-emergency h3 { font-size: 18px; }
  .contact-emergency p { font-size: 12px; }
  .contact-emergency > a { display: block; padding: 15px 0 0; }
  .contact-emergency > a strong { font-size: 30px; }
  .contact-emergency > a small { margin-top: 5px; }
  .mobile-callbar > a:first-child { background: var(--copper); }
  .mobile-callbar > a + a { background: var(--navy); }
  .mobile-callbar > a { font-size: 12px; gap: 8px; }
  .mobile-callbar svg { width: 17px; height: 17px; }
}
@media(max-width: 359px) {
  .contact .contact-card { padding: 16px 13px; gap: 4px 9px; }
  .contact .phone-number { font-size: 19px; }
  .contact .contact-actions { gap: 9px; }
  .contact .contact-actions .button { min-width: 49px; padding-inline: 10px; }
  .contact-emergency { padding: 22px 18px; }
}
