/* ═══════════════════════════════════════════
   CONTACT PAGE
═══════════════════════════════════════════ */

/* CTA row has no info block below on this page — drop the bottom margin */
#cta .cta-row {
  margin-bottom: 0;
}

/* ─── Light-hero nav override ───
   Pages with body.light-nav have a cream hero, so the navbar's default
   white nav links are invisible. Force dark text from the very top. */
body.light-nav .nav-links a {
  color: var(--muted);
}

body.light-nav .nav-links a:hover {
  color: var(--ink);
  background: rgba(14, 13, 10, .05);
}

body.light-nav .nav-links a.active {
  color: var(--ink);
  background: var(--w);
  box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
}

body.light-nav .ham-line {
  background: var(--ink);
}

body.light-nav .nav-hamburger {
  border-color: var(--ink-10);
}

/* ─── HERO ─── */
.contact-hero {
  position: relative;
  padding: 150px 52px 100px;
  background: var(--cream);
  overflow: hidden;
}

.contact-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 60% at 70% 30%, rgba(109, 145, 116, .14) 0%, transparent 70%),
    radial-gradient(ellipse 50% 50% at 20% 80%, rgba(229, 168, 32, .08) 0%, transparent 70%);
  pointer-events: none;
}

.contact-hero-inner {
  position: relative;
  text-align: left;
  max-width: 1180px;
}

.contact-hero-h {
  font-family: var(--ff-disp);
  font-size: clamp(40px, 5.5vw, 80px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: -.03em;
  color: var(--ink);
  margin: 28px 0 28px;
}

.contact-hero-h em {
  font-style: normal;
  font-weight: 200;
  color: var(--sage-deep);
}

.contact-hero-sub {
  font-family: var(--ff-body);
  font-size: 19px;
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
  max-width: 640px;
}

/* ─── QUICK CONTACT CARDS ─── */
.quick-contact {
  padding: 100px 52px 0;
  background: var(--w);
}

.qc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.qc-card {
  position: relative;
  display: block;
  padding: 36px 30px 32px;
  background: var(--cream);
  border-radius: 14px;
  border: 1px solid var(--ink-10);
  transition: transform .35s var(--ease), border-color .3s, background .3s, box-shadow .3s;
  overflow: hidden;
}

.qc-card:hover {
  transform: translateY(-6px);
  border-color: var(--sage);
  background: var(--w);
  box-shadow: 0 18px 50px rgba(14, 13, 10, .08);
}

.qc-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--sage-faint);
  color: var(--sage-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 26px;
  transition: background .3s, color .3s;
}

.qc-card:hover .qc-icon {
  background: var(--sage);
  color: var(--w);
}

.qc-icon svg,
.qc-icon i {
  width: 22px;
  height: 22px;
}

.qc-label {
  font-family: var(--ff-mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--sage);
  margin-bottom: 8px;
}

.qc-value {
  font-family: var(--ff-disp);
  font-size: 21px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.25;
  margin-bottom: 6px;
}

.qc-meta {
  font-family: var(--ff-body);
  font-size: 13px;
  font-weight: 300;
  color: var(--muted);
}

.qc-arr {
  position: absolute;
  top: 26px;
  right: 26px;
  color: var(--faint);
  transition: color .3s, transform .35s var(--ease);
}

.qc-arr svg,
.qc-arr i {
  width: 18px;
  height: 18px;
}

.qc-card:hover .qc-arr {
  color: var(--sage);
  transform: translate(3px, -3px);
}

/* ─── FORM + ADDRESS / MAP ─── */
.contact-form-sec {
  padding: 100px 52px;
  background: var(--w);
}

.cf-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 80px;
  align-items: start;
}

.cf-form-col .h2 {
  font-size: clamp(34px, 3.6vw, 56px);
}

.contact-form-sec .body-copy {
  font-size: 16px;
}

