  /* ================= CONTACT ================= */

  .contact-intro { padding:96px 0 64px; }
  .contact-intro .head { max-width:640px; margin:0 auto; text-align:center; }
  .contact-intro .eyebrow { display:flex; justify-content:center; }
  .contact-intro h2 { margin-bottom:16px; }
  .contact-intro p { font-family:'Cormorant Garamond',serif; font-size:19px; line-height:1.75; color:#4A3B2C; }

  /* ---- layout: form + sidebar ---- */
  .contact-main { padding:0 0 100px; }
  .contact-main .grid { display:grid; grid-template-columns:1.5fr 1fr; gap:0; align-items:start; border-top:1px solid #E0D3AE; }

  /* ---- form column ---- */
  .contact-form-col { padding:56px 64px 56px 0; border-right:1px solid #E0D3AE; }
  .contact-form-col h3 { font-family:'Fraunces',serif; font-weight:400; font-size:22px; color:#1C130C; margin-bottom:8px; }
  .contact-form-col .sub { font-size:14px; color:#7A6B52; margin-bottom:38px; }

  .cform { display:grid; gap:26px; }
  .cform .row2 { display:grid; grid-template-columns:1fr 1fr; gap:26px; }

  .cfield { position:relative; }
  .cfield label {
    display:block; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:#9A8B6C;
    margin-bottom:9px;
  }
  .cfield .req { color:#A6821D; }
  .cfield input[type="text"],
  .cfield input[type="email"],
  .cfield input[type="tel"],
  .cfield select,
  .cfield textarea {
    width:100%; border:none; border-bottom:1px solid #D8CBA0; background:transparent;
    padding:6px 2px 12px; font-family:'Inter',sans-serif; font-size:15px; color:#211B15; outline:none;
    transition:border-color .3s ease; appearance:none; -webkit-appearance:none; border-radius:0;
  }
  .cfield textarea { resize:vertical; min-height:96px; line-height:1.6; font-family:'Cormorant Garamond',serif; font-size:17px; }
  .cfield input::placeholder, .cfield textarea::placeholder { color:#B8AC91; }
  .cfield input:focus, .cfield select:focus, .cfield textarea:focus { border-bottom-color:#A6821D; }

  .cfield.select-wrap::after {
    content:''; position:absolute; right:4px; bottom:18px; width:8px; height:8px;
    border-right:1.5px solid #9A8B6C; border-bottom:1.5px solid #9A8B6C; transform:rotate(45deg);
    pointer-events:none;
  }
  .cfield select { cursor:pointer; padding-right:24px; }
  .cfield select:invalid { color:#B8AC91; }

  /* pill-style radio group for inquiry type */
  .cfield .pill-group { display:flex; flex-wrap:wrap; gap:10px; }
  .cfield .pill-group input { position:absolute; opacity:0; width:0; height:0; }
  .cfield .pill-group label.pill {
    display:inline-flex; align-items:center; margin:0; padding:9px 16px; font-size:12.5px; letter-spacing:.02em;
    text-transform:none; border:1px solid #D8CBA0; color:#5A4E3C; cursor:pointer;
    transition:background .25s ease, color .25s ease, border-color .25s ease;
  }
  .cfield .pill-group input:checked + label.pill { background:#1C130C; border-color:#1C130C; color:#F8F2E4; }
  .cfield .pill-group input:focus-visible + label.pill { outline:2px solid #A6821D; outline-offset:2px; }

  .cform .consent { display:flex; align-items:flex-start; gap:10px; font-size:12.5px; color:#7A6B52; line-height:1.6; }
  .cform .consent input { margin-top:3px; accent-color:#1C130C; }
  .cform .consent a { color:#5A4E3C; text-decoration:underline; text-decoration-color:#D8CBA0; }

  .cform .submit-row { display:flex; align-items:center; gap:18px; margin-top:6px; flex-wrap:wrap; }
  .cform button[type="submit"] {
    border:none; background:#1C130C; color:#F8F2E4; padding:15px 36px; font-size:13.5px; letter-spacing:.03em;
    cursor:pointer; transition:transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s ease;
  }
  .cform button[type="submit"]:hover { transform:translateY(-3px); box-shadow:0 14px 28px rgba(28,19,12,.22); }
  .cform .submit-note { font-size:12.5px; color:#9A8B6C; }

  .cform .success {
    display:none; border:1px solid #C7D3B4; background:#EEF2E5; padding:22px 24px; align-items:flex-start; gap:14px;
  }
  .cform .cf-error { border:1px solid #E3B8B0; background:#FBEEEC; color:#8A2E22; padding:14px 18px; font-size:13.5px; border-radius:4px; margin-top:4px; }
  .cform .success.show { display:flex; }
  .cform .success svg { color:#5C7A47; flex-shrink:0; margin-top:2px; }
  .cform .success h4 { font-family:'Fraunces',serif; font-weight:500; font-size:16px; color:#3E4A34; margin-bottom:4px; }
  .cform .success p { font-size:13.5px; color:#4E5A42; line-height:1.6; }
  .cform .fields { display:contents; }
  .cform.is-sent .fields, .cform.is-sent .submit-row { display:none; }

  /* ---- sidebar column ---- */
  .contact-side { padding:56px 0 56px 64px; }
  .contact-side .block { padding-bottom:32px; margin-bottom:32px; border-bottom:1px solid #E4D8BF; }
  .contact-side .block:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
  .contact-side .block h4 { font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:#A6821D; margin-bottom:18px; }

  /* ---- map (click-to-load) ---- */
  .contact-side .map-card { position:relative; height:220px; border:1px solid #E4D8BF; border-radius:6px; overflow:hidden; background:#F6EFDD; }
  .contact-side .map-card iframe { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
  .contact-side .map-placeholder {
    height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:20px; text-align:center;
    background:
      linear-gradient(rgba(166,130,29,.06) 1px, transparent 1px) 0 0/28px 28px,
      linear-gradient(90deg, rgba(166,130,29,.06) 1px, transparent 1px) 0 0/28px 28px,
      #F6EFDD;
  }
  .contact-side .map-placeholder .ic { width:38px; height:38px; border:1px solid #E4D8BF; border-radius:50%; background:#FBF7EC; display:flex; align-items:center; justify-content:center; color:#A6821D; }
  .contact-side .map-placeholder b { font-family:'Fraunces',serif; font-weight:500; font-size:14.5px; color:#211B15; line-height:1.4; }
  .contact-side .map-load { font:inherit; font-size:13px; font-weight:500; color:#A6821D; background:transparent; border:1px solid #A6821D; border-radius:999px; padding:8px 20px; cursor:pointer; transition:background .25s ease, color .25s ease; }
  .contact-side .map-load:hover, .contact-side .map-load:focus-visible { background:#A6821D; color:#fff; outline:none; }
  .contact-side .map-meta { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; margin-top:12px; }
  .contact-side .map-meta a { font-size:13px; color:#A6821D; text-decoration:none; border-bottom:1px solid transparent; transition:border-color .25s ease; }
  .contact-side .map-meta a:hover { border-color:#A6821D; }
  .contact-side .map-meta span { font-size:11.5px; color:#7A6B52; }

  .contact-side .addr-item { display:flex; gap:14px; margin-bottom:18px; }
  .contact-side .addr-item:last-child { margin-bottom:0; }
  .contact-side .addr-item .ic {
    width:34px; height:34px; border:1px solid #E4D8BF; border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center; color:#A6821D;
  }
  .contact-side .addr-item b { display:block; font-family:'Fraunces',serif; font-weight:500; font-size:15px; color:#211B15; margin-bottom:3px; }
  .contact-side .addr-item span, .contact-side .addr-item a { display:block; font-size:14px; color:#5A4E3C; line-height:1.5; text-decoration:none; }
  .contact-side .addr-item a:hover { color:#A6821D; }


  .contact-side .hours-row { display:flex; justify-content:space-between; font-size:13.5px; color:#5A4E3C; padding:7px 0; }
  .contact-side .hours-row span:last-child { color:#211B15; font-weight:500; }
  .contact-side .hours-note { font-size:12px; color:#9A8B6C; margin-top:10px; line-height:1.6; }

  /* ---- visit / facility strip ---- */
  .contact-visit { background:#F4EEDC; border-top:1px solid #E0D3AE; border-bottom:1px solid #E0D3AE; padding:0; }
  .contact-visit .grid { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
  .contact-visit .frame { min-height:340px; background-size:cover; background-position:center; }
  .contact-visit .body { padding:60px clamp(28px,5vw,64px); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
  .contact-visit .eyebrow { color:#A6821D; }
  .contact-visit h2 { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(22px,3vw,28px); margin-bottom:16px; color:#1C130C; }
  .contact-visit p { font-family:'Cormorant Garamond',serif; font-size:18px; line-height:1.75; color:#4A3B2C; max-width:440px; margin-bottom:26px; }

  /* ---- faq nudge strip ---- */
  .contact-faq-note { padding:64px 0; text-align:center; }
  .contact-faq-note p { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:19px; color:#5A4E3C; }
  .contact-faq-note a { color:#1C130C; text-decoration:none; border-bottom:1px solid #A6821D; }
  .contact-faq-note a:hover { color:#A6821D; }

  @media (max-width: 900px) {
    .contact-intro { padding:70px 0 48px; }
    .contact-main .grid { grid-template-columns:1fr; }
    .contact-form-col { padding:44px 0 44px; border-right:none; border-bottom:1px solid #E0D3AE; }
    .contact-side { padding:44px 0 0; }
    .cform .row2 { grid-template-columns:1fr; gap:26px; }
    .contact-visit .grid { grid-template-columns:1fr; }
    .contact-visit .frame { min-height:220px; }
    .contact-visit .body { padding:44px 20px; }
  }

  @media (max-width: 600px) {
    .cform .submit-row { flex-direction:column; align-items:stretch; }
    .cform button[type="submit"] { width:100%; text-align:center; }
  }
