:root {
  --bg: #fffaf5;
  --surface: #ffffff;
  --surface-soft: #f6f1ea;
  --surface-tint: #f3f7f8;
  --text: #183139;
  --muted: #566b72;
  --line: rgba(24,49,57,.10);
  --brand: #0f7b84;
  --brand-deep: #0d5d66;
  --brand-soft: #e1f1f2;
  --accent: #c79a54;
  --accent-deep: #996f35;
  --shadow: 0 18px 42px rgba(17,35,40,.10);
  --radius-lg: 26px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --container: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--text);
  background: linear-gradient(180deg, #fffdf9 0%, var(--bg) 100%);
  line-height: 1.6;
}
a { color: var(--brand-deep); text-decoration: none; }
a:hover { color: var(--brand); }
img { max-width: 100%; display: block; }
input, textarea, select, button { font: inherit; }
.skip-link {
  position: absolute; left: 1rem; top: -3rem; background: var(--brand-deep); color: white;
  padding: .75rem 1rem; border-radius: 999px; z-index: 99;
}
.skip-link:focus { top: 1rem; }
.container { width: min(calc(100% - 2rem), var(--container)); margin: 0 auto; }
.section { padding: 5.5rem 0; }
.section.tight { padding: 4rem 0; }
.section.tinted { background: var(--surface-tint); }
.section.soft { background: var(--surface-soft); }
.kicker, .eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight: 700;
  color: var(--brand-deep); margin-bottom: 1rem;
}
.kicker::before, .eyebrow::before {
  content: ''; width: 32px; height: 1px; background: color-mix(in srgb, var(--brand) 45%, white);
}
h1, h2, h3, h4 { font-family: Georgia, 'Times New Roman', serif; line-height: 1.08; margin: 0 0 1rem; color: #22363a; }
h1 { font-size: clamp(2.8rem, 4.8vw, 5.1rem); max-width: 12ch; }
h2 { font-size: clamp(2rem, 3vw, 3.4rem); max-width: 14ch; }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1rem; color: var(--muted); }
.lead { font-size: clamp(1.05rem, 1.35vw, 1.24rem); max-width: 62ch; }
.small { font-size: .95rem; }
.note { color: #6b7f86; font-size: .96rem; }
.page-hero {
  padding: 8rem 0 3rem;
  background: radial-gradient(circle at top left, rgba(199,154,84,.12), transparent 40%),
              radial-gradient(circle at top right, rgba(15,123,132,.12), transparent 42%);
}
.site-header {
  position: sticky; top: 0; z-index: 50; backdrop-filter: blur(14px);
  background: rgba(255,250,245,.82); border-bottom: 1px solid rgba(24,49,57,.08);
}
.navbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 88px; }
.brand { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.brand img {
  width: 70px; height: 70px; object-fit: contain; border-radius: 50%;
  background: white; box-shadow: 0 10px 24px rgba(16,37,43,.12);
}
.brand-mark { display: flex; flex-direction: column; gap: .18rem; min-width: 0; }
.brand-title { font-weight: 800; color: var(--text); font-size: 1rem; line-height: 1.1; }
.brand-subtitle { font-size: .76rem; color: var(--accent-deep); text-transform: uppercase; letter-spacing: .16em; }
.nav-toggle { display: none; }
.nav-links { display: flex; align-items: center; gap: .4rem; }
.nav-links > a:not(.button) {
  color: var(--text); font-weight: 600; padding: .8rem .95rem; border-radius: 999px;
}
.nav-links > a[aria-current="page"], .nav-links > a:not(.button):hover {
  background: white; color: var(--brand-deep); box-shadow: 0 8px 18px rgba(17,35,40,.08);
}
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 48px; border-radius: 999px; border: 1px solid transparent;
  padding: .85rem 1.35rem; font-weight: 700; text-align: center; transition: .22s ease;
  cursor: pointer; text-decoration: none;
}
.button-primary {
  background: linear-gradient(135deg, var(--accent), #d2a55b);
  color: #fff; box-shadow: 0 16px 34px rgba(164,117,40,.24);
}
.button-primary:hover, .button-primary:focus-visible {
  background: linear-gradient(135deg, #b6843f, var(--accent));
  color: #fff; transform: translateY(-1px);
}
.button-secondary {
  background: #fff; color: var(--brand-deep); border-color: rgba(15,123,132,.22);
  box-shadow: 0 12px 24px rgba(15,123,132,.08);
}
.button-secondary:hover, .button-secondary:focus-visible {
  background: var(--brand-soft); color: var(--brand-deep); border-color: rgba(15,123,132,.38); transform: translateY(-1px);
}
.button-tertiary {
  background: transparent; color: var(--text); border-color: rgba(24,49,57,.15);
}
.button-tertiary:hover, .button-tertiary:focus-visible {
  background: rgba(255,255,255,.75); color: var(--brand-deep);
}
.button:focus-visible, .nav-links a:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid rgba(15,123,132,.32); outline-offset: 3px;
}
.hero {
  padding: 3.5rem 0 5rem;
  background: radial-gradient(circle at top left, rgba(199,154,84,.12), transparent 35%),
              linear-gradient(180deg, rgba(255,255,255,.7), rgba(255,255,255,0));
}
.hero-grid, .split-grid, .contact-grid { display: grid; gap: 2rem; grid-template-columns: minmax(0,1.12fr) minmax(340px,.88fr); align-items: center; }
.hero-copy { max-width: 700px; }
.hero-actions, .button-row { display: flex; gap: .9rem; flex-wrap: wrap; margin-top: 1.5rem; }
.trust-bar, .stat-grid, .card-grid, .steps-grid, .faq-grid, .gallery-grid, .people-grid, .partner-grid, .contact-cards { display: grid; gap: 1rem; }
.trust-bar { grid-template-columns: repeat(4, minmax(0,1fr)); margin-top: 2rem; }
.stat-grid { grid-template-columns: repeat(3, minmax(0,1fr)); margin-top: 1.8rem; }
.card-grid.two { grid-template-columns: repeat(2, minmax(0,1fr)); }
.card-grid.three, .partner-grid, .contact-cards { grid-template-columns: repeat(3, minmax(0,1fr)); }
.card-grid.four, .steps-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.gallery-grid { grid-template-columns: repeat(12, minmax(0,1fr)); }
.people-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.card, .trust-item, .stat, .photo-card, .faq-card, .form-shell {
  background: rgba(255,255,255,.88); border: 1px solid var(--line);
  border-radius: var(--radius-md); box-shadow: var(--shadow);
}
.card, .stat, .faq-card { padding: 1.45rem; }
.trust-item { padding: 1.2rem; }
.trust-item strong, .stat strong { display: block; color: var(--text); margin-bottom: .35rem; }
.icon-chip {
  width: 2.5rem; height: 2.5rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(199,154,84,.18), rgba(15,123,132,.14)); color: var(--brand-deep); font-weight: 800; margin-bottom: 1rem;
}
.hero-panel {
  position: relative; padding: 1rem; background: linear-gradient(180deg, rgba(255,255,255,.7), rgba(255,255,255,.95));
  border-radius: 34px; border: 1px solid rgba(24,49,57,.1); box-shadow: 0 28px 64px rgba(17,35,40,.14);
}
.hero-panel img, .feature-image img, .photo-card img {
  border-radius: calc(var(--radius-lg) - 6px); object-fit: cover; width: 100%; height: 100%;
}
.hero-panel img { min-height: 520px; }
.hero-badge {
  position: absolute; left: 1.6rem; bottom: 1.6rem; max-width: 280px; padding: 1rem 1.1rem;
  background: rgba(255,255,255,.94); backdrop-filter: blur(10px); border-radius: 18px; box-shadow: 0 20px 40px rgba(17,35,40,.14); border: 1px solid rgba(24,49,57,.08);
}
.feature-image { height: 100%; min-height: 430px; }
.photo-card { overflow: hidden; }
.photo-card img { aspect-ratio: 4 / 3; }
.photo-card figcaption { padding: 1rem 1rem 1.15rem; color: var(--muted); }
.gallery-grid .span-7 { grid-column: span 7; }
.gallery-grid .span-5 { grid-column: span 5; }
.gallery-grid .span-4 { grid-column: span 4; }
.gallery-grid .span-6 { grid-column: span 6; }
.gallery-grid .span-8 { grid-column: span 8; }
.quote-box {
  padding: 1.6rem; background: linear-gradient(135deg, rgba(15,123,132,.10), rgba(199,154,84,.10));
  border-radius: var(--radius-md); border: 1px solid rgba(15,123,132,.12);
}
.list-clean, .check-list { list-style: none; margin: 0; padding: 0; }
.list-clean li, .check-list li { margin: 0 0 .85rem; padding-left: 1.2rem; position: relative; color: var(--muted); }
.list-clean li::before, .check-list li::before {
  content: '•'; position: absolute; left: 0; top: 0; color: var(--accent-deep); font-weight: 800;
}
.pill-row { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1rem; }
.pill {
  display: inline-flex; align-items: center; padding: .6rem .95rem; border-radius: 999px;
  background: white; border: 1px solid rgba(24,49,57,.10); color: var(--text); font-weight: 600;
}
.cta-shell {
  padding: 2.4rem; background: linear-gradient(135deg, var(--brand-deep), #103f45);
  color: white; border-radius: 32px; box-shadow: 0 28px 60px rgba(13,93,102,.24);
}
.cta-shell h2, .cta-shell p { color: white; }
.cta-shell .button-secondary { background: #fff; color: var(--brand-deep); border-color: rgba(255,255,255,.32); }
.cta-shell .button-secondary:hover, .cta-shell .button-secondary:focus-visible { background: #ecf7f8; color: var(--brand-deep); }
.cta-shell .button-primary { background: linear-gradient(135deg, #d2a55b, #b17f3d); color: white; }
.form-shell { padding: 1.6rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
label { display: grid; gap: .45rem; color: var(--text); font-weight: 600; margin-bottom: 1rem; }
input, textarea, select {
  width: 100%; border-radius: 14px; border: 1px solid rgba(24,49,57,.14); background: white;
  padding: .92rem 1rem; color: var(--text);
}
textarea { min-height: 150px; resize: vertical; }
.input-hidden { position: absolute; left: -9999px; }
.success, .error {
  display: none; margin: 0 0 1rem; padding: .9rem 1rem; border-radius: 14px; font-weight: 600;
}
.success { background: #edf8ef; color: #235930; border: 1px solid rgba(35,89,48,.16); }
.error { background: #fff0ef; color: #8a2d2d; border: 1px solid rgba(138,45,45,.15); }
.accordion { display: grid; gap: .9rem; }
details {
  background: rgba(255,255,255,.86); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); overflow: hidden;
}
summary {
  list-style: none; cursor: pointer; font-weight: 700; color: var(--text); padding: 1.2rem 1.3rem;
}
summary::-webkit-details-marker { display: none; }
details p { padding: 0 1.3rem 1.25rem; margin: 0; }
.footer {
  background: #19343b; color: rgba(255,255,255,.86); padding: 4rem 0 2rem; margin-top: 4rem;
}
.footer h3, .footer a { color: white; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .9fr .9fr 1fr; gap: 1.4rem; }
.footer .button-secondary { background: rgba(255,255,255,.96); color: var(--brand-deep); }
.footer .button-secondary:hover, .footer .button-secondary:focus-visible { background: #eaf7f8; color: var(--brand-deep); }
.footer .small, .footer .small a { color: rgba(255,255,255,.82); }
.legal-row { margin-top: 2rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.12); }
.sticky-mobile-cta {
  display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; gap: .75rem; padding: .85rem 1rem max(.85rem, env(safe-area-inset-bottom));
  background: rgba(255,250,245,.94); backdrop-filter: blur(16px); border-top: 1px solid rgba(24,49,57,.08);
}
@media (max-width: 1024px) {
  .hero-grid, .split-grid, .contact-grid, .footer-grid { grid-template-columns: 1fr; }
  .card-grid.four, .steps-grid, .card-grid.three, .partner-grid, .contact-cards, .trust-bar, .stat-grid, .people-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .gallery-grid .span-7, .gallery-grid .span-5, .gallery-grid .span-4, .gallery-grid .span-6, .gallery-grid .span-8 { grid-column: span 6; }
  h1 { max-width: 13ch; }
}
@media (max-width: 860px) {
  .nav-toggle { display: inline-flex; }
  .nav-links {
    position: absolute; left: 1rem; right: 1rem; top: 78px; display: none; flex-direction: column; align-items: stretch;
    padding: 1rem; background: rgba(255,255,255,.98); border-radius: 24px; box-shadow: 0 24px 48px rgba(17,35,40,.14); border: 1px solid rgba(24,49,57,.08);
  }
  .nav-links.open { display: flex; }
  .nav-links > a:not(.button) { padding: .9rem 1rem; }
}
@media (max-width: 720px) {
  .section { padding: 4.25rem 0; }
  .form-grid, .card-grid.two, .card-grid.three, .card-grid.four, .steps-grid, .partner-grid, .contact-cards, .trust-bar, .stat-grid, .people-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-grid .span-7, .gallery-grid .span-5, .gallery-grid .span-4, .gallery-grid .span-6, .gallery-grid .span-8 { grid-column: auto; }
  .hero-panel img { min-height: 380px; }
  .brand img { width: 60px; height: 60px; }
  .sticky-mobile-cta { display: flex; }
  body { padding-bottom: 88px; }
}
