:root{--ink:#18312e;--forest:#164c42;--teal:#1d6758;--mint:#e8f2e9;--cream:#faf9f4;--gold:#f5bf5a;--muted:#60726b;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 Arial,Helvetica,sans-serif}a{color:inherit}img{max-width:100%;display:block}.wrap{width:min(1160px,calc(100% - 40px));margin:auto}.topbar{background:var(--ink);color:#fff;text-align:center;font-size:13px;padding:8px 20px;letter-spacing:.02em}.topbar a{font-weight:700;color:#f9d68b}.header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 4px 20px #112b2112}.nav{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:78px}.brand{text-decoration:none;display:flex;align-items:center;gap:11px;white-space:nowrap}.brand-icon{display:grid;place-items:center;background:var(--forest);color:var(--gold);width:43px;height:43px;border-radius:13px;font-size:25px;line-height:1}.brand-text{line-height:1.05;font-size:20px;font-weight:800;letter-spacing:-.5px}.brand-text span{display:block;color:var(--teal);font-size:11px;font-weight:700;letter-spacing:2.2px;margin-top:6px}.links{display:flex;align-items:center;gap:28px}.links a{text-decoration:none;font-weight:700;font-size:14px}.links a:hover,.links a[aria-current=page]{color:var(--teal)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;border:none;border-radius:10px;background:var(--gold);color:#172d27;padding:13px 19px;font-weight:800;cursor:pointer;box-shadow:0 5px 16px #533b1022}.btn:hover{filter:brightness(.96)}.btn-dark{background:var(--forest);color:#fff}.btn-outline{background:transparent;color:var(--forest);border:2px solid #bdd3c4;box-shadow:none}.menu-toggle{display:none;background:none;border:0;font-size:25px;color:var(--ink);cursor:pointer}.hero{background:linear-gradient(105deg,#092e27f7 0%,#153f35df 47%,#0c2e2070 100%),url('assets/loft-06.webp') center/cover;min-height:570px;color:#fff;display:flex;align-items:center}.hero-inner{padding:85px 0;max-width:760px}.eyebrow{display:inline-flex;align-items:center;gap:7px;text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:800;color:#f7d88c}.hero h1{font-size:clamp(37px,5.5vw,69px);line-height:1.08;letter-spacing:-2.2px;margin:17px 0 22px}.hero p{font-size:19px;line-height:1.7;color:#e4eee7;max-width:610px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}.hero .btn-outline{color:#fff;border-color:#bacdc1}.trust-points{display:flex;gap:22px;flex-wrap:wrap;color:#e7f2e8;font-size:13px;font-weight:700;margin-top:32px}.trust-points span:before{content:'✓';color:var(--gold);margin-right:9px}.strip{background:#e6efe8;border-bottom:1px solid #d5e2d9;padding:20px 0}.strip-items{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-weight:800;color:var(--forest);font-size:14px}.section{padding:83px 0}.section.soft{background:#edf4ed}.section-label{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--teal);font-weight:800}.section h2,.page-head h1{font-size:clamp(31px,4vw,46px);line-height:1.17;letter-spacing:-1.3px;margin:12px 0 19px}.lead{font-size:18px;color:#53675e;max-width:740px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:35px}.service{padding:30px;border-radius:18px;background:#fff;border:1px solid #dce9de;box-shadow:0 9px 28px #0e352111}.service .symbol{font-size:30px}.service h3{font-size:19px;line-height:1.3;margin:15px 0 10px}.service p{color:var(--muted);margin:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.photo{width:100%;height:440px;object-fit:cover;border-radius:20px}.ticks{padding:0;list-style:none}.ticks li{margin:11px 0;padding-left:29px;position:relative}.ticks li:before{content:'✓';position:absolute;left:0;color:var(--teal);font-weight:bold}.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-top:28px}.gallery img{height:260px;width:100%;object-fit:cover;border-radius:13px}.review-panel{margin-top:30px;background:white;border:1px solid #dce9de;border-radius:18px;padding:30px}.review-panel p{color:var(--muted)}.review-panel a{font-weight:800;color:var(--forest)}.cta-band{background:var(--forest);color:#fff;padding:62px 0}.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:25px}.cta-band h2{font-size:clamp(26px,4vw,40px);line-height:1.2;margin:0 0 10px}.cta-band p{color:#d8ebe0;margin:0}.footer{background:#102c28;color:#d5e8de;padding:48px 0 24px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.2fr;gap:40px}.footer h3{color:#fff;margin:0 0 12px}.footer a{color:#e0efe6;text-decoration:none}.footer a:hover{text-decoration:underline}.footer .foot-links{display:grid;gap:9px}.fine{border-top:1px solid #395049;margin-top:40px;padding-top:20px;color:#a7c3b5;font-size:12px}.page-head{background:#e8f1e9;padding:78px 0}.page-head p{max-width:680px;font-size:18px;color:#4f6357}.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-card{border-radius:20px;background:#fff;border:1px solid #dbe6df;padding:35px}.contact-card a{font-size:21px;color:var(--forest);font-weight:800;word-break:break-word}.notice{background:#fffaeb;border-left:4px solid #e8b84e;padding:20px;border-radius:7px;color:#674b22}.mobile-cta{display:none}.side-cta{position:fixed;right:0;top:45%;transform:translateY(-50%);z-index:40;writing-mode:vertical-rl;transform-origin:center;background:var(--gold);color:var(--ink);padding:19px 11px;text-decoration:none;font-weight:800;box-shadow:0 5px 25px #18312e33;border-radius:9px 0 0 9px}.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;z-index:100;background:white;padding:8px}@media(max-width:950px){.links{gap:14px}.grid{grid-template-columns:repeat(2,1fr)}.split{gap:30px}}@media(max-width:720px){.wrap{width:min(100% - 32px,1160px)}.topbar{font-size:11px}.nav{min-height:70px}.brand-text{font-size:18px}.menu-toggle{display:block}.nav>.btn{display:none}.links{display:none;position:absolute;top:70px;left:0;right:0;background:white;padding:18px 22px 25px;box-shadow:0 14px 19px #112b2117;flex-direction:column;align-items:stretch;gap:16px}.links.open{display:flex}.hero{min-height:570px;background-position:60% center}.hero-inner{padding:66px 0}.hero h1{letter-spacing:-1.1px}.hero p{font-size:17px}.trust-points{gap:12px}.strip-items{gap:10px;font-size:12px}.section{padding:59px 0}.grid,.split,.contact-cards,.footer-grid{grid-template-columns:1fr}.photo{height:300px}.gallery{grid-template-columns:1fr 1fr}.gallery img{height:175px}.gallery img:first-child{grid-column:span 2;height:240px}.cta-band .wrap{align-items:flex-start;flex-direction:column}.side-cta{display:none}.mobile-cta{display:flex;position:fixed;right:0;top:42%;z-index:45;writing-mode:vertical-rl;text-decoration:none;align-items:center;gap:7px;border-radius:10px 0 0 10px;background:var(--gold);padding:15px 10px;color:var(--ink);font-weight:900;box-shadow:0 5px 25px #142c2255}.mobile-cta span{font-size:12px}.footer{padding-bottom:55px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


/* Post-review improvements: accessibility, mobile layout, and touch targets. */
:root { color-scheme: light; }
html { scroll-padding-top: 90px; }
[id] { scroll-margin-top: 95px; }
a, button { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 3px solid #d78a00; outline-offset: 4px; }
.menu-toggle { min-width: 44px; min-height: 44px; border-radius: 8px; line-height: 1; }
.btn { min-height: 44px; text-align: center; }
.contact-card a { overflow-wrap: anywhere; }
.gallery picture, .split picture { display: block; min-width: 0; }
.gallery picture img, .split picture img { display: block; width: 100%; }
.gallery picture img { height: 260px; object-fit: cover; border-radius: 13px; }
.review-panel { max-width: 830px; }
.side-cta, .mobile-cta { min-width: 44px; min-height: 44px; }
@media (max-width: 720px) {
  .links { max-height: calc(100dvh - 75px); overflow-y: auto; }
  .links a { display: flex; align-items: center; min-height: 44px; }
  .gallery picture img { height: 175px; }
  .gallery picture:first-child { grid-column: span 2; }
  .gallery picture:first-child img { height: 240px; }
  .mobile-cta { top: auto; bottom: 90px; right: 0; writing-mode: horizontal-tb; padding: 11px 13px; border-radius: 10px 0 0 10px; max-width: 175px; }
  .mobile-cta span { font-size: 12px; }
  body { padding-bottom: 56px; }
  .footer { padding-bottom: 32px; }
}
@media (max-width: 360px) {
  .brand-text { font-size: 16px; }
  .brand-icon { width: 37px; height: 37px; }
  .hero h1 { font-size: 34px; }
  .contact-card { padding: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Areas we cover — desktop dropdown and mobile nested menu */
.footer-grid { grid-template-columns: 1.7fr 1fr 1fr 1.3fr; }
.footer-grid > div { min-width: 0; }
.footer-grid a { overflow-wrap: anywhere; }
.nav-dropdown { position: relative; flex: 0 0 auto; }
.nav-dropdown-toggle {
  display: inline-flex; align-items: center; gap: .4rem;
  border: 0; padding: 10px 0; background: transparent;
  color: var(--ink); font: inherit; font-size: 14px; font-weight: 700;
  cursor: pointer; white-space: nowrap;
}
.nav-dropdown-toggle:hover, .nav-dropdown-toggle.is-current,
.nav-dropdown-toggle[aria-expanded="true"] { color: var(--teal); }
.dropdown-chevron { display:inline-block; font-size:1.2em; line-height: 1; transition: transform .18s ease; }
.nav-dropdown-toggle[aria-expanded="true"] .dropdown-chevron { transform: rotate(180deg); }
.nav-dropdown-menu {
  display: none; position: absolute; top: calc(100% + 10px); left: 0;
  min-width: 210px; padding: 9px; background: #fff;
  border: 1px solid #dce9de; border-radius: 12px;
  box-shadow: 0 14px 35px #102b2526; z-index: 55;
}
.nav-dropdown-menu.is-open { display: grid; gap: 3px; }
.nav-dropdown-menu a {
  display: block; padding: 10px 13px; border-radius: 7px; white-space: nowrap;
  min-height: 44px;
}
.nav-dropdown-menu a:hover, .nav-dropdown-menu a[aria-current="page"] {
  background: var(--mint); color: var(--forest);
}
.nav-dropdown-toggle:focus-visible { outline: 3px solid #d78a00; outline-offset: 4px; }
@media (max-width: 950px) and (min-width: 721px) {
  .links { gap: 10px; }
  .links a, .nav-dropdown-toggle { font-size: 12px; }
  .nav { gap: 12px; }
  .nav > .btn { display: none; }
}
@media (max-width: 720px) {
  .footer-grid { grid-template-columns: 1fr; }
  .nav-dropdown { width: 100%; }
  .nav-dropdown-toggle {
    display: flex; width: 100%; justify-content: space-between; text-align: left;
    font-size: 14px; min-height: 44px; padding: 8px 0;
  }
  .nav-dropdown-menu {
    position: static; box-shadow: none; border: 0; border-left: 2px solid var(--teal);
    border-radius: 0; min-width: 0; margin: 1px 0 5px 8px; padding: 2px 0 2px 13px;
    background: transparent;
  }
  .nav-dropdown-menu a { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .dropdown-chevron { transition: none; }
}
/* internal links */
.internal-links{
  color: #0a9c7d;
  font-weight: bolder;
}


/* Four-item site navigation: Main Service / Other Services / Areas We Cover / Contact. */
/* Both menus reuse the existing .nav-dropdown and .nav-dropdown-menu styles. */
.links > a { display: inline-flex; align-items: center; min-height: 44px; }
.links > .nav-dropdown { min-width: 0; }
.nav-dropdown-menu { max-height: min(65vh, 460px); overflow-y: auto; }
/* Long service titles remain readable on narrow viewports. */
@media (max-width: 720px) {
  .links { gap: 8px; }
  .links > a { min-height: 44px; }
  .nav-dropdown-menu { max-height: none; overflow: visible; }
  .nav-dropdown-menu a { overflow-wrap: anywhere; }
}