.cf-form {
  margin-top: 44px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.cf-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

.cf-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cf-field > span {
  font-family: var(--ff-mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

.cf-field input,
.cf-field textarea,
.cf-field select {
  font-family: var(--ff-body);
  font-size: 16px;
  font-weight: 400;
  color: var(--ink);
  background: var(--cream);
  border: 1px solid var(--ink-10);
  border-radius: 10px;
  padding: 16px 18px;
  width: 100%;
  outline: none;
  transition: border-color .25s, background .25s, box-shadow .25s;
}

.cf-field textarea {
  resize: vertical;
  min-height: 130px;
  line-height: 1.55;
}

.cf-field input::placeholder,
.cf-field textarea::placeholder {
  color: rgba(122, 120, 112, .65);
}

.cf-field input:focus,
.cf-field textarea:focus,
.cf-field select:focus {
  border-color: var(--sage);
  background: var(--w);
  box-shadow: 0 0 0 4px var(--sage-faint);
}

/* ═══════════════════════════════════════════
   intl-tel-input — theme overrides (shared)
═══════════════════════════════════════════ */
.iti {
  width: 100%;
  display: block;
}

.iti__tel-input {
  /* The input inherits .cf-field input styles, but we need to reserve
     space for the flag + dial code on the left. */
  padding-left: 92px !important;
}

.iti--separate-dial-code .iti__country-container {
  background: transparent;
  border: none;
  border-right: 1px solid var(--ink-10);
}

.iti__selected-country {
  padding: 0 14px 0 16px;
  background: transparent !important;
  border-radius: 10px 0 0 10px;
  transition: background .2s;
}

.iti__selected-country:hover,
.iti__selected-country-primary:hover {
  background: rgba(14, 13, 10, .03) !important;
}

.iti__selected-dial-code {
  font-family: var(--ff-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  margin-left: 6px;
}

.iti__arrow {
  border-top-color: var(--muted);
}

/* Dropdown popover */
.iti__dropdown-content {
  background: var(--w);
  border: 1px solid var(--ink-10);
  border-radius: 12px;
  box-shadow: 0 18px 50px rgba(14, 13, 10, .12), 0 2px 8px rgba(14, 13, 10, .05);
  overflow: hidden;
  margin-top: 8px;
  font-family: var(--ff-body);
  padding: 10px;
}

.iti__search-input {
  display: block;
  width: 100%;
  padding: 10px 14px !important;
  margin: 0 0 8px 0 !important;
  border: 1px solid var(--ink-10) !important;
  border-radius: 8px !important;
  background: var(--cream) !important;
  font-family: var(--ff-body) !important;
  font-size: 13px !important;
  color: var(--ink) !important;
  outline: none !important;
  box-sizing: border-box;
  transition: border-color .2s, background .2s, box-shadow .2s;
}

.iti__search-input:focus {
  border-color: var(--sage) !important;
  background: var(--w) !important;
  box-shadow: 0 0 0 3px var(--sage-faint) !important;
}

.iti__search-input::placeholder {
  color: var(--muted);
}

.iti__country-list {
  border: none !important;
  background: var(--w) !important;
  max-height: 280px !important;
  padding: 0 !important;
  margin: 0 !important;
}

.iti__country {
  padding: 10px 14px !important;
  border-radius: 8px;
  font-size: 14px;
  color: var(--ink);
  transition: background .2s;
}

.iti__country:hover,
.iti__country.iti__highlight {
  background: var(--cream) !important;
}

.iti__country.iti__active {
  background: var(--sage-faint) !important;
  color: var(--sage-deep);
}

.iti__country-name {
  color: var(--ink);
}

.iti__country.iti__active .iti__country-name {
  color: var(--sage-deep);
  font-weight: 500;
}

.iti__dial-code {
  color: var(--muted);
  font-family: var(--ff-mono);
  font-size: 12px;
}

.iti__divider {
  border-bottom-color: var(--ink-10);
}

/* Invalid state */
.iti.has-error .iti__tel-input {
  border-color: #C64A3E !important;
  box-shadow: 0 0 0 4px rgba(198, 74, 62, .12) !important;
}

.iti-error,
.cf-field-error {
  display: block;
  overflow: hidden;
  max-height: 0;
  margin-top: 0;
  font-family: var(--ff-body);
  font-size: 12px;
  color: #C64A3E;
  transition: max-height .3s var(--ease), margin-top .3s var(--ease);
}

.iti-error:not(:empty),
.cf-field-error:not(:empty) {
  max-height: 40px;
  margin-top: 6px;
}

.cf-field.has-error input {
  border-color: #C64A3E !important;
  box-shadow: 0 0 0 4px rgba(198, 74, 62, .12) !important;
}

/* ─── Phone + Country code group (legacy — no longer used) ─── */
.bw-phone-group {
  position: relative;
  display: flex;
  align-items: stretch;
  background: var(--cream);
  border: 1px solid var(--ink-10);
  border-radius: 10px;
  overflow: visible;
  transition: border-color .25s, background .25s, box-shadow .25s;
}

.bw-phone-group:focus-within {
  border-color: var(--sage);
  background: var(--w);
  box-shadow: 0 0 0 4px var(--sage-faint);
}

.bw-phone-group .bw-country {
  position: static;
  flex-shrink: 0;
  border-right: 1px solid var(--ink-10);
}

.bw-phone-group .bw-country-trigger {
  background: transparent;
  border: none;
  border-radius: 10px 0 0 10px;
  padding: 16px 12px 16px 18px;
  gap: 8px;
  font-size: 16px;
  font-weight: 500;
  color: var(--ink);
  box-shadow: none !important;
}

.bw-phone-group .bw-country-trigger:hover {
  background: rgba(14, 13, 10, .03);
}

.bw-phone-group .bw-country .cf-dd-menu {
  left: 0;
  right: 0;
  min-width: 0;
  max-height: 340px;
}

.bw-phone-group .bw-country .cf-dd-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 16px;
  font-size: 14px;
}

.bw-dd-dial {
  font-family: var(--ff-mono);
  font-size: 12px;
  color: var(--muted);
  flex-shrink: 0;
}

.bw-phone-group .bw-country .cf-dd-option.is-selected .bw-dd-dial {
  color: var(--sage-deep);
}

.bw-phone-group input[type="tel"] {
  flex: 1;
  border: none !important;
  background: transparent !important;
  border-radius: 0 10px 10px 0 !important;
  box-shadow: none !important;
  min-width: 0;
}

.bw-phone-group input[type="tel"]:focus {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Booking page uses a tighter input height — override the shared trigger padding */
.bw-fields .bw-phone-group .bw-country-trigger {
  padding: 12px 12px 12px 16px;
  font-size: 15px;
}

/* ─── Custom dropdown ─── */
.cf-dropdown {
  position: relative;
}

.cf-dd-trigger {
  font-family: var(--ff-body);
  font-size: 16px;
  font-weight: 400;
  color: var(--ink);
  background: var(--cream);
  border: 1px solid var(--ink-10);
  border-radius: 10px;
  padding: 16px 18px;
  width: 100%;
  outline: none;
  cursor: pointer;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  transition: border-color .25s, background .25s, box-shadow .25s;
}

.cf-dd-trigger:hover {
  border-color: rgba(14, 13, 10, .18);
}

.cf-dropdown.is-open .cf-dd-trigger,
.cf-dd-trigger:focus-visible {
  border-color: var(--sage);
  background: var(--w);
  box-shadow: 0 0 0 4px var(--sage-faint);
}

.cf-dd-trigger svg,
.cf-dd-trigger i {
  width: 18px;
  height: 18px;
  color: var(--muted);
  flex-shrink: 0;
  transition: transform .3s var(--ease), color .25s;
}

.cf-dropdown.is-open .cf-dd-trigger svg,
.cf-dropdown.is-open .cf-dd-trigger i {
  transform: rotate(180deg);
  color: var(--sage-deep);
}

.cf-dd-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  background: var(--w);
  border: 1px solid var(--ink-10);
  border-radius: 12px;
  padding: 8px;
  box-shadow: 0 18px 50px rgba(14, 13, 10, .12), 0 2px 8px rgba(14, 13, 10, .05);
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-height: 320px;
  overflow-y: auto;
  z-index: 30;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .22s var(--ease), transform .22s var(--ease), visibility .22s;
}

.cf-dropdown.is-open .cf-dd-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.cf-dd-option {
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 400;
  color: var(--ink);
  background: transparent;
  border: none;
  border-radius: 8px;
  padding: 12px 16px;
  text-align: left;
  cursor: pointer;
  transition: background .2s, color .2s, padding-left .25s var(--ease);
}

.cf-dd-option:hover {
  background: var(--cream);
  padding-left: 20px;
}

.cf-dd-option.is-selected {
  background: var(--sage-faint);
  color: var(--sage-deep);
  font-weight: 500;
}

.cf-dd-option.is-selected:hover {
  background: var(--sage-faint);
}

/* Tidy scrollbar for the menu */
.cf-dd-menu::-webkit-scrollbar {
  width: 8px;
}
.cf-dd-menu::-webkit-scrollbar-track {
  background: transparent;
}
.cf-dd-menu::-webkit-scrollbar-thumb {
  background: var(--ink-10);
  border-radius: 4px;
}

/* ─── Searchable dropdown variant ─── */
.cf-dropdown--searchable .cf-dd-menu {
  padding: 0;
  display: flex;
  flex-direction: column;
  max-height: 380px;
  overflow: hidden;
}

.cf-dd-search {
  padding: 10px 12px;
  border-bottom: 1px solid var(--ink-10);
  background: var(--w);
  flex-shrink: 0;
}

.cf-dd-search-input {
  width: 100%;
  border: 1px solid var(--ink-10);
  background: var(--cream);
  border-radius: 8px;
  font-family: var(--ff-body);
  font-size: 13px;
  font-weight: 400;
  color: var(--ink);
  outline: none;
  padding: 8px 12px;
  min-width: 0;
  transition: border-color .2s, background .2s, box-shadow .2s;
}

.cf-dd-search-input:focus {
  border-color: var(--sage);
  background: var(--w);
  box-shadow: 0 0 0 3px var(--sage-faint);
}

.cf-dd-search-input::placeholder {
  color: var(--muted);
}

.cf-dropdown--searchable .cf-dd-options {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-height: 0;
}

.cf-dropdown--searchable .cf-dd-options::-webkit-scrollbar {
  width: 8px;
}
.cf-dropdown--searchable .cf-dd-options::-webkit-scrollbar-track {
  background: transparent;
}
.cf-dropdown--searchable .cf-dd-options::-webkit-scrollbar-thumb {
  background: var(--ink-10);
  border-radius: 4px;
}

.cf-dd-empty {
  display: none;
  padding: 28px 18px;
  text-align: center;
  font-family: var(--ff-body);
  font-size: 13px;
  font-weight: 400;
  color: var(--muted);
  border-top: 1px dashed var(--ink-10);
}

.cf-dropdown--searchable.is-empty .cf-dd-empty {
  display: block;
}

.cf-dd-loading {
  padding: 28px 18px;
  text-align: center;
  font-family: var(--ff-body);
  font-size: 13px;
  font-weight: 400;
  color: var(--muted);
}

.cf-submit {
  align-self: flex-start;
  margin-top: 8px;
  padding: 16px 36px;
  font-size: 14px;
}

.cf-thanks {
  display: none;
  align-items: center;
  gap: 10px;
  font-family: var(--ff-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--sage-deep);
  background: var(--sage-faint);
  border: 1px solid rgba(109, 145, 116, .25);
  border-radius: 10px;
  padding: 14px 18px;
  margin-top: 10px;
}

.cf-thanks.show {
  display: inline-flex;
}

.cf-thanks svg,
.cf-thanks i {
  width: 18px;
  height: 18px;
}

/* RIGHT COLUMN — info + map */
.cf-info-col {
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: sticky;
  top: 110px;
}

.cf-card {
  background: var(--cream);
  border: 1px solid var(--ink-10);
  border-radius: 14px;
  padding: 38px 36px;
}

.cf-card-head {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ff-mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--sage);
  margin-bottom: 22px;
}

.cf-card-head svg,
.cf-card-head i {
  width: 16px;
  height: 16px;
}

.cf-addr {
  font-family: var(--ff-disp);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--ink);
  margin-bottom: 30px;
}

.cf-meta-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  padding: 26px 0;
  border-top: 1px solid var(--ink-10);
  border-bottom: 1px solid var(--ink-10);
  margin-bottom: 26px;
}

