/*
 * Sounds Amazing - laptop responsive layer
 *
 * GENERATED - do not hand-edit. Re-run after changing layout in Elementor:
 *     cd wp-content/themes/hello-elementor-child
 *     node tools/gen-laptop-css.mjs > assets/css/laptop-responsive.css
 * It reads Elementor's own generated CSS in uploads/elementor/css, so it picks
 * up whatever the current desktop and tablet values are.
 *
 * Why this file exists
 * --------------------
 * The build is a literal translation of a 1920px-wide Figma frame, and Elementor
 * is running its two default breakpoints only: tablet (<=1024px) and mobile
 * (<=767px). Nothing sits between 1025px and 1920px, so every laptop rendered
 * the full desktop layout - 92px headings, 88px gutters, a 1414px card row -
 * inside as little as 1104px of content box.
 *
 * What it does
 * ------------
 * Elementor already states the intended value at both ends of that gap (its
 * desktop rule and its <=1024 rule), so each property below interpolates
 * linearly between the tablet value at 1024px and the desktop value at 1920px.
 * That covers every laptop width continuously rather than in steps, and at
 * 1920px every value resolves to exactly what the design already had, so the
 * desktop rendering is unchanged.
 *
 * Everything is scoped to min-width:1025px - tablet and mobile keep Elementor's
 * own rules untouched.
 */

