:root{
  --ink:#0b0b0c;
  --ink-soft:#17161a;
  --paper:#f7f4ee;
  --paper-dim:#efe8d9;
  --white:#ffffff;
  --red:#c81e2c;
  --red-dim:#8f1520;
  --timber:#b8804a;
  --brass:#d9a441;
  --steel:#7a756c;
}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
}
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4,h5{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.01em; }
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:.8rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--red); display:flex; align-items:center; gap:10px; margin-bottom:14px;
}
.eyebrow::before{ content:''; width:22px; height:2px; background:var(--red); display:inline-block; }

.btn-brand{ background:var(--red); border-color:var(--red); color:#fff; font-family:'IBM Plex Mono',monospace; letter-spacing:.05em; text-transform:uppercase; }
.btn-brand:hover{ background:var(--white); border-color:var(--red); color:var(--red); }
.btn-outline-brand{ border:2px solid var(--red); color:var(--red); font-family:'IBM Plex Mono',monospace; letter-spacing:.05em; text-transform:uppercase; }
.btn-outline-brand:hover{ background:var(--red); color:#fff; }
.btn-wa{ background:#1f8a4c; border-color:#1f8a4c; color:#fff; font-family:'IBM Plex Mono',monospace; letter-spacing:.05em; text-transform:uppercase; }
.btn-wa:hover{ background:var(--white); color:#1f8a4c; }

/* Navbar — the one dark element on the site */
.navbar{ background:rgba(11,11,12,.94); backdrop-filter:blur(8px); border-bottom:1px solid rgba(243,238,228,.14); }
.navbar-brand img{ height:56px; }
.nav-link{ font-family:'IBM Plex Mono',monospace; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--paper) !important; opacity:.8; }
.nav-link:hover, .nav-link.active{ color:var(--red) !important; opacity:1; }
.navbar .dropdown-menu{ background:var(--ink-soft); border:1px solid rgba(243,238,228,.14); }
.navbar .dropdown-item{ font-family:'IBM Plex Mono',monospace; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--paper); opacity:.85; }
.navbar .dropdown-item:hover, .navbar .dropdown-item:focus{ background:var(--red); color:#fff; opacity:1; }

/* Hero */
.hero{
  padding:150px 0 80px;
  background:radial-gradient(ellipse 900px 500px at 85% -10%, rgba(200,30,44,.12), transparent 60%), var(--paper);
  border-bottom:1px solid rgba(11,11,12,.08);
}
.hero h1{ font-size:clamp(34px,5vw,60px); font-weight:600; }
.hero .accent{ color:var(--red); }
.page-hero{
  padding:130px 0 60px;
  background:radial-gradient(ellipse 900px 500px at 85% -10%, rgba(200,30,44,.12), transparent 60%), var(--paper);
  border-bottom:1px solid rgba(11,11,12,.08);
}
.page-hero h1{ font-size:clamp(30px,4.4vw,50px); font-weight:600; }

.img-frame{ border:1px solid rgba(11,11,12,.12); border-radius:14px; overflow:hidden; box-shadow:0 6px 20px rgba(11,11,12,.08); }
.img-frame img{ width:100%; height:100%; object-fit:cover; border-radius:inherit; }

/* Locality badges */
.locality-badges{ display:flex; flex-wrap:wrap; gap:10px; }
.locality-badges span{
  border:1px solid rgba(11,11,12,.18); padding:8px 16px; font-family:'IBM Plex Mono',monospace;
  font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; opacity:.85; background:var(--white);
}

/* Location cards (contact page) */
.location-card{
  border:1px solid rgba(11,11,12,.12); background:var(--white); color:var(--ink); padding:36px 30px; height:100%;
  transition:border-color .18s, box-shadow .18s;
}
.location-card:hover{ border-color:var(--red); box-shadow:0 6px 24px rgba(11,11,12,.06); }
.location-card h3{ font-size:1.4rem; font-weight:600; color:var(--red); }
.location-card .loc-link{ font-family:'IBM Plex Mono',monospace; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--red); }
.location-card .loc-link:hover{ text-decoration:underline; }

/* Sections — alternating light shades for rhythm, all light */
.section-dark{ background:var(--paper-dim); color:var(--ink); padding:80px 0; }
.section-light{ background:var(--white); color:var(--ink); padding:80px 0; }
.section-dark .eyebrow, .section-light .eyebrow{ color:var(--red-dim); }

.card-service{
  border:1px solid rgba(11,11,12,.12); background:var(--white); padding:30px 24px; height:100%;
  transition:background .18s, border-color .18s;
}
.card-service:hover{ background:rgba(200,30,44,.05); border-color:var(--red); }
.card-service .s-icon{ width:42px; height:42px; color:var(--timber); margin-bottom:16px; }
.card-service:hover .s-icon{ color:var(--red); }
.card-service h4{ font-size:1.05rem; font-weight:600; }

.step-num{ font-family:'IBM Plex Mono',monospace; color:var(--red); font-size:1.6rem; }

/* Form */
.form-control, .form-select{
  background:var(--white); border:1px solid rgba(11,11,12,.2); color:var(--ink);
  padding:.75rem 1rem;
}
.form-control::placeholder{ color:var(--steel); }
.form-control:focus, .form-select:focus{
  background:var(--white); color:var(--ink); border-color:var(--red); box-shadow:none;
}
.form-select option{ background:var(--white); color:var(--ink); }
label{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--steel); }

/* Footer — light, red accent */
footer{ background:var(--ink-soft); border-top:3px solid var(--red); padding:56px 0 26px; }
footer h5{ font-family:'IBM Plex Mono',monospace; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red); }
footer a{ opacity:.85; color:var(--paper); }
footer a:hover{ color:var(--red); opacity:1; }
footer p{ color:var(--paper); }
footer .border-bottom{ border-color:rgba(243,238,228,.14) !important; }