.cf-meta-label {
  font-family: var(--ff-mono);
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 7px;
}

.cf-meta-val {
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--ink);
  transition: color .2s;
}

a.cf-meta-val:hover {
  color: var(--sage-deep);
}

.cf-hours-list {
  list-style: none;
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cf-hours-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--ff-body);
  font-size: 14px;
  font-weight: 400;
  color: var(--ink);
  padding-bottom: 8px;
  border-bottom: 1px dashed var(--ink-10);
}

.cf-hours-list li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.cf-hours-list li span:last-child {
  color: var(--muted);
  font-weight: 300;
  font-size: 13px;
}

/* MAP */
.cf-map {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--ink-10);
  background: var(--cream);
  height: 320px;
}

.cf-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  filter: grayscale(.25) contrast(.95);
}

.cf-map-link {
  position: absolute;
  bottom: 14px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--w);
  color: var(--ink);
  font-family: var(--ff-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 9px 14px;
  border-radius: 100px;
  border: 1px solid var(--ink-10);
  transition: background .25s, color .25s, transform .3s var(--ease);
  box-shadow: 0 4px 14px rgba(14, 13, 10, .08);
}

.cf-map-link:hover {
  background: var(--sage);
  color: var(--w);
  border-color: var(--sage);
  transform: translateY(-2px);
}