@media (min-width: 1025px) {

  /* ---- Site header: replace the hardcoded 529px nav offset ---- */
  /*
   * The nav was pushed into place with margin-left:529px on its widget
   * container. That margin is part of the widget's own width, so the widget
   * claimed 529 + 632 = 1161px of the header row. Together with the logo (225)
   * and the icon cluster (110) it needed 1496px, which the 1744px row has at
   * 1920 - and a 1280px laptop, with 1104px, does not. The <ul> wrapped
   * internally and the header grew from 126px to 324px tall. It was already
   * wrapping at 1600 and 1366 too (216px tall), so this was never just a
   * small-laptop problem.
   *
   * At 1920 the row ends up with 248px of slack after the icons, i.e. the free
   * space splits ~68/32 either side of the nav. Interpolating the offset the
   * same way as everything else in this file keeps that balance: 529px at 1920,
   * down to 30px at 1024, so the nav always fits without moving on desktop.
   */
  :root .elementor-36 .elementor-element.elementor-element-5a29402 > .elementor-widget-container {
    margin: 0 0 0 clamp(30px, calc(30px + 499 * (100vw - 1024px) / 896), 529px);
  }

  /* The <ul> itself is what wrapped; keep it on one line and let the item
     padding, not the line count, absorb a narrower header. */
  :root .elementor-36 .elementor-element.elementor-element-5a29402 ul.hfe-nav-menu {
    flex-wrap: nowrap;
  }

  :root .elementor-36 .elementor-element.elementor-element-5a29402 .menu-item a.hfe-menu-item {
    white-space: nowrap;
    padding-left: clamp(9px, 1.1vw, 18px);
    padding-right: clamp(9px, 1.1vw, 18px);
  }

  /* ---- Card rows: shrink to fit instead of wrapping ---- */
  /*
   * Four 328px cards plus three 34px gaps need 1414px. The row is set to wrap,
   * so anywhere the content box was under that - every width below 1600 - it
   * broke 2+2. The three 360px product cards (1144px needed) broke 2+1 at 1280.
   *
   * Switching the rows to nowrap lets flex-shrink do the work: the cards keep
   * their 328/360px width wherever it fits, so 1920 is unchanged, and narrow to
   * share the row on smaller laptops. min-width:0 is what allows a flex item to
   * shrink below its content's intrinsic width.
   */
  :root .elementor-30 .elementor-element.elementor-element-eab4ce9,
  :root .elementor-30 .elementor-element.elementor-element-aec246f {
    --flex-wrap: nowrap;
  }

  :root .elementor-30 .elementor-element.elementor-element-cf0f841,
  :root .elementor-30 .elementor-element.elementor-element-81d8533,
  :root .elementor-30 .elementor-element.elementor-element-67c6e4e,
  :root .elementor-30 .elementor-element.elementor-element-938ac25,
  :root .elementor-30 .elementor-element.elementor-element-e361d43,
  :root .elementor-30 .elementor-element.elementor-element-70a3a2e,
  :root .elementor-30 .elementor-element.elementor-element-fa27d8e {
    min-width: 0;
  }

  /* ---- Decorative images: keep the design's proportion ---- */

  :root .elementor-30 .elementor-element.elementor-element-ec95ffc img {
    width: min(903px, 47.031vw);
  }

  :root .elementor-30 .elementor-element.elementor-element-5cfdcdc img {
    width: min(694px, 36.146vw);
  }

  :root .elementor-30 .elementor-element.elementor-element-3625d5c img {
    width: min(644px, 33.542vw);
  }

  :root .elementor-30 .elementor-element.elementor-element-3809f67 img {
    width: min(510px, 26.563vw);
  }

  :root .elementor-30 .elementor-element.elementor-element-e7184d3 img {
    width: min(510px, 26.563vw);
  }

  :root .elementor-30 .elementor-element.elementor-element-08fd209 img {
    width: min(440px, 22.917vw);
  }

  :root .elementor-30 .elementor-element.elementor-element-8e8469b img {
    width: min(420px, 21.875vw);
  }

  :root .elementor-30 .elementor-element.elementor-element-b312e03 img {
    width: min(150px, 7.813vw);
  }

  :root .elementor-30 .elementor-element.elementor-element-cb32bbb img {
    width: min(150px, 7.813vw);
  }

  :root .elementor-37 .elementor-element.elementor-element-f7bd700 img {
    width: min(537px, 27.969vw);
  }

  /* ---- Global kit typography ---- */

  :root .elementor-kit-7 {
    --e-global-typography-primary-font-size: clamp(54px, calc(54px + 26 * (100vw - 1024px) / 896), 80px);
    --e-global-typography-primary-line-height: clamp(53px, calc(53px + 25 * (100vw - 1024px) / 896), 78px);
    --e-global-typography-secondary-font-size: clamp(41px, calc(41px + 19 * (100vw - 1024px) / 896), 60px);
    --e-global-typography-secondary-line-height: clamp(40px, calc(40px + 38 * (100vw - 1024px) / 896), 78px);
    --e-global-typography-sahero-font-size: clamp(63px, calc(63px + 29 * (100vw - 1024px) / 896), 92px);
    --e-global-typography-sahero-line-height: clamp(61px, calc(61px + 17 * (100vw - 1024px) / 896), 78px);
    --e-global-typography-sacard-font-size: clamp(24px, calc(24px + 11 * (100vw - 1024px) / 896), 35px);
    --e-global-typography-sacard-line-height: clamp(23px, calc(23px + 55 * (100vw - 1024px) / 896), 78px);
  }

  /* ---- Site header ---- */

  :root .elementor-36 .elementor-element.elementor-element-e069e40 {
    --padding-top: clamp(0px, calc(12px + -12 * (100vw - 1024px) / 896), 12px);
    --padding-bottom: clamp(0px, calc(12px + -12 * (100vw - 1024px) / 896), 12px);
    --padding-left: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
    --padding-right: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
  }

  /* ---- Home page ---- */

  :root .elementor-30 .elementor-element.elementor-element-2fd8bf2 {
    --min-height: clamp(620px, calc(620px + 417 * (100vw - 1024px) / 896), 1037px);
    --padding-top: clamp(110px, calc(110px + 99 * (100vw - 1024px) / 896), 209px);
    --padding-bottom: clamp(60px, calc(80px + -20 * (100vw - 1024px) / 896), 80px);
    --padding-left: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
    --padding-right: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
  }

  :root .elementor-30 .elementor-element.elementor-element-b4169f3 .elementor-heading-title {
    font-size: clamp(61px, calc(61px + 31 * (100vw - 1024px) / 896), 92px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  :root .elementor-30 .elementor-element.elementor-element-36f8584 {
    --padding-top: clamp(26px, calc(26px + 18 * (100vw - 1024px) / 896), 44px);
    --padding-bottom: clamp(26px, calc(26px + 18 * (100vw - 1024px) / 896), 44px);
    --padding-left: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
    --padding-right: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
  }

  :root .elementor-30 .elementor-element.elementor-element-fa6ee7a .elementor-heading-title {
    font-size: clamp(53px, calc(53px + 27 * (100vw - 1024px) / 896), 80px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  :root .elementor-30 .elementor-element.elementor-element-7e90e92 {
    --padding-top: clamp(105px, calc(105px + 70 * (100vw - 1024px) / 896), 175px);
    --padding-bottom: clamp(129px, calc(129px + 86 * (100vw - 1024px) / 896), 215px);
    --padding-left: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
    --padding-right: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
  }

  :root .elementor-30 .elementor-element.elementor-element-a0d039c .elementor-heading-title {
    font-size: clamp(53px, calc(53px + 27 * (100vw - 1024px) / 896), 80px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  :root .elementor-30 .elementor-element.elementor-element-b329d8f .elementor-heading-title {
    font-size: clamp(23px, calc(23px + 12 * (100vw - 1024px) / 896), 35px);
    line-height: clamp(24px, calc(24px + 10 * (100vw - 1024px) / 896), 34px);
  }

  :root .elementor-30 .elementor-element.elementor-element-2e69061 .elementor-heading-title {
    font-size: clamp(23px, calc(23px + 12 * (100vw - 1024px) / 896), 35px);
    line-height: clamp(24px, calc(24px + 10 * (100vw - 1024px) / 896), 34px);
  }

  :root .elementor-30 .elementor-element.elementor-element-77dd643 .elementor-heading-title {
    font-size: clamp(23px, calc(23px + 12 * (100vw - 1024px) / 896), 35px);
    line-height: clamp(24px, calc(24px + 10 * (100vw - 1024px) / 896), 34px);
  }

  :root .elementor-30 .elementor-element.elementor-element-e4c5338 .elementor-heading-title {
    font-size: clamp(23px, calc(23px + 12 * (100vw - 1024px) / 896), 35px);
    line-height: clamp(24px, calc(24px + 10 * (100vw - 1024px) / 896), 34px);
  }

  :root .elementor-30 .elementor-element.elementor-element-c0c1809 {
    --padding-top: clamp(100px, calc(100px + 66 * (100vw - 1024px) / 896), 166px);
    --padding-bottom: clamp(100px, calc(100px + 66 * (100vw - 1024px) / 896), 166px);
    --padding-left: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
    --padding-right: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
  }

  :root .elementor-30 .elementor-element.elementor-element-a60043d {
    --padding-top: clamp(70px, calc(70px + 30 * (100vw - 1024px) / 896), 100px);
    --padding-bottom: clamp(70px, calc(70px + 30 * (100vw - 1024px) / 896), 100px);
    --padding-left: clamp(40px, calc(40px + 123 * (100vw - 1024px) / 896), 163px);
    --padding-right: clamp(40px, calc(40px + 60 * (100vw - 1024px) / 896), 100px);
  }

  :root .elementor-30 .elementor-element.elementor-element-0d6329a .elementor-heading-title {
    font-size: clamp(53px, calc(53px + 27 * (100vw - 1024px) / 896), 80px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  :root .elementor-30 .elementor-element.elementor-element-6cfedab .elementor-heading-title {
    font-size: clamp(40px, calc(40px + 20 * (100vw - 1024px) / 896), 60px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  :root .elementor-30 .elementor-element.elementor-element-fe27a3d .elementor-heading-title {
    font-size: clamp(40px, calc(40px + 20 * (100vw - 1024px) / 896), 60px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  :root .elementor-30 .elementor-element.elementor-element-86e3a7e .elementor-heading-title {
    font-size: clamp(40px, calc(40px + 20 * (100vw - 1024px) / 896), 60px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  :root .elementor-30 .elementor-element.elementor-element-090c2ec {
    --padding-top: clamp(151px, calc(151px + 100 * (100vw - 1024px) / 896), 251px);
    --padding-bottom: clamp(135px, calc(135px + 90 * (100vw - 1024px) / 896), 225px);
    --padding-left: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
    --padding-right: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
  }

  :root .elementor-30 .elementor-element.elementor-element-2783e0c .elementor-heading-title {
    font-size: clamp(53px, calc(53px + 27 * (100vw - 1024px) / 896), 80px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  :root .elementor-30 .elementor-element.elementor-element-f9c2c1b .elementor-heading-title {
    font-size: clamp(23px, calc(23px + 12 * (100vw - 1024px) / 896), 35px);
    line-height: clamp(24px, calc(24px + 10 * (100vw - 1024px) / 896), 34px);
  }

  :root .elementor-30 .elementor-element.elementor-element-1bbcb1a .elementor-heading-title {
    font-size: clamp(20px, calc(22px + -2 * (100vw - 1024px) / 896), 22px);
  }

  :root .elementor-30 .elementor-element.elementor-element-0a3fb5f .elementor-heading-title {
    font-size: clamp(23px, calc(23px + 12 * (100vw - 1024px) / 896), 35px);
    line-height: clamp(24px, calc(24px + 10 * (100vw - 1024px) / 896), 34px);
  }

  :root .elementor-30 .elementor-element.elementor-element-ca1e8a2 .elementor-heading-title {
    font-size: clamp(20px, calc(22px + -2 * (100vw - 1024px) / 896), 22px);
  }

  :root .elementor-30 .elementor-element.elementor-element-828b77e .elementor-heading-title {
    font-size: clamp(23px, calc(23px + 12 * (100vw - 1024px) / 896), 35px);
    line-height: clamp(24px, calc(24px + 10 * (100vw - 1024px) / 896), 34px);
  }

  :root .elementor-30 .elementor-element.elementor-element-e2f46ce .elementor-heading-title {
    font-size: clamp(20px, calc(22px + -2 * (100vw - 1024px) / 896), 22px);
  }

  :root .elementor-30 .elementor-element.elementor-element-604e989 {
    --padding-top: clamp(60px, calc(60px + 40 * (100vw - 1024px) / 896), 100px);
    --padding-bottom: clamp(66px, calc(66px + 44 * (100vw - 1024px) / 896), 110px);
    --padding-left: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
    --padding-right: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
  }

  :root .elementor-30 .elementor-element.elementor-element-78ed7db .elementor-heading-title {
    font-size: clamp(53px, calc(53px + 27 * (100vw - 1024px) / 896), 80px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  :root .elementor-30 .elementor-element.elementor-element-b494dfb {
    --padding-top: clamp(75px, calc(75px + 50 * (100vw - 1024px) / 896), 125px);
    --padding-bottom: clamp(119px, calc(119px + 79 * (100vw - 1024px) / 896), 198px);
    --padding-left: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
    --padding-right: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
  }

  :root .elementor-30 .elementor-element.elementor-element-531d0c2 .elementor-heading-title {
    font-size: clamp(53px, calc(53px + 27 * (100vw - 1024px) / 896), 80px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  :root .elementor-30 .elementor-element.elementor-element-e2f1d54 {
    --padding-top: clamp(90px, calc(90px + 60 * (100vw - 1024px) / 896), 150px);
    --padding-bottom: clamp(96px, calc(96px + 64 * (100vw - 1024px) / 896), 160px);
    --padding-left: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
    --padding-right: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
  }

  :root .elementor-30 .elementor-element.elementor-element-5cac286 .elementor-heading-title {
    font-size: clamp(53px, calc(53px + 27 * (100vw - 1024px) / 896), 80px);
    line-height: clamp(51px, calc(51px + 27 * (100vw - 1024px) / 896), 78px);
  }

  /* ---- Site footer ---- */

  :root .elementor-37 .elementor-element.elementor-element-8f636a7 {
    --padding-top: clamp(90px, calc(90px + 105 * (100vw - 1024px) / 896), 195px);
    --padding-left: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
    --padding-right: clamp(40px, calc(40px + 48 * (100vw - 1024px) / 896), 88px);
  }

}

