/* ═══════════════════════════════════════════════════════
   CRUMAIRE — Elementor Overrides + Contact Form 7
   Elementor widget tweaks & CF7 brand styling
   ═══════════════════════════════════════════════════════ */

/* ── Elementor Global ──────────────────────────────────── */

/* Override Elementor's default blue accent */
:root {
    --e-global-color-accent:     #C8A951;
    --e-global-color-primary:    #3B1D4A;
    --e-global-color-secondary:  #B08968;
    --e-global-color-text:       #F3E9DC;
    --e-global-typography-primary-font-family: 'Cinzel';
    --e-global-typography-secondary-font-family: 'Crimson Pro';
    --e-global-typography-text-font-family: 'Nunito Sans';
    --e-global-typography-accent-font-family: 'Cinzel';
}

/* Section backgrounds default */
.elementor-section {
    position: relative;
}

/* ── Heading Widget ────────────────────────────────────── */
.elementor-widget-heading .elementor-heading-title {
    font-family:  var(--crumaire-font-display);
    line-height:  1.2;
    letter-spacing: 0.05em;
}

/* ── Text Editor Widget ────────────────────────────────── */
.elementor-widget-text-editor {
    font-family: var(--crumaire-font-body);
    line-height: 1.8;
    color:       var(--crumaire-text-light);
}

.elementor-widget-text-editor em,
.elementor-widget-text-editor .crumaire-italic {
    font-family: var(--crumaire-font-secondary);
    font-style:  italic;
}

/* ── Image Widget ──────────────────────────────────────── */
.elementor-widget-image img {
    border-radius: var(--crumaire-radius);
}

/* Image border variant */
.elementor-widget-image.image-gold-border img {
    border:  var(--crumaire-border-gold-full);
    padding: 6px;
}

/* ── Button Widget ─────────────────────────────────────── */
.elementor-widget-button .elementor-button {
    font-family:    var(--crumaire-font-display);
    font-size:      0.78rem;
    font-weight:    600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-radius:  var(--crumaire-radius);
    transition:     var(--crumaire-transition);
}

/* Gold outline style */
.elementor-widget-button .elementor-button.crumaire-btn-outline,
.elementor-widget-button .elementor-button[style*="background: transparent"],
.elementor-widget-button .elementor-button.e-btn-custom-1 {
    background:   transparent !important;
    color:        var(--crumaire-accent) !important;
    border:       2px solid var(--crumaire-accent) !important;
}

.elementor-widget-button .elementor-button.crumaire-btn-outline:hover {
    background:   var(--crumaire-accent) !important;
    color:        var(--crumaire-primary) !important;
}

/* ── Icon Box Widget ───────────────────────────────────── */
.elementor-widget-icon-box .elementor-icon {
    color: var(--crumaire-accent);
}

.elementor-widget-icon-box .elementor-icon-box-title {
    font-family:    var(--crumaire-font-display);
    letter-spacing: 0.05em;
}

/* ── Image Box Widget ──────────────────────────────────── */
.elementor-widget-image-box .elementor-image-box-title {
    font-family:    var(--crumaire-font-display);
    letter-spacing: 0.08em;
}

/* ── Divider Widget ────────────────────────────────────── */
.elementor-widget-divider .elementor-divider-separator {
    border-color: rgba(200,169,81,0.4);
}

/* Gold accent divider class */
.elementor-widget-divider.gold-divider .elementor-divider-separator {
    border-color: var(--crumaire-accent);
    border-width: 2px;
}

/* ── Counter Widget ────────────────────────────────────── */
.elementor-widget-counter .elementor-counter-number-wrapper {
    font-family: var(--crumaire-font-display);
    color:       var(--crumaire-accent);
}

.elementor-widget-counter .elementor-counter-title {
    font-family:  var(--crumaire-font-secondary);
    font-style:   italic;
    color:        var(--crumaire-text-muted);
}