.cf-map-link svg,
.cf-map-link i {
  width: 13px;
  height: 13px;
}

/* ─── SOCIAL ─── */
.contact-social {
  padding: 100px 52px;
  background: var(--cream);
  border-top: 1px solid var(--ink-10);
  border-bottom: 1px solid var(--ink-10);
}

.cs-inner {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 80px;
  align-items: center;
}

.cs-text .h2 {
  font-size: clamp(34px, 3.6vw, 56px);
}

.contact-social .body-copy {
  font-size: 16px;
}

.cs-links {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
}

.cs-link {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 26px 30px;
  border-bottom: 1px solid var(--ink-10);
  font-family: var(--ff-disp);
  font-size: 22px;
  font-weight: 400;
  color: var(--ink);
  transition: color .25s, background .25s, padding-left .35s var(--ease);
}

.cs-link:nth-child(odd) {
  border-right: 1px solid var(--ink-10);
}

.cs-link:nth-last-child(-n+2) {
  border-bottom: none;
}

.cs-link > svg:first-child,
.cs-link > i:first-child,
.cs-link .cs-brand {
  width: 22px;
  height: 22px;
  color: var(--sage);
  transition: color .25s, transform .3s var(--ease);
  flex-shrink: 0;
  display: block;
}

.cs-link span {
  flex: 1;
}

