/* Superior Site Kit: fonts and the few global rules Elementor has no control for.
   Colors come from the Elementor Global Colors (var(--e-global-color-*)). */
@font-face { font-family: "Sora"; src: url("fonts/sora-variable.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("fonts/inter-variable.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { background-color: var(--e-global-color-sasbg); -webkit-font-smoothing: antialiased; }
.elementor [id] { scroll-margin-top: 96px; }
::selection { background: var(--e-global-color-accent); color: var(--e-global-color-saswhite); }

/* Headings: blue accent words and the brushed-metal fill */
.elementor-heading-title .accent { color: var(--e-global-color-accent); }
.sas-on-light .elementor-heading-title .accent { color: var(--e-global-color-primary); }
.metal-text .elementor-heading-title, .elementor-heading-title .metal-text {
  background: linear-gradient(180deg, var(--e-global-color-saswhite) 0%, var(--e-global-color-sassilver) 45%, var(--e-global-color-sasmuted) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
}

/* Text Editor rhythm */
.elementor.elementor .e-con > .elementor-widget-text-editor.elementor-widget:not(.elementor-widget__width-initial), .e-con.e-con > .e-con-inner > .elementor-widget-text-editor.elementor-widget:not(.elementor-widget__width-initial) { max-width: 68ch; }
.elementor-widget-text-editor p { margin: 0 0 1em; }
.elementor-widget-text-editor p:last-child, .elementor-widget-text-editor ul:last-child, .elementor-widget-text-editor ol:last-child { margin-bottom: 0; }
.elementor-widget-text-editor strong { color: var(--e-global-color-text); font-weight: 600; }
.sas-on-light.elementor-widget-text-editor strong { color: var(--e-global-color-sasink); }
.elementor-widget-text-editor a { text-underline-offset: 3px; }
.stat-note { display: block; margin-top: 4px; font-size: 0.78rem; color: var(--e-global-color-sassilver); opacity: 0.85; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Breadcrumbs */
.sas-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sas-breadcrumbs li + li::before { content: "/"; margin-right: 8px; color: var(--e-global-color-sasline); }
.sas-breadcrumbs a { color: var(--e-global-color-sassteel); text-decoration: none; }
.sas-breadcrumbs a:hover { color: var(--e-global-color-saswhite); }

/* Text links: arrow nudges on hover */
.sas-text-link .elementor-button:hover .elementor-button-text { text-decoration: underline; text-underline-offset: 4px; }
.sas-text-link .elementor-button-icon { transition: transform 0.25s; }
.sas-text-link .elementor-button:hover .elementor-button-icon { transform: translateX(3px); }

/* Edge glow divider at the top of a section */
.sas-edge-glow { pointer-events: none; }

/* Recalls and error-code lists (markup inside Text Editor widgets) */
.sas-recall-meta p { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; }
.recall-brand { color: var(--e-global-color-accent); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.recall-model-list { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.recall-model-list li { padding: 4px 10px; border-radius: 8px; border: 1px solid var(--e-global-color-sasline); background: var(--e-global-color-sasglass); font-variant-numeric: tabular-nums; font-size: 0.9rem; color: var(--e-global-color-text); overflow-wrap: anywhere; }
.code-sources { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.code-sources a { color: var(--e-global-color-saswhite); text-decoration: underline; text-decoration-color: var(--e-global-color-sasedge); text-underline-offset: 3px; overflow-wrap: anywhere; }
.code-sources a:hover { color: var(--e-global-color-accent); }
.code-source-pub { color: var(--e-global-color-sasmuted); font-size: 0.9rem; }
.sas-code-hits { max-width: 860px; }
.code-hits { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.code-hit a { display: flex; gap: 18px; align-items: baseline; padding: 14px 18px; border-radius: 12px; border: 1px solid var(--e-global-color-sasline); background: var(--e-global-color-saspanel); color: var(--e-global-color-sasmuted); text-decoration: none; }
.code-hit a:hover { border-color: var(--e-global-color-accent); }
.code-hit-code { flex: 0 0 90px; font-family: var(--e-global-typography-primary-font-family), sans-serif; font-weight: 700; color: var(--e-global-color-saswhite); }
.code-hit-text strong { color: var(--e-global-color-sassilver); margin-right: 6px; }
.sas-code-body p { margin: 0; }
.elementor [id^="code-"]:target { background: var(--e-global-color-sastint); box-shadow: inset 3px 0 0 var(--e-global-color-accent); }
@media (max-width: 600px) { .code-hit a { flex-direction: column; gap: 4px; } }

/* Gentler entrance animation, matching the design's 28px rise */
@keyframes fadeInUp { from { opacity: 0; transform: translate3d(0, 28px, 0); } to { opacity: 1; transform: none; } }
.elementor-element.animated.fadeInUp { animation-duration: 0.9s; animation-timing-function: cubic-bezier(0.2, 0.7, 0.1, 1); }

/* "Learn more" inside linked icon-box cards */
.sas-more { display: flex; width: fit-content; align-items: center; gap: 6px; margin-top: 14px; font-family: var(--e-global-typography-primary-font-family), sans-serif; font-weight: 600; font-size: 0.9rem; color: var(--e-global-color-accent); }
.sas-on-light .sas-more, .sas-card-light .sas-more { color: var(--e-global-color-primary); }
.sas-more::after { content: ""; width: 14px; height: 14px; background: currentColor; transition: transform 0.25s;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.sas-card-link:hover .sas-more::after { transform: translateX(3px); }
.sas-card .xpro-box-icon-item { display: inline-flex; align-items: center; justify-content: center; }
.sas-card .xpro-box-icon-item > svg { width: 28px; height: 28px; }
.sas-card-compact .xpro-box-icon-item > svg { width: 22px; height: 22px; }

/* Testimonial cards: stars, quote, then the author pinned to the bottom */
.sas-testimonial .xpro-testimonial-wrap { height: 100%; display: flex; flex-direction: column; }
.sas-testimonial .xpro-testimonial-author { margin-top: auto; display: flex; align-items: center; gap: 12px; text-align: left; }
.sas-testimonial .xpro-testimonial-image { flex: 0 0 auto; margin: 0; }
.sas-testimonial .xpro-testimonial-title, .sas-testimonial .xpro-testimonial-designation { margin: 0; }

/* Accordion: the open item reads as one card (title + answer) */
.sas-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title { border-bottom-width: 0 !important; border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.sas-accordion .e-n-accordion-item-title-icon { transition: transform 0.3s; }
.elementor.elementor .e-con > .elementor-widget:is(.sas-code-hits, .sas-code-sources, .sas-model-list, .sas-filter, .sas-breadcrumbs, .sas-recall-meta, .sas-code-body, .sas-wide), .e-con.e-con > .e-con-inner > .elementor-widget:is(.sas-code-hits, .sas-code-sources, .sas-model-list, .sas-filter, .sas-breadcrumbs, .sas-recall-meta, .sas-code-body, .sas-wide) { max-width: none; }
.elementor.elementor .e-con > .elementor-widget.sas-code-hits, .e-con.e-con > .e-con-inner > .elementor-widget.sas-code-hits { max-width: 860px; }
.elementor.elementor .e-con > .elementor-widget.sas-filter, .e-con.e-con > .e-con-inner > .elementor-widget.sas-filter { max-width: 560px; }

/* Booking form (WPForms): layout and states; colors and type come from the widget's global styles. */
.sas-booking-form .wpforms-container { margin: 0 !important; }
.sas-booking-form .wpforms-field-container { display: flex; flex-wrap: wrap; gap: 16px; }
.sas-booking-form .wpforms-field-container .wpforms-field { flex: 1 1 100%; margin: 0 !important; padding: 0 !important; float: none !important; width: auto !important; max-width: none; clear: none !important; }
.sas-booking-form .wpforms-field-container .wpforms-field.wpforms-one-half { flex: 1 1 calc(50% - 8px); min-width: 220px; }
.sas-booking-form .wpforms-field input, .sas-booking-form .wpforms-field select, .sas-booking-form .wpforms-field textarea { width: 100% !important; max-width: none !important; height: auto; box-shadow: none; transition: border-color .2s ease, box-shadow .2s ease; }
.sas-booking-form .wpforms-field select { appearance: none; -webkit-appearance: none; padding-right: 44px !important; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--e-global-color-sasmuted) 50%), linear-gradient(135deg, var(--e-global-color-sasmuted) 50%, transparent 50%) !important;
  background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50% !important; background-size: 6px 6px, 6px 6px !important; background-repeat: no-repeat !important; }
.sas-booking-form .wpforms-field select option { background: var(--e-global-color-saspanel); color: var(--e-global-color-text); }
.sas-booking-form .wpforms-field textarea { height: 130px !important; min-height: 130px; resize: vertical; }
.sas-booking-form .wpforms-field input:focus, .sas-booking-form .wpforms-field select:focus, .sas-booking-form .wpforms-field textarea:focus { outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--e-global-color-accent) 25%, transparent) !important; }
.sas-booking-form .wpforms-field-label { display: block; line-height: 1.3; }
.sas-booking-form .wpforms-required-label { color: inherit !important; font-weight: inherit; }
.sas-booking-form label.wpforms-error, .sas-booking-form em.wpforms-error { color: var(--e-global-color-sasbluepale) !important; font-size: .82rem; margin-top: 6px; }
.sas-booking-form .wpforms-field input.wpforms-error, .sas-booking-form .wpforms-field select.wpforms-error, .sas-booking-form .wpforms-field textarea.wpforms-error { border-color: var(--e-global-color-sasbluepale) !important; }
.sas-booking-form .wpforms-submit-container { margin-top: 22px !important; padding: 0 !important; }
.sas-booking-form button.wpforms-submit { display: inline-flex !important; align-items: center; gap: 10px; height: auto !important; line-height: 1.2 !important; cursor: pointer; transition: all .25s ease !important; }
.sas-booking-form button.wpforms-submit::before { content: ""; width: 18px; height: 18px; flex: 0 0 18px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='19' height='15' rx='2.5'/%3E%3Cpath d='m3 6.5 9 6.5 9-6.5'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='19' height='15' rx='2.5'/%3E%3Cpath d='m3 6.5 9 6.5 9-6.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.sas-booking-form button.wpforms-submit:hover { transform: translateY(-1px); }
.sas-booking-form .wpforms-confirmation-container-full { margin: 0; padding: 14px 16px; border-radius: 12px; background: var(--e-global-color-sastint) !important; border: 1px solid var(--e-global-color-sasedge) !important; color: var(--e-global-color-text) !important; }
.sas-booking-form .wpforms-confirmation-container-full p { margin: 0; color: var(--e-global-color-saswhite) !important; }
.sas-form-note p { margin: 0; }

/* Site header (Xpro Theme Builder): sticky glass bar. Blur sits on a pseudo-element so the
   fixed mobile menu is not trapped inside it. Containers are targeted by element ID. */
header.xpro-theme-builder-header { position: sticky; top: 0; z-index: 100; }
.admin-bar header.xpro-theme-builder-header { top: var(--wp-admin--admin-bar--height, 32px); }
#sas-header { position: relative; isolation: isolate; }
#sas-header::before { content: ""; position: absolute; inset: 0; z-index: -1; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
#sas-header .xpro-elementor-horizontal-navbar-nav > li.current-menu-item > a,
#sas-header .xpro-elementor-horizontal-navbar-nav > li.current-menu-ancestor > a { color: var(--e-global-color-saswhite); background-color: var(--e-global-color-sasglass); }
#sas-header .xpro-elementor-horizontal-navbar-nav > li > a { transition: color .2s ease, background-color .2s ease; }
@media (min-width: 1025px) {
  #sas-header .xpro-elementor-dropdown-menu { background: var(--e-global-color-saspanel2); border: 1px solid var(--e-global-color-sasline); border-radius: 14px; padding: 10px; gap: 2px; }
}
@media (max-width: 1024px) {
  #sas-header .xpro-elementor-horizontal-navbar-nav > li > a { font-size: 1.15rem; padding: 16px 4px; border-radius: 0; }
  #sas-header .xpro-elementor-dropdown-menu a { padding: 10px 12px; }
}
#sas-header .xpro-elementor-dropdown-menu a { border-radius: 8px; transition: color .2s ease, background-color .2s ease; }
#sas-header .xpro-elementor-dropdown-menu li.current-menu-item > a { color: var(--e-global-color-saswhite); }
#sas-header .ast-header-navigation-arrow { display: none; }
.sas-header-phone .elementor-button-icon svg, .sas-header-phone .elementor-button-icon i { fill: var(--e-global-color-accent); color: var(--e-global-color-accent); }
.sas-site-logo a, .sas-site-logo .xpro-site-logo { display: block; line-height: 0; }
.sas-site-logo img { display: block; height: auto; }

/* Site footer */
#sas-footer .sas-footer-links a, #sas-footer .sas-footer-links .elementor-icon-list-text { transition: color .2s ease; }
#sas-footer .sas-footer-contact .elementor-icon-list-text { font-weight: 600; }
#sas-footer .elementor-widget-text-editor a { color: var(--e-global-color-sasmuted); }
#sas-footer .elementor-widget-text-editor a:hover { color: var(--e-global-color-saswhite); }
#sas-footer .sas-footer-links .elementor-icon-list-icon { display: none; }

/* Mobile call / book bar */
#sas-mobile-bar { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
#sas-mobile-bar .elementor-button { min-height: 48px; }
@media (max-width: 767px) { body { padding-bottom: 84px; } }
#sas-footer .sas-footer-contact .sas-sub { font-weight: 400; color: var(--e-global-color-sasmuted); }
#sas-footer .sas-footer-contact .elementor-icon-list-text { line-height: 1.6; }
#sas-footer .elementor-widget-text-editor a { text-decoration: underline; text-underline-offset: 2px; }
#sas-header .xpro-elementor-horizontal-menu-toggler svg, #sas-header .xpro-elementor-horizontal-menu-close svg { fill: var(--e-global-color-saswhite); }

/* Contact lines: icon + two-line text; the inline link stays inline (Elementor makes list links flex). */
.sas-contact-line .elementor-icon-list-text a { display: inline; color: var(--e-global-color-saswhite); font-weight: 600; text-decoration: none; transition: color .2s ease; }
.sas-contact-line .elementor-icon-list-text a:hover { color: var(--e-global-color-accent); }
.sas-contact-line.sas-on-light .elementor-icon-list-text a { color: var(--e-global-color-sasink); }

/* Error code rows: meaning, aliases and the first thing to try. */
.sas-code-body p + p { margin-top: 6px; }
.sas-code-body .code-row-meaning { color: var(--e-global-color-text); font-weight: 500; }
.sas-code-body .code-row-also, .sas-code-body .code-row-note { font-size: 0.9rem; color: var(--e-global-color-sasmuted); }
.sas-code-body .code-row-also strong { color: var(--e-global-color-sassilver); }
.sas-code-body .code-row-check { color: var(--e-global-color-sassilver); font-size: 0.95rem; }
.sas-code-body .code-row-check strong { color: var(--e-global-color-accent); }

/* Tacoma clip is portrait (856x1072): keep the whole frame instead of Elementor's 4:3 crop */
.sas-play-in-view .elementor-wrapper { aspect-ratio: 856 / 1072 !important; --video-aspect-ratio: 0.7985; }
.sas-play-in-view .elementor-wrapper video { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; }
#sas-hero { background-image: none !important; }
#sas-hero .elementor-background-video-container { background: url("/wp-content/uploads/2026/10/hero-kitchen.webp") 30% 40% / cover no-repeat; }
/* hero video visibility */
#sas-hero .elementor-background-video-container { opacity: .8 !important; }
#sas-hero .elementor-background-video-container::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, var(--e-global-color-sasoverlay) 0%, var(--e-global-color-sasoverlay) 30%, transparent 70%), linear-gradient(0deg, var(--e-global-color-sasbg) 0%, transparent 30%); }
#sas-hero::before { opacity: .35 !important; }
@media (max-width: 1024px) { #sas-hero .elementor-background-video-container { opacity: .85 !important; } #sas-hero .elementor-background-video-container::after { background: linear-gradient(0deg, var(--e-global-color-sasbg) 0%, transparent 35%), linear-gradient(90deg, var(--e-global-color-sasoverlay) 0%, transparent 60%); } }
#sas-hero .elementor-background-video-hosted { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; transform: none !important; object-fit: cover; object-position: 75% 30%; }
@media (min-width: 1025px) { #sas-hero .elementor-background-video-hosted { object-position: 50% 35%; } }
/* error code search results */
.elementor .sas-code-hits .code-hit a, .elementor .sas-code-hits .code-hit a:hover { color: var(--e-global-color-sasmuted); text-decoration: none; }
@media (max-width: 600px) { .code-hit-code { flex: none; } }

/* Links on dark sections: lighter blue, and body-text links underlined, so they pass contrast and don't rely on color alone */
body .elementor .elementor-widget-text-editor:not(.sas-on-light) p > a:not([class]) { color: #8aa2ff; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body .elementor .elementor-widget-text-editor:not(.sas-on-light) p > a:not([class]):hover { color: var(--e-global-color-saswhite); }
body .elementor .elementor-widget.sas-text-link:not(.sas-on-light) .elementor-button.elementor-button-link { color: #8aa2ff; }
body .elementor .elementor-widget.sas-text-link:not(.sas-on-light) .elementor-button.elementor-button-link:hover { color: var(--e-global-color-saswhite); }

/* Content waiting for its entrance animation stays transparent but not hidden, so screen readers
   (and heading-order checks) see it before it scrolls into view. */
.elementor .elementor-invisible { visibility: visible; opacity: 0; }
