.ocf-contact,
.ocf-contact-page {
    background: var(--ocf-bg);
}

.contact-grid,
.ocf-contact-page__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.8fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.ocf-contact-heading {
    margin-top: 0;
}

.ocf-contact-intro {
    max-width: 60ch;
    margin: 1rem 0 0;
}

.ocf-contact-details,
.ocf-contact-info {
    display: grid;
    gap: 1.05rem;
    margin-top: 1.75rem;
}

.ocf-contact-meta {
    display: grid;
    gap: 1rem;
}

.ocf-contact-item,
.ocf-contact-info__card,
.ocf-contact-card {
    display: flex;
    align-items: center;
    gap: 1.05rem;
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--ocf-heading);
}

.ocf-contact-icon {
    display: inline-grid;
    width: 3.15rem;
    height: 3.15rem;
    flex: 0 0 auto;
    place-items: center;
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--card-radius, 0.75rem);
    background: color-mix(in srgb, var(--ocf-bg-alt) 52%, var(--ocf-bg));
    color: var(--ocf-primary);
}

.ocf-contact-icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.ocf-contact-hours-label svg {
    width: 1.15rem;
    height: 1.15rem;
}

.ocf-contact-item-body {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.ocf-contact-item-body strong {
    color: var(--ocf-heading);
    font-size: clamp(1.05rem, 1.7vw, 1.35rem);
    font-weight: var(--font-weight-bold);
    line-height: 1.25;
}

.ocf-contact-item-body span {
    color: var(--ocf-body);
    font-size: var(--font-label-size);
}

.ocf-contact-map-card {
    position: relative;
    min-height: clamp(12rem, 22vw, 17rem);
    margin-top: 2rem;
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--card-radius);
    background: var(--ocf-bg-alt);
    overflow: hidden;
}

.ocf-contact-map-card iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    filter: grayscale(1) contrast(0.95);
}

html[data-theme="dark"] .ocf-contact-map-card iframe {
    filter: grayscale(0.7) invert(0.82) brightness(0.95) contrast(1.18);
    opacity: 1;
}

.ocf-contact-hours {
    margin-top: 1.6rem;
    max-width: 42rem;
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--card-radius, 0.75rem);
    background: color-mix(in srgb, var(--ocf-bg-alt) 52%, var(--ocf-bg));
    padding: clamp(1.15rem, 2.6vw, 1.55rem);
}

.ocf-contact-hours-label {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin: 0 0 0.8rem;
    color: var(--ocf-heading);
}

.ocf-contact-hours-label svg {
    color: var(--ocf-primary);
}

.ocf-hours-list {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ocf-hours-list li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid var(--ocf-border-light);
    padding-block: 0.68rem;
}

.ocf-hours-list li:last-child {
    padding-bottom: 0;
}

.ocf-contact-emergency {
    margin: 0.75rem 0 0;
    color: var(--ocf-label);
    font-size: var(--font-label-size);
}

@media (max-width: 860px){
    .contact-grid,
.ocf-contact-page__grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px){
    .ocf-contact-item,
.ocf-contact-info__card,
.ocf-contact-card {
        gap: 0.9rem;
    }

    .ocf-contact-icon {
        width: 3rem;
        height: 3rem;
    }
}

/* OCF_AGENT_BLOCK:wbm-contact-final START */
.wbm-contact {
  padding-block: clamp(2.5rem,6vw,5.75rem);
  font-family: Inter,sans-serif;
}
.wbm-contact__intro { max-width: 56rem; margin-bottom: clamp(2rem,5vw,4rem); }
.wbm-contact__eyebrow { color:#0c3c6c; text-transform:uppercase; letter-spacing:.1em; font-size:.85rem; font-weight:700; margin-bottom:.7rem; }
.wbm-contact h1,.wbm-contact h2 { color:#0c3c6c; font-family:Poppins,sans-serif; font-weight:700; line-height:1.16; }
.wbm-contact h1 { font-size:clamp(2rem,4.8vw,4rem); margin-bottom:.9rem; text-wrap:balance; }
.wbm-contact h2 { font-size:clamp(1.4rem,2.6vw,2rem); margin-bottom:.75rem; }
.wbm-contact__intro > p:last-child { max-width:65ch; font-size:clamp(1rem,1.5vw,1.15rem); }
.wbm-contact__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(1.5rem,5vw,5rem); align-items:start; }
.wbm-contact__goals > p + p { margin-top:.75rem; }
.wbm-contact__benefits { list-style:none; padding:0; margin:1.25rem 0; }
.wbm-contact__benefits li { display:flex; gap:.65rem; margin:.5rem 0; }
.wbm-contact__benefits li::before { content:"✓"; color:#0c3c6c; font-weight:700; }
.wbm-contact__details { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:.6rem 1rem; border-top:1px solid #c7d1dd; padding-top:1rem; }
.wbm-contact__details dt { font-weight:700; color:#0c3c6c; }
.wbm-contact__details dd { margin:0; overflow-wrap:anywhere; }
.wbm-contact :is(.wbm-contact__details a,.wbm-contact__privacy) { color:#0c3c6c; text-decoration:underline; text-underline-offset:3px; }
.wbm-contact__inquiry { padding:clamp(1rem,3vw,2.5rem); border:1px solid #c7d1dd; border-radius:16px; box-shadow:0 12px 28px #0c3c6c10; background:#fff; min-width:0; }
.wbm-contact__inquiry iframe { display:block; width:100%; max-width:100%; border:0; }
.wbm-contact__email-invitation { background:#f1f7fb; border-radius:10px; padding:1rem; margin:1rem 0; }
.wbm-contact__email-invitation .btn-primary { margin-top:.85rem; min-height:48px; padding:10px 20px; border-radius:8px; font:600 15px/1.3 Poppins,sans-serif; background:#0c3c6c; color:#fff; text-align:center; }
.wbm-contact__email-invitation .btn-primary:hover { background:#082e54; }
.wbm-contact a:focus-visible { outline:2px solid #0c3c6c; outline-offset:3px; }
@media(max-width:767px) {
  .wbm-contact__grid { grid-template-columns:minmax(0,1fr); }
  .wbm-contact__inquiry { grid-row:1; }
}
/* OCF_AGENT_BLOCK:wbm-contact-final END */

/* OCF_AGENT_BLOCK:wbm-contact-form-reservation START */
/* Reserve the measured form footprint while the vendor initializes its inline iframe.
   Container queries use the actual form width, including the narrow tablet column. */
.wbm-contact__inquiry {
  container-type:inline-size;
  container-name:wbm-contact-form;
}
.wbm-contact__inquiry > [data-ocf-field="contact_embed_code"] {
  min-height:980px;
}
@container wbm-contact-form (max-width:440px) {
  .wbm-contact__inquiry > [data-ocf-field="contact_embed_code"] { min-height:1020px; }
}
@container wbm-contact-form (max-width:360px) {
  .wbm-contact__inquiry > [data-ocf-field="contact_embed_code"] { min-height:1100px; }
}
@container wbm-contact-form (max-width:300px) {
  .wbm-contact__inquiry > [data-ocf-field="contact_embed_code"] { min-height:1140px; }
}
@container wbm-contact-form (max-width:270px) {
  .wbm-contact__inquiry > [data-ocf-field="contact_embed_code"] { min-height:1200px; }
}
/* OCF_AGENT_BLOCK:wbm-contact-form-reservation END */