.cs-arr,
svg.cs-arr {
  width: 18px;
  height: 18px;
  color: var(--faint);
  transition: color .25s, transform .3s var(--ease);
  flex-shrink: 0;
}

.cs-link:hover {
  color: var(--sage-deep);
  background: var(--w);
  padding-left: 38px;
}

.cs-link:hover .cs-arr {
  color: var(--sage);
  transform: translate(3px, -3px);
}

/* ─── FAQ ─── */
.contact-faq {
  padding: 100px 52px;
  background: var(--w);
}

.faq-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: end;
  margin-bottom: 60px;
}

.faq-head .h2 {
  font-size: clamp(34px, 3.6vw, 56px);
}

.contact-faq .body-copy {
  font-size: 16px;
}

.faq-list {
  border-top: 1px solid var(--ink-10);
}

.faq-item {
  border-bottom: 1px solid var(--ink-10);
  transition: background .25s;
}

.faq-item summary {
  list-style: none;
  cursor: pointer;
  padding: 30px 4px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  transition: color .2s;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-q {
  font-family: var(--ff-disp);
  font-size: 19px;
  font-weight: 400;
  color: var(--ink);
  line-height: 1.3;
  flex: 1;
}

.faq-toggle {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--ink-10);
  background: var(--w);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sage-deep);
  flex-shrink: 0;
  transition: background .25s, color .25s, border-color .25s, transform .35s var(--ease);
}

