/* ==========================================================================
   Kat Eye Studios — shared site stylesheet
   Faithful static rebuild of kateye-studios.com (Squarespace 7.1).
   All values are taken from the live site's CSS/computed styles, not invented.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Self-hosted fonts (same open-licensed families the live site loads:
      "Roboto Condensed" for headings/nav/buttons, "nunito-sans" for body).
      Files are variable fonts; each weight declaration clamps to one weight.
   -------------------------------------------------------------------------- */
@font-face { font-family: 'nunito-sans'; font-style: normal; font-weight: 300; font-display: swap; src: url('../assets/fonts/nunito-sans-300.woff2') format('woff2'); }
@font-face { font-family: 'nunito-sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/fonts/nunito-sans-400.woff2') format('woff2'); }
@font-face { font-family: 'nunito-sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('../assets/fonts/nunito-sans-600.woff2') format('woff2'); }
@font-face { font-family: 'nunito-sans'; font-style: normal; font-weight: 700; font-display: swap; src: url('../assets/fonts/nunito-sans-700.woff2') format('woff2'); }
@font-face { font-family: 'nunito-sans'; font-style: italic; font-weight: 300; font-display: swap; src: url('../assets/fonts/nunito-sans-300-italic.woff2') format('woff2'); }
@font-face { font-family: 'nunito-sans'; font-style: italic; font-weight: 400; font-display: swap; src: url('../assets/fonts/nunito-sans-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Roboto Condensed'; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/fonts/roboto-condensed-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Roboto Condensed'; font-style: normal; font-weight: 700; font-display: swap; src: url('../assets/fonts/roboto-condensed-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Roboto Condensed'; font-style: italic; font-weight: 400; font-display: swap; src: url('../assets/fonts/roboto-condensed-italic-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* latin-ext subsets */
@font-face { font-family: 'Roboto Condensed'; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/fonts/roboto-condensed-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0332, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Roboto Condensed'; font-style: normal; font-weight: 700; font-display: swap; src: url('../assets/fonts/roboto-condensed-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0332, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* --------------------------------------------------------------------------
   2. Design tokens (verbatim from the live site's CSS)
   -------------------------------------------------------------------------- */
:root {
  /* palette */
  --white-hsl: 0, 0%, 100%;
  --black-hsl: 0, 0%, 0%;
  --accent-hsl: 42.85714286, 3.86740331%, 64.50980392%;   /* #A8A6A1 */
  --lightAccent-hsl: 0, 0%, 96.8627451%;                  /* #F7F7F7 */
  --darkAccent-hsl: 240, 2.60869565%, 22.54901961%;       /* #38383B */
  --safeLightAccent-hsl: var(--accent-hsl);
  --safeInverseLightAccent-hsl: 0, 0%, 100%;
  --brand-orange: #ff914d;                                /* custom.css accent */

  /* layout */
  --maxPageWidth: 1200px;
  --pagePadding: 3vw;
  --sqs-site-gutter: var(--pagePadding);
  --sqs-mobile-site-gutter: 6vw;
  --sqs-site-max-width: var(--maxPageWidth);

  /* type */
  --heading-font-font-family: "Roboto Condensed";
  --heading-font-font-weight: 400;
  --heading-font-line-height: 1.2em;
  --body-font-font-family: "nunito-sans";
  --body-font-font-weight: 300;
  --body-font-line-height: 1.8em;
  --meta-font-font-family: "nunito-sans";
  --heading-1-size-value: 4;
  --heading-2-size-value: 2.8;
  --heading-3-size-value: 2.2;
  --heading-4-size-value: 1.2;

  /* buttons */
  --primary-button-padding-y: 1.2rem;
  --primary-button-padding-x: 2.004rem;
  --tertiary-button-padding-y: 1.2rem;
  --tertiary-button-padding-x: 2.004rem;

  /* forms */
  --form-field-border-thickness: 1px;
  --form-field-padding-vertical: 10px;
  --form-field-padding-horizontal: 10px;
  --form-field-spacing-bottom: 20px;
  --form-field-column-gap: 10px;

  /* default theme = "black" (site default; sections with theme "" or "black") */
  --siteBackgroundColor: hsla(var(--black-hsl), 1);
  --headingExtraLargeColor: hsla(var(--white-hsl), 1);
  --headingLargeColor: hsla(var(--white-hsl), 1);
  --headingMediumColor: hsla(var(--white-hsl), 1);
  --headingSmallColor: hsla(var(--white-hsl), 1);
  --paragraphColor: hsla(var(--white-hsl), 1);
  --paragraphLinkColor: hsla(0, 0%, 100%, 1);
  --navigationLinkColor: hsla(var(--white-hsl), 1);
  --primaryButtonBackgroundColor: hsla(0, 0%, 2.35294118%, 1);  /* #060606 */
  --primaryButtonTextColor: hsla(var(--safeInverseLightAccent-hsl), 1);
  --secondaryButtonBackgroundColor: hsla(0, 0%, 0%, 1);
  --secondaryButtonTextColor: hsla(var(--white-hsl), 1);
  --tertiaryButtonBackgroundColor: hsla(0, 0%, 0%, 0);
  --tertiaryButtonTextColor: hsla(var(--white-hsl), 1);
  --menuOverlayBackgroundColor: hsla(var(--black-hsl), 1);
  --menuOverlayNavigationLinkColor: hsla(var(--white-hsl), 1);
  --tweak-form-block-title-color: #fff;
  --tweak-form-block-description-color: #fff;
  --tweak-form-block-caption-color: #fff;
  --tweak-form-block-field-fill-color: hsla(0, 0%, 98%, 1);
  --tweak-form-block-field-border-color: hsla(0, 0%, 0%, 1);
  --tweak-form-block-button-background-color: hsla(0, 0%, 0%, 1);
  --tweak-form-block-button-text-color: hsla(var(--safeInverseLightAccent-hsl), 1);
  --image-block-overlap-image-title-bg-color: hsla(var(--black-hsl), 1);
  --text-highlight-color: hsla(var(--white-hsl), 1);
}

/* "black-bold" section theme (footer + others) */
[data-section-theme="black-bold"] {
  --siteBackgroundColor: hsla(0, 0%, 13.33333333%, 1);   /* #222222 */
  --primaryButtonBackgroundColor: hsla(var(--safeLightAccent-hsl), 1);
  --headingLinkColor: hsla(var(--safeLightAccent-hsl), 1);
  --menuOverlayNavigationLinkColor: hsla(var(--safeLightAccent-hsl), 1);
}

/* --------------------------------------------------------------------------
   3. Base / reset
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background-color: var(--siteBackgroundColor);
  color: var(--paragraphColor);
  font-family: var(--body-font-font-family), sans-serif;
  font-weight: var(--body-font-font-weight);
  line-height: var(--body-font-line-height);
  -webkit-font-smoothing: antialiased;
  /* Adobe's nunito-sans build runs ~0.4% narrower than the Google release;
     this sub-pixel tracking correction makes line wraps match the live site */
  letter-spacing: -0.0018em;
}
img { max-width: 100%; height: auto; border: 0; }
a { color: var(--paragraphLinkColor); }

.hidden { display: none !important; }
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* --------------------------------------------------------------------------
   4. Typography — Squarespace 7.1 fluid type formulas (verbatim)
   -------------------------------------------------------------------------- */
h1, h2, h3, h4 {
  font-family: var(--heading-font-font-family);
  font-weight: var(--heading-font-font-weight);
  font-style: normal;
  letter-spacing: 0em;
  text-transform: none;
  margin: 2rem 0;
  line-height: calc(var(--heading-font-line-height) * (1 + (1 - var(--fs)) / 25));
}
h1 { --fs: var(--heading-1-size-value); color: var(--headingExtraLargeColor); }
h2 { --fs: var(--heading-2-size-value); color: var(--headingLargeColor); }
h3 { --fs: var(--heading-3-size-value); color: var(--headingMediumColor); }
h4 { --fs: var(--heading-4-size-value); color: var(--headingSmallColor); }
p { margin: 1rem 0; padding: 0; }
.sqsrte-large { --fs: 1.4; }
.sqsrte-small { --fs: 0.9; line-height: var(--body-font-line-height); }

/* heading-look utilities: let any tag render exactly like h1–h4 so each
   page can keep a single semantic <h1> without changing a visible pixel */
.h1-style, .h2-style, .h3-style, .h4-style {
  font-family: var(--heading-font-font-family);
  font-weight: var(--heading-font-font-weight);
  font-style: normal;
  letter-spacing: 0em;
  text-transform: none;
  margin: 2rem 0;
  line-height: calc(var(--heading-font-line-height) * (1 + (1 - var(--fs)) / 25));
}
.h1-style { --fs: var(--heading-1-size-value); color: var(--headingExtraLargeColor); }
.h2-style { --fs: var(--heading-2-size-value); color: var(--headingLargeColor); }
.h3-style { --fs: var(--heading-3-size-value); color: var(--headingMediumColor); }
.h4-style { --fs: var(--heading-4-size-value); color: var(--headingSmallColor); }
.sqsrte-text-color--white { color: #fff; }
.sqsrte-text-color--black { color: #000; }

/* desktop / landscape */
@media screen and (min-width: 768px), screen and (orientation: landscape) {
  h1, h2, h3, h4, .h1-style, .h2-style, .h3-style, .h4-style,
  .sqsrte-large, .sqsrte-small,
  .newsletter-form-header-title, .newsletter-form-footnote,
  .btn, .header-skip-link {
    font-size: min(calc((var(--fs, 1) - 1) * 1.2vw + 1rem),
                   max(calc((var(--fs, 1) - 1) * 0.012 * var(--maxPageWidth) + 1rem),
                       calc(var(--fs, 1) * 1rem)));
  }
}
/* mobile portrait */
@media screen and (max-width: 767px) and (orientation: portrait) {
  h1, h2, h3, h4, .h1-style, .h2-style, .h3-style, .h4-style,
  .sqsrte-large, .sqsrte-small,
  .newsletter-form-header-title, .newsletter-form-footnote,
  .btn, .header-skip-link {
    font-size: calc((var(--fs, 1) - 1) * calc(0.012 * min(100vh, 900px)) + 1rem);
  }
}

/* --------------------------------------------------------------------------
   5. Buttons
   -------------------------------------------------------------------------- */
.btn, .sqs-block-button-element {
  --fs: 1;
  position: relative;
  display: inline-block;
  font-family: var(--heading-font-font-family);
  font-weight: 400;
  line-height: 1.2em;
  letter-spacing: 0.02em;
  text-transform: none;
  text-decoration: none;
  text-align: center;
  border-radius: 0;
  cursor: pointer;
  border: 0;
}
.sqs-button-element--primary {
  color: var(--primaryButtonTextColor);
  background-color: var(--primaryButtonBackgroundColor);
  padding: var(--primary-button-padding-y) var(--primary-button-padding-x);
}
.sqs-button-element--secondary {
  color: var(--secondaryButtonTextColor);
  background-color: var(--secondaryButtonBackgroundColor);
  padding: 0.96rem 1.6032rem;
}
.sqs-button-element--tertiary {
  color: var(--tertiaryButtonTextColor);
  background-color: var(--tertiaryButtonBackgroundColor);
  padding: var(--tertiary-button-padding-y) var(--tertiary-button-padding-x);
}
/* header CTA — white border variant (btn--border, primary-inverse) */
.btn--border {
  background-color: hsla(0, 0%, 2.35294118%, 1);
  border: 2px solid #fff;
  color: #fff;
  --fs: 1.1;
  text-transform: uppercase;
  padding: 1.2rem 2.004rem;
}
/* fluid-engine block buttons: stretched to their grid area, so height
   comes from the grid — vertical padding is 0 on live (computed) */
.sqs-block-button-element {
  padding: 0 2.004rem;
}
.sqs-block-button-element.sqs-button-element--primary {
  background-color: hsla(0, 0%, 2.35294118%, 1);
  border: 2px solid #fff;
  color: #fff;
}
.sqs-block-button-element.sqs-button-element--secondary {
  background-color: #000;
  color: #fff;
  border: 2px solid #fff;
  padding: 0;
}
.sqs-block-button-element.sqs-button-element--tertiary {
  background-color: transparent;
  color: #fff;
}

/* button block containers */
.sqs-block-button-container { display: flex; }
.sqs-block-button-container--center { text-align: center; justify-content: center; }
.sqs-block-button-container--left { text-align: left; justify-content: flex-start; }
.sqs-block-button-container--right { text-align: right; justify-content: flex-end; }
.sqs-stretched { flex: 1; height: 100%; }
.sqs-stretched .sqs-block-button-element {
  height: 100%; display: flex; align-items: center;
  justify-content: center; flex: 1;
}

/* --------------------------------------------------------------------------
   6. Header (fixed, brandingCenter, theme black)
   -------------------------------------------------------------------------- */
.header {
  position: fixed;
  top: 0; right: 0; left: 0;
  z-index: 10;
  line-height: 1;
  background-color: hsla(var(--black-hsl), 1);
}
.header-announcement-bar-wrapper {
  padding: 2.7vw var(--pagePadding);
  transition: padding 140ms ease-in-out;
}
.header.shrink .header-announcement-bar-wrapper {
  padding-top: 1.8vw;
  padding-bottom: 1.8vw;
}
.header-inner { display: flex; align-items: center; }
.header-display-desktop { display: flex; align-items: center; width: 100%; }
.header-title-nav-wrapper { display: flex; flex: 1; align-items: center; }
.header-layout-branding-center .header-nav { width: 33%; flex: 1 1 33%; }
.header-layout-branding-center .header-title { width: 34%; text-align: center; flex: 1 1 34%; }
.header-actions { width: 33%; display: flex; align-items: center; justify-content: flex-end; }
.header-nav-list { display: flex; flex-wrap: wrap; align-items: center; }
.header-nav-item { font-family: "Roboto Condensed"; font-weight: 400; line-height: 1.8em; }
.header-layout-branding-center .header-nav .header-nav-item:not(:last-child) { margin-right: 2.5vw; }
.header-nav-item a {
  color: var(--navigationLinkColor);
  text-decoration: none;
  font-size: 1rem;
  padding: 0.1em 0;
  position: relative;
  display: inline-block;
}
/* animated underline on hover (scales in from the left, as on live) */
.header-nav-item a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.2s ease;
}
.header-nav-item a:hover::after { transform: scaleX(1); transform-origin: left; }
.header-nav-item--active a::after { transform: scaleX(1); }
.header-title-logo a { display: block; line-height: 0; }
.header-title-logo img { display: inline-block; max-height: 179px; width: auto; }
.header-display-mobile { display: none; }

.header-skip-link {
  position: absolute;
  top: -100px; left: 0;
  z-index: 100;
  padding: 1rem;
  background: var(--primaryButtonBackgroundColor);
  color: var(--primaryButtonTextColor);
  font-family: "Roboto Condensed";
  text-transform: uppercase;
  --fs: 1.1;
  text-decoration: none;
}
.header-skip-link:focus { top: 0; }

/* burger (double-line, 1px) */
.header-burger { display: none; }
.header-burger-btn {
  background: none; border: 0; padding: 12px 0; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.burger-box { position: relative; width: 66px; height: 22px; }
.top-bun, .patty, .bottom-bun {
  position: absolute; left: 15px; right: 15px;
  height: 1px; background-color: #fff;
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.top-bun { top: 4px; }
.patty { top: 50%; opacity: 0; }               /* doubleLineHamburger: patty hidden */
.bottom-bun { bottom: 4px; }
body.header--menu-open .top-bun { transform: translateY(6.5px) rotate(45deg); background-color: #fff; }
body.header--menu-open .bottom-bun { transform: translateY(-6.5px) rotate(-45deg); background-color: #fff; }

/* --------------------------------------------------------------------------
   7. Mobile overlay menu (fade, black, glow CTA pinned low)
   -------------------------------------------------------------------------- */
.header-menu {
  position: fixed;
  inset: 0;
  z-index: 9;
  display: flex;
  flex-direction: column;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0.6s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden auto;
}
body.header--menu-open .header-menu { visibility: visible; opacity: 1; }
.header-menu-bg { position: absolute; inset: 0; background-color: #000; }
.header-menu-nav {
  position: relative;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  justify-content: center;
  min-height: 100vh;
  padding-top: calc(6vw + 124px + 6vw);
}
.header-menu-nav-folder-content { flex-grow: 1; display: flex; flex-direction: column; justify-content: center; }
.header-menu-nav-item { text-align: center; }
.header-menu-nav-item a:not(.btn) {
  color: #fff;
  text-decoration: none;
  font-family: "Roboto Condensed";
  font-weight: 400;
  font-size: 8.5vmin;
  line-height: 1;
  display: inline-block;
  padding: 0.24em 0;
}
.header-menu-cta { text-align: center; padding: 10vmin 6vw; }

/* The signature glowing orange button. The owner's custom.css declares
   6px border / 30px text, but on the live site those are overridden by
   later theme rules — visitors see THESE computed values (verified live):
   2px orange border, 1.2rem/2.004rem padding, 1.2rem uppercase text. */
a.theme-btn--primary.btn.sqs-button-element--primary {
  --fs: 1.2;
  color: #fff;
  background: #000;
  border: 2px solid #ff914d;
  padding: 1.2rem 2.004rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  cursor: pointer;
  font-weight: 400;
  filter: drop-shadow(0 0 15px #ff914d) drop-shadow(0 0 50px #ff914d);
  transition: 0.5s;
}

/* --------------------------------------------------------------------------
   8. Page scaffold & sections
   -------------------------------------------------------------------------- */
#siteWrapper { position: relative; overflow: clip; }
/* the fixed header is cleared INSIDE the first section (its background
   extends up behind the header), exactly as on the live site */
main#page { padding-top: 0; }
#sections > .page-section:first-child { padding-top: var(--header-bottom, 0px); }

.page-section {
  position: relative;
  display: flex;
  box-sizing: border-box;
}
.page-section > .content-wrapper {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding-left: var(--sqs-site-gutter);
  padding-right: var(--sqs-site-gutter);
}
@media (max-width: 767px) {
  .page-section > .content-wrapper {
    padding-left: var(--sqs-mobile-site-gutter);
    padding-right: var(--sqs-mobile-site-gutter);
  }
}
.page-section .content { width: 100%; position: relative; }
.background-width--full-bleed > .content-wrapper { padding-left: 0; padding-right: 0; }

/* section heights (content-wrapper vertical padding + min-height) */
.section-height--small { min-height: 33vh; }
.section-height--small > .content-wrapper { padding-top: 3.3vmax; padding-bottom: 3.3vmax; }
.section-height--medium { min-height: 66vh; }
.section-height--medium > .content-wrapper { padding-top: 6.6vmax; padding-bottom: 6.6vmax; }
.section-height--large { min-height: 100vh; }
.section-height--large > .content-wrapper { padding-top: 10vmax; padding-bottom: 10vmax; }
.vertical-alignment--middle { align-items: center; }
.vertical-alignment--top > .content-wrapper { align-items: flex-start; }
.vertical-alignment--bottom > .content-wrapper { align-items: flex-end; }
/* bottom-aligned standard-height sections double the top padding and use
   the page gutter at the aligned edge (measured live) */
.section-height--small.vertical-alignment--bottom > .content-wrapper {
  padding-top: 6.6vmax;
  padding-bottom: var(--sqs-site-gutter);
}

/* section backgrounds */
.section-background {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background-color: var(--siteBackgroundColor);
}
.section-background img {
  position: absolute;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: var(--bg-focal, 50% 50%);
}
.section-background-overlay {
  position: absolute;
  inset: 0;
  background-color: #000;
  pointer-events: none;
}
.page-section > .content-wrapper { z-index: 1; }

/* --------------------------------------------------------------------------
   9. Fluid engine (per-page grid definitions live inline in each page,
      copied verbatim from the live site; these are the shared base rules)
   -------------------------------------------------------------------------- */
.fluid-engine { position: relative; }
.fe-block { position: relative; z-index: var(--z, auto); min-width: 0; }
.fe-block .sqs-block {
  position: relative;
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.fe-block .sqs-block-content { height: 100%; }

/* fluid-engine images */
.fe-block .sqs-image {
  display: block; position: relative;
  height: 100%; width: 100%;
}
.fe-block .content-fill img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: var(--image-focal, 50% 50%);
}
.fe-block .content-fit img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: contain;
  object-position: var(--image-focal, 50% 50%);
}

/* text blocks never overflow their grid areas */
.sqs-html-content { word-wrap: break-word; }
.sqs-html-content > :first-child { margin-top: 0; }
.sqs-html-content > :last-child { margin-bottom: 0; }

/* scaled text (JS sizes it to fill the block width; live: lh 1, no margins) */
.scaled-text-wrap { width: 100%; }
.scaled-text { display: block; white-space: nowrap; line-height: 1 !important; margin: 0; }

/* --------------------------------------------------------------------------
   10. Special content blocks
   -------------------------------------------------------------------------- */

/* ---- image overlays: live custom.css removes them site-wide ---- */
.image-block .image-overlay { background: none !important; }

/* ---- overlap image-title highlight (orange highlighter look) ---- */
.design-layout-overlap .image-title-wrapper { position: relative; z-index: 2; }
.design-layout-overlap .image-title * {
  line-height: 1.5 !important;
  background-color: #ff914d;
  box-shadow: 0.2em 0 0 #ff914d, -0.2em 0 0 #ff914d;
  display: inline;
}

/* ---- scribble underline (TextShape / sqsrte-text-highlight) ---- */
.sqsrte-text-highlight { position: relative; }
.text-shape { position: absolute; pointer-events: none; z-index: -1; }
.text-shape svg { display: block; width: 100%; height: 100%; overflow: visible; }
.text-shape path {
  fill: none;
  stroke: var(--text-highlight-color);
  stroke-width: 0.1em;
  stroke-linecap: square;
  stroke-linejoin: bevel;
  vector-effect: non-scaling-stroke;
}
.text-shape--draw path {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 0.5s ease-in-out;
}

/* ---- wavy section divider ---- */
.section-divider-block { position: absolute; left: 0; right: 0; bottom: 0; pointer-events: none; }
.has-section-divider { padding-bottom: 6vw; }
.section-divider-svg-clip { display: block; width: 100vw; height: 6vw; }

/* ---- gallery grid (Instagram section) ---- */
.gallery-section { min-height: 0 !important; display: block; }
.gallery-grid { width: 100%; }
.gallery-grid-wrapper {
  display: grid;
  grid-template-columns: repeat(var(--gallery-columns, 6), 1fr);
  gap: var(--gallery-gutter, 0px);
}
.gallery-grid-item { position: relative; margin: 0; }
.gallery-grid-item-wrapper { position: relative; padding-bottom: 100%; }
.gallery-grid-item img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.gallery-grid-image-link { display: block; }
@media (max-width: 767px) {
  .gallery-grid-wrapper { grid-template-columns: repeat(2, 1fr); }
}

/* ---- accordion (FAQs) ---- */
.accordion-items-container { list-style: none; margin: 0; padding: 0; }
.accordion-divider { border: 0; border-top: 1px solid currentColor; margin: 0; opacity: 1; }
.accordion-item__title-wrapper { margin: 0; }
.accordion-item__click-target {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none; border: 0; cursor: pointer;
  color: inherit;
  font-family: var(--heading-font-font-family);
  font-weight: 400;
  text-align: left;
  padding: 30px 0;
  font-size: 1.2rem;
  line-height: normal;
}
.accordion-icon-container { flex-shrink: 0; margin-left: 1rem; }
.accordion-icon-container .plus { position: relative; width: 14px; height: 14px; display: block; }
.accordion-icon-container .plus::before,
.accordion-icon-container .plus::after {
  content: ""; position: absolute; background: currentColor;
  transition: transform 0.3s ease;
}
.accordion-icon-container .plus::before { left: 50%; top: 0; bottom: 0; width: 1px; transform: translateX(-50%); }
.accordion-icon-container .plus::after { top: 50%; left: 0; right: 0; height: 1px; transform: translateY(-50%); }
.accordion-item.is-open .plus::before { transform: translateX(-50%) rotate(90deg); }
.accordion-item__dropdown {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.accordion-item__description { padding-bottom: 1.5rem; }
.accordion-item__description > :first-child { margin-top: 0; }

/* ---- testimonials summary carousel ---- */
.summary-carousel { position: relative; }
.summary-carousel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.summary-carousel-title { font-family: var(--meta-font-font-family); font-weight: 400; font-size: 14px; margin: 0; }
.summary-carousel .summary-item p { font-size: 14px; line-height: 19.6px; margin: 1em 0; }
.summary-carousel .summary-item p:first-child { margin-top: 0; }
.summary-carousel-pager { display: flex; gap: 1.25rem; }
.summary-carousel-pager button {
  background: none; border: 0; padding: 0; cursor: pointer; color: inherit;
  line-height: 0;
}
.summary-carousel-pager svg { width: 20px; height: 20px; stroke: currentColor; fill: none; }
.summary-carousel-viewport { overflow: hidden; }
.summary-carousel-track {
  display: flex;
  transition: transform 0.4s ease;
}
.summary-carousel-track > * { flex: 0 0 100%; min-width: 100%; }

/* ---- marquee (studio-space) ---- */
.marquee {
  overflow: hidden;
  padding: 0;   /* live declares 3% padding but immediately resets it */
  white-space: nowrap;
}
.marquee-track {
  display: inline-flex;
  animation: marquee-scroll var(--marquee-duration, 20s) linear infinite;
}
.marquee-item {
  --fs: var(--heading-1-size-value);
  margin: 0 0.6em;
  line-height: 1.4 !important;
  flex-shrink: 0;
}
@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ---- video blocks (native player replica) ----
   The block box is sized by its grid area; the video sits inside it
   (object-fit contain) and never stretches the grid, matching live. */
.video-block { position: relative; }
.video-player {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;   /* live player wrapper declares 16:9 inline */
  overflow: visible;
}
/* inner wrapper hugs the visible video (its aspect ratio set inline per video)
   so the play/pause control sits on the video like the live player */
.video-player-inner {
  position: absolute; inset: 0;
  margin: auto;
  height: 100%;
  max-width: 100%;
}
.video-player video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: contain;
}
.video-toggle {
  position: absolute;
  left: 12px; bottom: 12px;
  width: 48px; height: 48px;
  border-radius: 50%;
  border: 0;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.video-toggle svg { width: 18px; height: 18px; fill: currentColor; }
.video-toggle .icon-play { display: none; }
.video-toggle.is-paused .icon-play { display: block; }
.video-toggle.is-paused .icon-pause { display: none; }

/* --------------------------------------------------------------------------
   11. Forms (theme colors, solid square fields — as configured on live)
   -------------------------------------------------------------------------- */
.form-wrapper .field-list { margin: 0; padding: 0; }
.form-item { margin-bottom: var(--form-field-spacing-bottom); }
.form-item label, .form-item .title {
  display: block;
  color: var(--tweak-form-block-title-color);
  font-family: var(--body-font-font-family);
  font-weight: 400;
  font-size: 1rem;
  margin-bottom: 0.5rem;
}
.form-item .description {
  color: var(--tweak-form-block-description-color);
  font-size: 0.9rem;
  margin: 0.25rem 0 0.5rem;
}
.form-item input[type="text"],
.form-item input[type="email"],
.form-item input[type="tel"],
.form-item textarea {
  width: 100%;
  background-color: var(--tweak-form-block-field-fill-color);
  border: var(--form-field-border-thickness) solid var(--tweak-form-block-field-border-color);
  border-radius: 0;
  padding: var(--form-field-padding-vertical) var(--form-field-padding-horizontal);
  /* NOTE: white input text on a near-white field is how the LIVE site is
     configured (typed text is barely visible there) — preserved on purpose */
  color: #fff;
  font-family: var(--body-font-font-family);
  font-weight: 300;
  font-size: 1rem;
  line-height: 1.5;
}
.form-item input:focus, .form-item textarea:focus {
  outline: 1px solid var(--tweak-form-block-field-border-color);
  outline-offset: 2px;
}
.form-item.field-error input, .form-item.field-error textarea { border-color: #e00; }
.form-item .caption {
  color: var(--tweak-form-block-caption-color);
  font-size: 0.9rem;
  margin-top: 0.25rem;
}
.form-item fieldset { border: 0; margin: 0; padding: 0; }
.form-item .option {
  display: flex; align-items: center; gap: 0.6em;
  color: var(--tweak-form-block-option-color, #fff);
  margin: 6px 0 0;   /* live: option rows carry margin-top 6px only */
}
.form-item label.caption { margin-top: 8px; margin-bottom: 0; }
.form-button-wrapper { display: flex; }
.form-button-wrapper .sqs-system-button {
  background-color: hsla(0, 0%, 0%, 1);
  color: #fff;
  border: 2px solid #fff;
  padding: 1.2rem 2.004rem;
  font-size: 1rem;
}
.form-button-wrapper--align-left { justify-content: flex-start; }
.form-button-wrapper--align-center { justify-content: center; }
.form-error-message {
  border: 1px solid #e00;
  color: #fff;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.form-error-message a { color: #fff; }
.form-submission-text { white-space: pre-wrap; }

/* newsletter (footer JOIN THE LIST) */
.newsletter-form-wrapper--alignCenter { text-align: center; }
.newsletter-form-header-title { --fs: 2.2; margin: 0 0 0.5rem; }
.newsletter-form-header-description p { margin: 0.5rem 0 1rem; }
.newsletter-form-body {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 0;
  max-width: 500px;
  margin: 0 auto;
}
.newsletter-form-fields-wrapper { flex: 1; }
.newsletter-form-field-wrapper input {
  width: 100%;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 0;
  padding: 1.4rem 2rem;
  font-family: var(--body-font-font-family);
  font-weight: 300;
  font-size: 1rem;
  color: #000;
}
.newsletter-form-button {
  --fs: 1;
  background-color: #222;
  color: #fff;
  border: 2px solid #fff;
  border-radius: 0;
  padding: 1.4rem 2rem;
  font-family: var(--heading-font-font-family);
  font-weight: 400;
  letter-spacing: 0.02em;
  font-size: 1rem;
  cursor: pointer;
  white-space: nowrap;
}
.newsletter-form-footnote { --fs: 0.9; margin-top: 1rem; }
.newsletter-form-footnote p { margin: 0; font-size: inherit; }

/* --------------------------------------------------------------------------
   12. Footer
   -------------------------------------------------------------------------- */
#footer-sections a { color: var(--paragraphLinkColor); }

/* --------------------------------------------------------------------------
   13. Owner custom.css rules preserved verbatim (targets on other pages
       or legacy content — kept for exact parity)
   -------------------------------------------------------------------------- */
section[data-section-id="62f95b99b3093a17248a4e13"] .section-background { background-color: #000 !important; }
section[data-section-id="62f9d4b86cbac673565e531e"] .section-background { background-color: #000 !important; }
section[data-section-id="62f9dbb967eb8318c564ea04"] .section-background { background-color: #000 !important; }
#block-yui_3_17_2_1_1660509878006_5338 span.sqsrte-text-color--white { -webkit-text-stroke: 3px #fff; color: rgba(0,0,0,0) !important; font-size: 4rem; font-weight: 900; transition: color 2s, text-shadow 2s !important; }
#block-yui_3_17_2_1_1660509878006_5338 { margin-top: -3em; }
@media screen and (max-width: 640px) {
  #block-yui_3_17_2_1_1660509878006_5338 span.sqsrte-text-color--white { -webkit-text-stroke: 2px #fff; font-size: 2.5rem; }
}
#block-3c4b55fa7b3309f696cc span.sqsrte-text-color--black { -webkit-text-stroke: 2px #fff; color: rgba(0,0,0,0) !important; font-size: 3rem; font-weight: 900; transition: color 2s, text-shadow 2s !important; }
@media screen and (max-width: 640px) {
  #block-3c4b55fa7b3309f696cc span.sqsrte-text-color--black { -webkit-text-stroke: 2px #fff; font-size: 2.5rem; }
}
#block-yui_3_17_2_1_1660582037087_479801 h2 { -webkit-text-stroke: 2px #fff; color: rgba(0,0,0,0) !important; font-size: 3rem; font-weight: 900; transition: color 2s, text-shadow 2s !important; }
@media screen and (max-width: 640px) {
  #block-yui_3_17_2_1_1660582037087_479801 h2 { -webkit-text-stroke: 1.5px #fff; font-size: 2.5rem; }
}
@media screen and (max-width: 767px) {
  #block-bdce267ef7297248b9c1.sqs-block.spacer-block.sqs-block-spacer { display: block !important; }
  section[data-section-id="62f52701856c53011c44288b"] { display: none !important; }
  section[data-section-id="62f52709856c53011c442968"] { margin-bottom: -3em; }
}

/* --------------------------------------------------------------------------
   14. Responsive: burger threshold (≤799px, and ≤1024px coarse pointer)
   -------------------------------------------------------------------------- */
@media only screen and (pointer: coarse) and (max-width: 1024px), screen and (max-width: 799px) {
  .header-display-desktop { display: none; }
  .header-display-mobile { display: flex; align-items: center; justify-content: space-between; width: 100%; }
  .header-display-mobile .header-title { width: auto; flex: 0 1 auto; text-align: left; }
  .header-announcement-bar-wrapper { padding: 6vw; }
  .header.shrink .header-announcement-bar-wrapper { padding-top: 6vw; padding-bottom: 6vw; }
  .header-display-mobile .header-title-logo img { max-height: 124px; }
  .header-burger { display: flex; }
  .header-display-mobile .header-nav,
  .header-display-mobile .header-actions--right .header-actions-action--cta { display: none; }
}

/* floating cart — present in live DOM but never shown to visitors */
.floating-cart {
  position: fixed;
  bottom: 20px; right: 20px;
  z-index: 20;
}
.floating-cart .icon--cart { display: flex; align-items: center; color: #fff; text-decoration: none; }
.floating-cart svg { width: 31px; height: 24px; stroke: currentColor; fill: none; }


/* --------------------------------------------------------------------------
   15. Footer fluid-engine grid (verbatim from live, shared across pages)
   -------------------------------------------------------------------------- */
.fe-62f9dd3f45cdda65bd824951 {
  --grid-gutter: calc(var(--sqs-mobile-site-gutter, 6vw) - 11.0px);
  --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (8 - 1)) ) / 8 );

  display: grid;
  position: relative;
  grid-area: 1/1/-1/-1;
  grid-template-rows: repeat(27,minmax(24px, auto));
  grid-template-columns:
    minmax(var(--grid-gutter), 1fr)
    repeat(8, minmax(0, var(--cell-max-width)))
    minmax(var(--grid-gutter), 1fr);
  row-gap: 11.0px;
  column-gap: 11.0px;
  overflow-x: hidden;
  overflow-x: clip;
}

@media (min-width: 768px) {
  .background-width--inset .fe-62f9dd3f45cdda65bd824951 {
    --inset-padding: calc(var(--sqs-site-gutter) * 2);
  }

  .fe-62f9dd3f45cdda65bd824951 {
    --grid-gutter: calc(var(--sqs-site-gutter, 4vw) - 11.0px);
    --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (24 - 1)) ) / 24 );
    --inset-padding: 0vw;

    --row-height-scaling-factor: 0.0215;
    --container-width: min(var(--sqs-site-max-width, 1500px), calc(100vw - var(--sqs-site-gutter, 4vw) * 2 - var(--inset-padding) ));

    grid-template-rows: repeat(14,minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto));
    grid-template-columns:
      minmax(var(--grid-gutter), 1fr)
      repeat(24, minmax(0, var(--cell-max-width)))
      minmax(var(--grid-gutter), 1fr);
  }
}

  .fe-block-62f9dd3fd108cd51c7279c56 {
    grid-area: 2/2/8/10;
    z-index: 0;

    
  }

  .fe-block-62f9dd3fd108cd51c7279c56 .sqs-block {
    justify-content: flex-start;
  }

  .fe-block-62f9dd3fd108cd51c7279c56 .sqs-block-alignment-wrapper {
    align-items: flex-start;
  }

  @media (min-width: 768px) {
    .fe-block-62f9dd3fd108cd51c7279c56 {
      grid-area: 2/2/8/8;
      z-index: 0;

      

      
    }

    .fe-block-62f9dd3fd108cd51c7279c56 .sqs-block {
      justify-content: flex-start;
    }

    .fe-block-62f9dd3fd108cd51c7279c56 .sqs-block-alignment-wrapper {
      align-items: flex-start;
    }
  }

  .fe-block-yui_3_17_2_1_1660538520515_669758 {
    grid-area: 9/2/15/10;
    z-index: 1;

    
  }

  .fe-block-yui_3_17_2_1_1660538520515_669758 .sqs-block {
    justify-content: flex-start;
  }

  .fe-block-yui_3_17_2_1_1660538520515_669758 .sqs-block-alignment-wrapper {
    align-items: flex-start;
  }

  @media (min-width: 768px) {
    .fe-block-yui_3_17_2_1_1660538520515_669758 {
      grid-area: 2/8/8/16;
      z-index: 1;

      

      
    }

    .fe-block-yui_3_17_2_1_1660538520515_669758 .sqs-block {
      justify-content: flex-start;
    }

    .fe-block-yui_3_17_2_1_1660538520515_669758 .sqs-block-alignment-wrapper {
      align-items: flex-start;
    }
  }

  .fe-block-yui_3_17_2_1_1660538520515_672957 {
    grid-area: 16/2/28/10;
    z-index: 2;

    
  }

  .fe-block-yui_3_17_2_1_1660538520515_672957 .sqs-block {
    justify-content: flex-start;
  }

  .fe-block-yui_3_17_2_1_1660538520515_672957 .sqs-block-alignment-wrapper {
    align-items: flex-start;
  }

  @media (min-width: 768px) {
    .fe-block-yui_3_17_2_1_1660538520515_672957 {
      grid-area: 2/17/15/27;
      z-index: 2;

      

      
    }

    .fe-block-yui_3_17_2_1_1660538520515_672957 .sqs-block {
      justify-content: flex-start;
    }

    .fe-block-yui_3_17_2_1_1660538520515_672957 .sqs-block-alignment-wrapper {
      align-items: flex-start;
    }
  }
