/* ============================================================
   OXFORDIAN — ELEMENTOR COMPATIBILITY v2.0
   Works like Astra/Hello Elementor — build in Elementor,
   theme provides design tokens + structure only.
   ============================================================ */

.elementor-section.elementor-section-boxed > .elementor-container { max-width:var(--container-max) !important; }
.e-con-inner { max-width:var(--container-max) !important; }

:root {
  --e-global-color-primary:   var(--ox-red);
  --e-global-color-secondary: var(--ox-navy);
  --e-global-color-text:      var(--ox-gray-900);
  --e-global-color-accent:    var(--ox-gold);
}

/* Typography */
.elementor-widget-heading .elementor-heading-title { font-family:var(--font-heading) !important; letter-spacing:-.02em !important; }
.elementor-widget-text-editor p { font-family:var(--font-body) !important; line-height:1.8 !important; }

/* Buttons */
.elementor-button { font-family:var(--font-heading) !important; font-weight:700 !important; letter-spacing:.05em !important; text-transform:uppercase !important; border-radius:var(--radius-full) !important; transition:all var(--duration-base) var(--ease-smooth) !important; }
.elementor-button.elementor-size-sm { padding:.625rem 1.5rem !important; font-size:.75rem !important; }
.elementor-button.elementor-size-md { padding:.875rem 2rem !important; font-size:.875rem !important; }
.elementor-button.elementor-size-lg { padding:1.125rem 2.5rem !important; font-size:1rem !important; }
.elementor-button:hover { transform:translateY(-2px) !important; }

/* Forms */
.elementor-form .elementor-field-group .elementor-field,
.elementor-form .elementor-field-group textarea { border-radius:var(--radius-lg) !important; border:2px solid var(--ox-gray-200) !important; font-family:var(--font-body) !important; padding:.875rem 1.25rem !important; transition:border-color var(--duration-fast) !important; }
.elementor-form .elementor-field-group .elementor-field:focus,
.elementor-form .elementor-field-group textarea:focus { border-color:var(--ox-red) !important; box-shadow:0 0 0 4px rgba(192,39,44,.08) !important; outline:none !important; }
.elementor-form .elementor-button[type="submit"] { background:var(--ox-red) !important; border-color:var(--ox-red) !important; border-radius:var(--radius-full) !important; font-family:var(--font-heading) !important; font-weight:700 !important; letter-spacing:.06em !important; text-transform:uppercase !important; }
.elementor-form .elementor-button[type="submit"]:hover { background:var(--ox-red-deep) !important; transform:translateY(-2px) !important; box-shadow:var(--shadow-red) !important; }

/* Images */
.elementor-widget-image img { border-radius:var(--radius-lg); transition:transform var(--duration-slow) var(--ease-smooth); }
.elementor-widget-image:hover img { transform:scale(1.02); }

/* Icon Box */
.elementor-icon-box-icon .elementor-icon { border-radius:var(--radius-lg) !important; transition:all var(--duration-base) var(--ease-spring) !important; }
.elementor-icon-box-wrapper:hover .elementor-icon-box-icon .elementor-icon { transform:scale(1.08) rotate(-5deg) !important; }

/* Testimonial */
.elementor-testimonial__text { font-family:var(--font-body) !important; font-style:italic !important; line-height:1.8 !important; }
.elementor-testimonial__name { font-family:var(--font-heading) !important; font-weight:700 !important; }

/* Carousel */
.elementor-swiper-button { background:#fff !important; border:2px solid var(--ox-gray-200) !important; width:48px !important; height:48px !important; border-radius:50% !important; box-shadow:var(--shadow-md) !important; color:var(--ox-navy) !important; transition:all var(--duration-base) !important; }
.elementor-swiper-button:hover { background:var(--ox-red) !important; border-color:var(--ox-red) !important; color:#fff !important; }
.swiper-pagination-bullet { background:var(--ox-gray-300) !important; opacity:1 !important; }
.swiper-pagination-bullet-active { background:var(--ox-red) !important; width:24px !important; border-radius:4px !important; }

/* Accordion */
.elementor-accordion .elementor-accordion-title { font-family:var(--font-heading) !important; font-weight:700 !important; color:var(--ox-navy) !important; }
.elementor-accordion .elementor-active .elementor-accordion-title { color:var(--ox-red) !important; }
.elementor-accordion .elementor-accordion-icon { color:var(--ox-red) !important; }

/* Tabs */
.elementor-tab-title { font-family:var(--font-heading) !important; font-weight:700 !important; }
.elementor-tab-title.elementor-active { color:var(--ox-red) !important; border-bottom-color:var(--ox-red) !important; }

/* Counter */
.elementor-counter .elementor-counter-number-wrapper { font-family:var(--font-display) !important; font-weight:800 !important; color:var(--ox-navy) !important; }

/* Progress Bar */
.elementor-progress-bar { background:var(--ox-red) !important; border-radius:var(--radius-full) !important; }

/* Section CSS class helpers — use in Elementor → Advanced → CSS Classes */
.ox-section-navy    { background-color:var(--ox-navy) !important; }
.ox-section-cream   { background-color:var(--ox-cream) !important; }
.ox-section-red     { background-color:var(--ox-red) !important; }
.ox-section-white   { background-color:#fff !important; }
.ox-section-padded  { padding:var(--section-pad) 0 !important; }
.ox-card-hover      { transition:transform var(--duration-slow) var(--ease-smooth),box-shadow var(--duration-slow) !important; }
.ox-card-hover:hover { transform:translateY(-6px) !important; box-shadow:var(--shadow-xl) !important; }
.ox-rounded         { border-radius:var(--radius-2xl) !important; overflow:hidden !important; }
.ox-shadow          { box-shadow:var(--shadow-lg) !important; }
.ox-glass           { background:rgba(255,255,255,.72) !important; backdrop-filter:blur(20px) !important; border:1px solid rgba(255,255,255,.4) !important; }
.ox-text-white      { color:#fff !important; }
.ox-text-navy       { color:var(--ox-navy) !important; }
.ox-text-red        { color:var(--ox-red) !important; }
.ox-text-gold       { color:var(--ox-gold) !important; }

/* Theme builder */
.elementor-location-header { z-index:1000; position:sticky; top:0; width:100%; }
.elementor-popup-modal .elementor-button { border-radius:var(--radius-full) !important; }

@media(max-width:1024px) { .elementor-section.elementor-section-boxed > .elementor-container { max-width:calc(100% - 4rem) !important; } }
@media(max-width:768px)  { .elementor-section { padding-left:1.25rem !important; padding-right:1.25rem !important; } }