.faq-toggle svg,
.faq-toggle i {
  width: 18px;
  height: 18px;
  transition: transform .35s var(--ease);
}

.faq-item:hover .faq-toggle {
  background: var(--sage-faint);
  border-color: var(--sage);
}

.faq-item[open] .faq-toggle {
  background: var(--sage);
  color: var(--w);
  border-color: var(--sage);
}

.faq-item[open] .faq-toggle svg,
.faq-item[open] .faq-toggle i {
  transform: rotate(45deg);
}

.faq-item[open] .faq-q {
  color: var(--sage-deep);
}

.faq-a {
  padding: 0;
  max-width: 880px;
  overflow: hidden;
  transition: height .4s cubic-bezier(0.16, 1, 0.3, 1);
}

.faq-a-inner {
  padding: 0 60px 32px 4px;
  font-family: var(--ff-body);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.8;
  color: var(--muted);
}

/* ═══════════════════════════════════════════
   RESPONSIVE — ≤960px
═══════════════════════════════════════════ */
@media (max-width: 960px) {
  .contact-hero {
    padding: 100px 24px 60px;
  }

  .contact-hero-h {
    font-size: clamp(44px, 11vw, 72px);
    margin: 22px 0 22px;
  }

  .contact-hero-sub {
    font-size: 16px;
  }

  .quick-contact {
    padding: 60px 24px 0;
  }

  .qc-grid {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .qc-card {
    padding: 22px 16px 18px;
  }

  .qc-icon {
    width: 38px;
    height: 38px;
    margin-bottom: 16px;
  }

  .qc-icon svg,
  .qc-icon i {
    width: 18px;
    height: 18px;
  }

  .qc-label {
    font-size: 10px;
    margin-bottom: 6px;
  }

  .qc-value {
    font-size: 13px;
    line-height: 1.3;
    margin-bottom: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .qc-meta {
    font-size: 11px;
    line-height: 1.4;
  }

  .qc-arr {
    top: 18px;
    right: 16px;
  }

  .qc-arr svg,
  .qc-arr i {
    width: 14px;
    height: 14px;
  }

  .contact-form-sec {
    padding: 60px 24px;
  }

  .cf-grid {
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .cf-form {
    margin-top: 32px;
    gap: 18px;
  }

  .cf-row {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .cf-info-col {
    position: static;
  }

  .cf-card {
    padding: 30px 26px;
  }

  .cf-addr {
    font-size: 17px;
  }

  .cf-meta-row {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .cf-map {
    height: 260px;
  }

  .contact-social {
    padding: 60px 24px;
  }

  .cs-inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .cs-links {
    grid-template-columns: 1fr;
  }

  .cs-link {
    border-right: none !important;
    padding: 20px 4px !important;
    font-size: 18px;
  }

  .cs-link:nth-last-child(1) {
    border-bottom: none;
  }

  .cs-link:nth-last-child(2) {
    border-bottom: 1px solid var(--ink-10);
  }

  .contact-faq {
    padding: 60px 24px;
  }

  .faq-head {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 40px;
  }

  .faq-item summary {
    padding: 24px 4px;
    gap: 16px;
  }

  .faq-q {
    font-size: 16px;
  }

  .faq-toggle {
    width: 34px;
    height: 34px;
  }

  .faq-toggle svg,
  .faq-toggle i {
    width: 16px;
    height: 16px;
  }

  .faq-a-inner {
    padding: 0 0 26px 4px;
    font-size: 14.5px;
  }
}
