/* Quasi brand details + motion system.
   Mirrors assets/css/style.css from the approved HTML reference. */

:root{--q-ease:cubic-bezier(.22,.61,.36,1);--q-fast:.28s;--q-med:.35s;--q-slow:.7s;}
html{scroll-behavior:smooth;}

/* ---------- Eyebrow leading rule (.eyebrow::before, 34x2px) ---------- */
.quasi-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:12px;}
.quasi-eyebrow .elementor-heading-title::before{content:"";flex:0 0 34px;width:34px;height:2px;background:currentColor;opacity:.95;}
.quasi-eyebrow--center{text-align:center;}
.quasi-eyebrow--center .elementor-heading-title{justify-content:center;}

/* ---------- Framed image corner accents (.framed::before/::after) ---------- */
.quasi-framed{position:relative;}
.quasi-framed::before,.quasi-framed::after{content:"";position:absolute;width:46%;height:46%;border-radius:3px;pointer-events:none;z-index:0;}
.quasi-framed::before{left:-18px;top:-18px;border-left:4px solid #D9C9A8;border-top:4px solid #D9C9A8;}
.quasi-framed::after{right:-18px;bottom:-18px;border-right:4px solid #B5651D;border-bottom:4px solid #B5651D;}
.quasi-framed img{position:relative;z-index:1;}
@media (max-width:860px){.quasi-framed::before,.quasi-framed::after{display:none;}}

/* ---------- Navigation ---------- */
#quasi-header .elementskit-navbar-nav>li>a{transition:color var(--q-fast) var(--q-ease)!important;position:relative;}
#quasi-header .elementskit-navbar-nav>li>a::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;background:#B5651D;transform:scaleX(0);transform-origin:left;transition:transform var(--q-med) var(--q-ease);}
#quasi-header .elementskit-navbar-nav>li:hover>a::after,#quasi-header .elementskit-navbar-nav>li.current-menu-item>a::after{transform:scaleX(1);}
#quasi-header{transition:box-shadow var(--q-med) var(--q-ease);}

/* ---------- Top bar + footer links ---------- */
#quasi-topbar a,#quasi-footer a{transition:color var(--q-fast) var(--q-ease),padding-left var(--q-fast) var(--q-ease);}
#quasi-footer .elementor-icon-list-item:hover a{padding-left:5px;}

/* ---------- Social icons ---------- */
.elementor-social-icon{transition:background-color var(--q-fast) var(--q-ease),color var(--q-fast) var(--q-ease),transform var(--q-fast) var(--q-ease)!important;}
.elementor-social-icon:hover{transform:translateY(-2px);}

/* ---------- Buttons ---------- */
.elementor-button{transition:background-color var(--q-fast) var(--q-ease),color var(--q-fast) var(--q-ease),border-color var(--q-fast) var(--q-ease),transform var(--q-fast) var(--q-ease),box-shadow var(--q-fast) var(--q-ease)!important;}
.elementor-button:hover{transform:translateY(-2px);}
.elementor-button .elementor-button-icon{transition:transform var(--q-fast) var(--q-ease);}
.elementor-button:hover .elementor-button-icon{transform:translateX(4px);}

/* ---------- Card image zoom (.card:hover .card__media img) ---------- */
.e-con .elementor-widget-image img{transition:transform var(--q-slow) var(--q-ease);}
.e-con:hover>.e-con-inner>.elementor-widget-image img,.e-con:hover>.elementor-widget-image img{transform:scale(1.06);}
.e-con .elementor-widget-image{overflow:hidden;border-radius:3px;}

/* ---------- Icon boxes ---------- */
.elementor-icon-box-icon .elementor-icon{transition:background-color var(--q-med) var(--q-ease),color var(--q-med) var(--q-ease);}

/* ---------- Accordion ---------- */
.elementor-accordion .elementor-tab-title{transition:color var(--q-fast) var(--q-ease);}
.elementor-accordion .elementor-tab-content{transition:none;}

/* ---------- Focus visibility ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3E6B8A;outline-offset:3px;}

/* ---------- WPForms branding ---------- */
.wpforms-container .wpforms-field-label{font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:#2B2926;margin-bottom:8px;}
.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container input[type=tel],.wpforms-container select,.wpforms-container textarea{font-family:Inter,sans-serif;font-size:16px;color:#2B2926;background:#fff;border:1px solid rgba(140,137,126,.4);border-radius:3px;padding:14px 16px;box-shadow:none;transition:border-color var(--q-fast) var(--q-ease),box-shadow var(--q-fast) var(--q-ease);}
.wpforms-container input:focus,.wpforms-container select:focus,.wpforms-container textarea:focus{border-color:#3E6B8A;box-shadow:0 0 0 3px rgba(62,107,138,.14);outline:none;}
.wpforms-container button[type=submit]{font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;background:#B5651D;color:#fff;border:2px solid #B5651D;border-radius:3px;padding:16px 30px;transition:background-color var(--q-fast) var(--q-ease),border-color var(--q-fast) var(--q-ease),transform var(--q-fast) var(--q-ease);}
.wpforms-container button[type=submit]:hover{background:#9A5416;border-color:#9A5416;transform:translateY(-2px);}
#home-newsletter .wpforms-field-label{color:rgba(255,255,255,.88);}
#home-newsletter .wpforms-container input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.22);color:#fff;}
#home-newsletter .wpforms-container input::placeholder{color:rgba(255,255,255,.45);}
#home-newsletter .wpforms-container input:focus{border-color:#D9C9A8;box-shadow:0 0 0 3px rgba(217,201,168,.18);}

/* ---------- Safety net: never let an entrance animation strand content ---------- */
.elementor-invisible{visibility:hidden;}
.no-js .elementor-invisible{visibility:visible!important;animation:none!important;}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .elementor-invisible{visibility:visible!important;}
  .elementor-button:hover,.elementor-social-icon:hover,.e-con:hover>.e-con-inner>.elementor-widget-image img{transform:none!important;}
}

/* ================= QUASI STICKY HEADER =================
   Sticky must sit on the Xpro wrapper: the inner container's parent is only
   158px tall, so a sticky child would unstick almost immediately. #page is
   the tall positioned ancestor that makes this work. */
header.xpro-theme-builder-header{position:-webkit-sticky;position:sticky;top:0;z-index:999;}
header.xpro-theme-builder-header .xpro-theme-builder-header-nav{z-index:999;}
#quasi-header{transition:box-shadow .3s var(--q-ease),background-color .3s var(--q-ease);}
#quasi-topbar{transition:opacity .2s var(--q-ease);}
body.quasi-scrolled #quasi-topbar{display:none!important;}
body.quasi-scrolled #quasi-header{box-shadow:0 4px 18px rgba(43,41,38,.10);}
html{scroll-padding-top:120px;}
body.admin-bar header.xpro-theme-builder-header{top:32px;}
@media screen and (max-width:782px){body.admin-bar header.xpro-theme-builder-header{top:46px;}}
@media (max-width:1024px){html{scroll-padding-top:90px;}body.quasi-scrolled #quasi-header{box-shadow:0 3px 14px rgba(43,41,38,.12);}}
.elementskit-menu-offcanvas-elements,.elementskit-menu-overlay{z-index:1000!important;}
@media (prefers-reduced-motion:reduce){#quasi-topbar{transition:none;}}