/* ── Testimonial Widget ────────────────────────────────── */
.elementor-widget-testimonial .elementor-testimonial-content {
    font-family: var(--crumaire-font-secondary);
    font-style:  italic;
    font-size:   1.1rem;
    line-height: 1.8;
    color:       var(--crumaire-support-2);
}

.elementor-widget-testimonial .elementor-testimonial-name {
    font-family:    var(--crumaire-font-display);
    font-size:      0.75rem;
    font-weight:    700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color:          var(--crumaire-accent);
}

/* ── Shortcode Widget (CF7 host) ───────────────────────── */
.elementor-widget-shortcode {
    position: relative;
}

/* ═══════════════════════════════════════════════════════
   Contact Form 7 — Brand Styling
   ═══════════════════════════════════════════════════════ */

.wpcf7 {
    font-family: var(--crumaire-font-body);
}

/* Labels */
.wpcf7 .wpcf7-form label {
    font-family:    var(--crumaire-font-body);
    font-size:      0.75rem;
    font-weight:    600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color:          var(--crumaire-text-muted);
    display:        block;
    margin-bottom:  0.4em;
}

/* Inputs */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 input[type="url"],
.wpcf7 textarea,
.wpcf7 select {
    width:           100%;
    font-family:     var(--crumaire-font-body);
    font-size:       0.95rem;
    color:           var(--crumaire-text-light);
    background:      rgba(255,255,255,0.04);
    border:          1px solid rgba(200,169,81,0.3);
    border-radius:   var(--crumaire-radius);
    padding:         0.75em 1em;
    transition:      var(--crumaire-transition);
    outline:         none;
    appearance:      none;
    -webkit-appearance: none;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 textarea:focus {
    border-color:    var(--crumaire-accent);
    background:      rgba(200,169,81,0.05);
    box-shadow:      0 0 0 3px rgba(200,169,81,0.12);
}

.wpcf7 textarea {
    min-height: 140px;
    resize:     vertical;
}

/* Field wrapper spacing */
.wpcf7 .wpcf7-form p {
    margin-bottom: 1.25em;
}

.wpcf7 .wpcf7-form br {
    display: none;
}

/* Submit button */
.wpcf7 input[type="submit"] {
    font-family:    var(--crumaire-font-display);
    font-size:      0.78rem;
    font-weight:    600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    background:     var(--crumaire-accent);
    color:          var(--crumaire-primary);
    border:         2px solid var(--crumaire-accent);
    border-radius:  var(--crumaire-radius);
    padding:        0.9em 2.5em;
    cursor:         pointer;
    transition:     var(--crumaire-transition);
    display:        inline-block;
    appearance:     none;
}

.wpcf7 input[type="submit"]:hover {
    background:   var(--crumaire-accent-dark);
    border-color: var(--crumaire-accent-dark);
    color:        var(--crumaire-text-light);
}

/* Response messages */
.wpcf7 .wpcf7-response-output {
    font-family:  var(--crumaire-font-body);
    font-size:    0.9rem;
    border-radius: var(--crumaire-radius);
    padding:      0.8em 1.2em;
    margin-top:   1em;
    border:       none;
}

.wpcf7 .wpcf7-mail-sent-ok {
    background:  rgba(200,169,81,0.1);
    border-left: 4px solid var(--crumaire-accent);
    color:       var(--crumaire-text-light);
}

.wpcf7 .wpcf7-validation-errors,
.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-spam-blocked {
    background:  rgba(180,60,60,0.1);
    border-left: 4px solid #b43c3c;
    color:       var(--crumaire-text-light);
}

/* Validation spans */
.wpcf7 .wpcf7-not-valid-tip {
    font-size:   0.78rem;
    color:       #e07070;
    margin-top:  0.3em;
    display:     block;
}

/* Loading spinner */
.wpcf7 .ajax-loader {
    display: inline-block;
    width:   16px;
    height:  16px;
    border:  2px solid rgba(200,169,81,0.3);
    border-top-color: var(--crumaire-accent);
    border-radius: 50%;
    animation: wpcf7-spin 0.8s linear infinite;
    vertical-align: middle;
    margin-left: 0.75em;
}

@keyframes wpcf7-spin {
    to { transform: rotate(360deg); }
}

/* Two-column form layout helper */
.wpcf7 .crumaire-form-grid {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap:                   0 1.5em;
}

@media (max-width: 600px) {
    .wpcf7 .crumaire-form-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Elementor Popup / Dialog ──────────────────────────── */
.elementor-popup-modal .dialog-widget-content {
    background:    var(--crumaire-primary);
    border:        var(--crumaire-border-gold);
    border-radius: var(--crumaire-radius);
}

/* ── Accordion Widget (Elementor Free) ─────────────────── */
.elementor-widget-accordion .elementor-accordion-item {
    border:        1px solid rgba(200,169,81,0.25);
    border-radius: var(--crumaire-radius);
    margin-bottom: 0.5em;
    overflow:      hidden;
}

.elementor-widget-accordion .elementor-tab-title {
    font-family:    var(--crumaire-font-display);
    font-size:      0.8rem;
    font-weight:    700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color:          var(--crumaire-text-light);
    padding:        1em 1.5em;
    background:     transparent;
    cursor:         pointer;
    transition:     background 0.3s ease;
}

.elementor-widget-accordion .elementor-tab-title:hover,
.elementor-widget-accordion .elementor-tab-title.elementor-active {
    background: rgba(200,169,81,0.08);
    color:      var(--crumaire-accent);
}

.elementor-widget-accordion .elementor-tab-content {
    font-family:  var(--crumaire-font-body);
    font-size:    0.95rem;
    line-height:  1.8;
    color:        var(--crumaire-text-muted);
    padding:      var(--crumaire-space-sm) var(--crumaire-space-md);
    border-top:   1px solid rgba(200,169,81,0.2);
}

/* ── Toggle Widget ─────────────────────────────────────── */
.elementor-widget-toggle .elementor-toggle-item {
    border-bottom: 1px solid rgba(200,169,81,0.2);
}

.elementor-widget-toggle .elementor-tab-title {
    font-family:    var(--crumaire-font-display);
    font-size:      0.8rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color:          var(--crumaire-text-light);
}

.elementor-widget-toggle .elementor-tab-title.elementor-active {
    color: var(--crumaire-accent);
}

.elementor-widget-toggle .elementor-tab-content {
    font-family: var(--crumaire-font-body);
    color:       var(--crumaire-text-muted);
    line-height: 1.8;
}

/* ── Star Rating ───────────────────────────────────────── */
.elementor-widget-star-rating .elementor-star-rating {
    color: var(--crumaire-accent);
}

/* ── Progress Bar ──────────────────────────────────────── */
.elementor-widget-progress .elementor-progress-bar {
    background: var(--crumaire-accent);
}

.elementor-widget-progress .elementor-progress-wrapper {
    background: rgba(255,255,255,0.08);
    border-radius: var(--crumaire-radius-sm);
}

/* ── Alert Widget ──────────────────────────────────────── */
.elementor-widget-alert.elementor-alert-info {
    background:  rgba(200,169,81,0.1);
    border-color: var(--crumaire-accent);
    color:        var(--crumaire-text-light);
}

/* ── Scroll-to-top ─────────────────────────────────────── */
#crumaire-scroll-top {
    position:      fixed;
    bottom:        2rem;
    right:         2rem;
    width:         42px;
    height:        42px;
    background:    var(--crumaire-accent);
    color:         var(--crumaire-primary);
    border:        none;
    border-radius: 50%;
    cursor:        pointer;
    display:       flex;
    align-items:   center;
    justify-content: center;
    font-size:     1rem;
    opacity:       0;
    transform:     translateY(10px);
    transition:    var(--crumaire-transition);
    z-index:       999;
    pointer-events: none;
}

#crumaire-scroll-top.visible {
    opacity:        1;
    transform:      translateY(0);
    pointer-events: auto;
}

#crumaire-scroll-top:hover {
    background: var(--crumaire-accent-dark);
    transform:  translateY(-2px);
}