/* Inline link icons (footer, contact, location cards) */
.link-icon{ display:inline-flex; align-items:center; gap:9px; }
.link-icon svg{ width:16px; height:16px; flex-shrink:0; stroke:currentColor; fill:none; opacity:.9; }
.location-card h3 .link-icon svg{ width:20px; height:20px; }
/* Visit us / map section */
.visit-card{ background:var(--paper); border:1px solid rgba(11,11,12,.12); border-radius:14px; padding:36px; height:100%; }
.visit-card h3{ font-size:1.3rem; font-weight:600; color:var(--red); }
.visit-card h3 svg{ width:22px; height:22px; }
.visit-info-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:14px; }
.visit-info-list svg{ color:var(--timber); }
.visit-info-list a:hover{ color:var(--red); }
.map-frame{ border:1px solid rgba(11,11,12,.12); border-radius:14px; overflow:hidden; min-height:360px; height:100%; }
.map-frame iframe{ width:100%; height:100%; min-height:360px; border:0; display:block; }

.nav-link.link-icon svg{ width:14px; height:14px; opacity:.85; }
.dropdown-item.link-icon svg{ width:14px; height:14px; }
.btn.link-icon svg{ width:14px; height:14px; stroke:currentColor; }

/* FAQ accordion */
.accordion-item{ background:var(--white); border-color:rgba(11,11,12,.12); }
.accordion-button{ background:var(--white); color:var(--ink); font-family:'Inter',sans-serif; font-weight:600; box-shadow:none; }
.accordion-button:not(.collapsed){ background:var(--red); color:#fff; box-shadow:none; }
.accordion-button:not(.collapsed)::after{ filter:invert(1) brightness(2); }
.accordion-body{ background:var(--white); color:var(--ink); opacity:.9; }

.badge-brand{ background:var(--red); }

.marquee-strip{ background:var(--red); color:#fff; padding:12px 0; overflow:hidden; white-space:nowrap; font-family:'IBM Plex Mono',monospace; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; }
.marquee-track{ display:inline-block; padding-left:100%; animation:marquee 26s linear infinite; }
@keyframes marquee{ from{transform:translateX(0);} to{transform:translateX(-100%);} }

.thankyou-icon{ width:90px; height:90px; color:var(--red); }
