/* Royal Wedding - Contact Form Tweaks

   The contact form is an Elementor Form widget (id 684b7d1c) on page 1064. It is
   rendered directly by Elementor (no theme wrapper), so everything here is scoped
   to the Elementor widget classes rather than a theme container — that way it
   works whether the form shows on the Elementor page or is injected elsewhere.

   Fonts: form fields left untouched (final fonts pending).
   Heading: the "Let's Talk" Elementor Heading widget (5d756647) is styled to the
            H1 spec. NOTE: its tag stays <h2> unless changed in Elementor
            (Heading widget → HTML Tag → H1); this only controls its appearance.
   Dropdowns: custom listbox (public.js); the native <select> is a no-JS fallback. */

/* ============ "Let's Talk" heading (Elementor Heading widget 5d756647) ========= */
/* !important is used to win over Elementor's own generated typography CSS. */
.e-5d756647-af4c09b.e-heading-base {
    font-family: 'ivypresto-display', serif !important;
    font-style: normal !important;
    font-weight: 100 !important;
    font-size: 96px !important;
    line-height: 96px !important;
}
@media screen and (max-width: 768px) {
    .e-5d756647-af4c09b.e-heading-base {
        font-size: 96px !important;
        line-height: 96px !important;
        font-weight: 100 !important;
    }
}
@media screen and (max-width: 640px) {
    .e-5d756647-af4c09b.e-heading-base {
        font-size: 40px !important;
        line-height: 40px !important;
        font-weight: 300 !important;
    }
}

/* ============ Dropdowns ============ */

/* Native <select> (no-JS fallback + closed-field look) */
.elementor-element-684b7d1c select.elementor-field-textual {
    background-color: #E7E7E7;
    border-radius: 0;
}
.elementor-element-684b7d1c select.elementor-field-textual option {
    background-color: #E7E7E7;
}
.elementor-element-684b7d1c select.elementor-field-textual option:hover,
.elementor-element-684b7d1c select.elementor-field-textual option:focus,
.elementor-element-684b7d1c select.elementor-field-textual option:active {
    background-color: #F6F6F6;
}
.elementor-element-684b7d1c select.elementor-field-textual option:checked {
    background-color: #E7E7E7;
}

/* When enhanced by JS: hide native select (kept for submission/validation) + caret. */
.elementor-element-684b7d1c select.rwcft-native-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
    pointer-events: none;
}
.elementor-element-684b7d1c .select-caret-down-wrapper.rwcft-caret-hidden {
    display: none !important;
}

/* Custom dropdown */
.elementor-element-684b7d1c .rwcft-dd {
    position: relative;
    width: 100%;
    font: inherit;
    color: #2F2F2F;
}
.elementor-element-684b7d1c .rwcft-dd__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 38px;
    margin: 0;
    padding: 6px 16px;
    background-color: #E7E7E7;
    border: 1px solid transparent;
    border-radius: 0;
    box-sizing: border-box;
    font: inherit;
    line-height: 22px;
    color: inherit;
    text-align: left;
    text-transform: inherit;
    cursor: pointer;
}
.elementor-element-684b7d1c .rwcft-dd__trigger:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 0;
}
.elementor-element-684b7d1c .rwcft-dd__label {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.elementor-element-684b7d1c .rwcft-dd__caret {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    color: #2F2F2F;
}
.elementor-element-684b7d1c .rwcft-dd__list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 50;
    margin: 0;
    padding: 6px 0;
    list-style: none;
    background-color: #E7E7E7;
    max-height: 260px;
    overflow-y: auto;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    display: none;
}
.elementor-element-684b7d1c .rwcft-dd[data-open="true"] .rwcft-dd__list {
    display: block;
}
.elementor-element-684b7d1c .rwcft-dd__list:focus {
    outline: none;
}
.elementor-element-684b7d1c .rwcft-dd__option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    line-height: 22px;
    color: #2F2F2F;
    text-transform: inherit;
    cursor: pointer;
}
.elementor-element-684b7d1c .rwcft-dd__option:hover,
.elementor-element-684b7d1c .rwcft-dd__option.is-active {
    background-color: #F6F6F6;
}
.elementor-element-684b7d1c .rwcft-dd__check {
    flex: 0 0 14px;
    width: 14px;
    display: inline-flex;
    justify-content: center;
    visibility: hidden;
}
.elementor-element-684b7d1c .rwcft-dd__option[aria-selected="true"] .rwcft-dd__check {
    visibility: visible;
}
.elementor-element-684b7d1c .rwcft-dd__text {
    flex: 1 1 auto;
}
