/* ===========================================================================
   mobile.css — responsive override layer for the CYB design-handoff pages.

   The pages are styled entirely inline at desktop sizes. These rules restate the
   same declarations at small widths, so nothing about the desktop rendering moves.

   Each selector is doubled because support.js renders through React, which
   re-serializes style attributes: `font-size:62px` in the file becomes
   `font-size: 62px` in the DOM. The first spelling matches the source, the second
   matches the runtime.

   Generated by gen_mobile_css.py — regenerate rather than hand-editing, so the
   selectors keep matching the markup.
   =========================================================================== */

*,*::before,*::after{box-sizing:border-box}
body{max-width:100%;overflow-x:clip}
img,video,svg{max-width:100%}
iframe:not([style*=scale]){max-width:100%}

/* A flex:none column sizes to its content, so a `width:100%` child measures against an
   already-overwide parent and grows instead of shrinking. Cap the columns first. */
[style*="flex:none"]{max-width:100%!important;min-width:0!important}
[style*="flex: none"]{max-width:100%!important;min-width:0!important}
[style*="flex: 0 0 auto"]{max-width:100%!important;min-width:0!important}
[style*="flex:0 0 auto"]{max-width:100%!important;min-width:0!important}

/* Fixed-width blocks become fluid, ceiling pinned to the original size. */
[style*="width:1440px"]:not([style*=scale]),[style*="width: 1440px"]:not([style*=scale]){width:100%!important;max-width:1440px!important}
[style*="width:1100px"]:not([style*=scale]),[style*="width: 1100px"]:not([style*=scale]){width:100%!important;max-width:1100px!important}
[style*="width:600px"]:not([style*=scale]),[style*="width: 600px"]:not([style*=scale]){width:100%!important;max-width:600px!important}
[style*="width:260px"]:not([style*=scale]),[style*="width: 260px"]:not([style*=scale]){width:100%!important;max-width:260px!important}
[style*="width:252px"]:not([style*=scale]),[style*="width: 252px"]:not([style*=scale]){width:100%!important;max-width:252px!important}
[style*="width:240px"]:not([style*=scale]),[style*="width: 240px"]:not([style*=scale]){width:100%!important;max-width:240px!important}
[style*="width:230px"]:not([style*=scale]),[style*="width: 230px"]:not([style*=scale]){width:100%!important;max-width:230px!important}
[style*="width:220px"]:not([style*=scale]),[style*="width: 220px"]:not([style*=scale]){width:100%!important;max-width:220px!important}
[style*="width:212px"]:not([style*=scale]),[style*="width: 212px"]:not([style*=scale]){width:100%!important;max-width:212px!important}
[style*="width:200px"]:not([style*=scale]),[style*="width: 200px"]:not([style*=scale]){width:100%!important;max-width:200px!important}
[style*="width:190px"]:not([style*=scale]),[style*="width: 190px"]:not([style*=scale]){width:100%!important;max-width:190px!important}
[style*="width:120px"]:not([style*=scale]),[style*="width: 120px"]:not([style*=scale]){width:100%!important;max-width:120px!important}

/* Display type: fluid down, original size preserved at the top end. */
[style*="font-size:62px"],[style*="font-size: 62px"]{font-size:clamp(33px,8.6vw,62px)!important}
[style*="font-size:60px"],[style*="font-size: 60px"]{font-size:clamp(32px,8.3vw,60px)!important}
[style*="font-size:58px"],[style*="font-size: 58px"]{font-size:clamp(31px,8.1vw,58px)!important}
[style*="font-size:56px"],[style*="font-size: 56px"]{font-size:clamp(30px,7.8vw,56px)!important}
[style*="font-size:54px"],[style*="font-size: 54px"]{font-size:clamp(29px,7.5vw,54px)!important}
[style*="font-size:52px"],[style*="font-size: 52px"]{font-size:clamp(28px,7.2vw,52px)!important}
[style*="font-size:48px"],[style*="font-size: 48px"]{font-size:clamp(26px,6.7vw,48px)!important}
[style*="font-size:46px"],[style*="font-size: 46px"]{font-size:clamp(25px,6.4vw,46px)!important}
[style*="font-size:44px"],[style*="font-size: 44px"]{font-size:clamp(24px,6.1vw,44px)!important}
[style*="font-size:42px"],[style*="font-size: 42px"]{font-size:clamp(23px,5.8vw,42px)!important}
[style*="font-size:40px"],[style*="font-size: 40px"]{font-size:clamp(22px,5.6vw,40px)!important}
[style*="font-size:38px"],[style*="font-size: 38px"]{font-size:clamp(21px,5.3vw,38px)!important}
[style*="font-size:36px"],[style*="font-size: 36px"]{font-size:clamp(19px,5.0vw,36px)!important}
[style*="font-size:34px"],[style*="font-size: 34px"]{font-size:clamp(19px,4.7vw,34px)!important}
[style*="font-size:32px"],[style*="font-size: 32px"]{font-size:clamp(19px,4.4vw,32px)!important}
[style*="font-size:30px"],[style*="font-size: 30px"]{font-size:clamp(19px,4.2vw,30px)!important}
[style*="font-size:28px"],[style*="font-size: 28px"]{font-size:clamp(19px,3.9vw,28px)!important}
[style*="font-size:26px"],[style*="font-size: 26px"]{font-size:clamp(19px,3.6vw,26px)!important}

@media (max-width:900px){
  /* Two-column editorial splits stack. */
  [style*="grid-template-columns:0.95fr 1.05fr"],[style*="grid-template-columns: 0.95fr 1.05fr"],[style*="grid-template-columns:1.05fr 0.95fr"],[style*="grid-template-columns: 1.05fr 0.95fr"],[style*="grid-template-columns:1.08fr 1fr"],[style*="grid-template-columns: 1.08fr 1fr"],[style*="grid-template-columns:1.15fr 1fr"],[style*="grid-template-columns: 1.15fr 1fr"],[style*="grid-template-columns:1.1fr 1fr"],[style*="grid-template-columns: 1.1fr 1fr"],[style*="grid-template-columns:1.2fr 1fr"],[style*="grid-template-columns: 1.2fr 1fr"],[style*="grid-template-columns:1.4fr 1fr"],[style*="grid-template-columns: 1.4fr 1fr"],[style*="grid-template-columns:1.5fr 1fr"],[style*="grid-template-columns: 1.5fr 1fr"],[style*="grid-template-columns:1fr 1.05fr"],[style*="grid-template-columns: 1fr 1.05fr"],[style*="grid-template-columns:1fr 1.1fr"],[style*="grid-template-columns: 1fr 1.1fr"],[style*="grid-template-columns:1fr 1.2fr"],[style*="grid-template-columns: 1fr 1.2fr"],[style*="grid-template-columns:1fr 1.4fr"],[style*="grid-template-columns: 1fr 1.4fr"],[style*="grid-template-columns:1fr 1fr"],[style*="grid-template-columns: 1fr 1fr"],[style*="grid-template-columns:1fr auto"],[style*="grid-template-columns: 1fr auto"],[style*="grid-template-columns:repeat(2,1fr)"],[style*="grid-template-columns: repeat(2, 1fr)"]{grid-template-columns:1fr!important}

  /* 3-up and wider drop to two tracks, then to one on phones. */
  [style*="grid-template-columns:1.2fr 1fr 1fr"],[style*="grid-template-columns: 1.2fr 1fr 1fr"],[style*="grid-template-columns:1.35fr 1fr 1fr 1.15fr"],[style*="grid-template-columns: 1.35fr 1fr 1fr 1.15fr"],[style*="grid-template-columns:1.4fr 0.8fr 0.8fr 0.8fr 0.9fr"],[style*="grid-template-columns: 1.4fr 0.8fr 0.8fr 0.8fr 0.9fr"],[style*="grid-template-columns:1.4fr 1fr 1fr"],[style*="grid-template-columns: 1.4fr 1fr 1fr"],[style*="grid-template-columns:1.6fr 1fr 0.8fr 0.9fr"],[style*="grid-template-columns: 1.6fr 1fr 0.8fr 0.9fr"],[style*="grid-template-columns:120px 1fr auto"],[style*="grid-template-columns: 120px 1fr auto"],[style*="grid-template-columns:1fr 1.06fr 1fr"],[style*="grid-template-columns: 1fr 1.06fr 1fr"],[style*="grid-template-columns:1fr 1fr 1.2fr"],[style*="grid-template-columns: 1fr 1fr 1.2fr"],[style*="grid-template-columns:1fr 1fr 1fr"],[style*="grid-template-columns: 1fr 1fr 1fr"],[style*="grid-template-columns:2.2fr 1fr 0.9fr 0.9fr 1fr 1fr"],[style*="grid-template-columns: 2.2fr 1fr 0.9fr 0.9fr 1fr 1fr"],[style*="grid-template-columns:repeat(3,1fr)"],[style*="grid-template-columns: repeat(3, 1fr)"],[style*="grid-template-columns:repeat(4,1fr)"],[style*="grid-template-columns: repeat(4, 1fr)"],[style*="grid-template-columns:repeat(7,1fr)"],[style*="grid-template-columns: repeat(7, 1fr)"]{grid-template-columns:repeat(2,1fr)!important}

  /* Headings paired with controls or a lead-in sit above them instead of beside. */
  [style*="justify-content:space-between"][style*="align-items:flex-end"],
  [style*="justify-content: space-between"][style*="align-items: flex-end"]{flex-direction:column!important;align-items:flex-start!important}

  /* Oversized column gaps close up. */
  [style*="gap:80px"],[style*="gap: 80px"]{gap:36px!important}
  [style*="gap:72px"],[style*="gap: 72px"]{gap:32px!important}
  [style*="gap:64px"],[style*="gap: 64px"]{gap:29px!important}
  [style*="gap:56px"],[style*="gap: 56px"]{gap:25px!important}
  [style*="gap:48px"],[style*="gap: 48px"]{gap:22px!important}
  [style*="gap:40px"],[style*="gap: 40px"]{gap:20px!important}

  /* Nav, header and footer link rows are single-line flex rows held open by
     white-space:nowrap, so they need both the wrap and the nowrap lifted. */
  nav div,footer div,header>div{flex-wrap:wrap!important}
  nav [style*=nowrap],footer [style*=nowrap]{white-space:normal!important}

  /* Sticky bottom bars (Haven & Oak's price rail) are built as one nowrap line. */
  [style*="position:sticky"][style*="bottom:0"],
  [style*="position: sticky"][style*="bottom: 0px"]{flex-wrap:wrap!important;row-gap:8px!important}
  [style*="position:sticky"][style*="bottom:0"] span,
  [style*="position: sticky"][style*="bottom: 0px"] span{white-space:normal!important}

  /* Float cards offset outside their parent would hang off-canvas. */
  [style*="position:absolute"][style*="left:-"],[style*="position: absolute"][style*="left: -"]{left:8px!important}
  [style*="position:absolute"][style*="right:-"],[style*="position: absolute"][style*="right: -"]{right:8px!important}
}

@media (max-width:640px){
  /* Everything to a single track. */
  [style*="grid-template-columns:1.2fr 1fr 1fr"],[style*="grid-template-columns: 1.2fr 1fr 1fr"],[style*="grid-template-columns:1.35fr 1fr 1fr 1.15fr"],[style*="grid-template-columns: 1.35fr 1fr 1fr 1.15fr"],[style*="grid-template-columns:1.4fr 0.8fr 0.8fr 0.8fr 0.9fr"],[style*="grid-template-columns: 1.4fr 0.8fr 0.8fr 0.8fr 0.9fr"],[style*="grid-template-columns:1.4fr 1fr 1fr"],[style*="grid-template-columns: 1.4fr 1fr 1fr"],[style*="grid-template-columns:1.6fr 1fr 0.8fr 0.9fr"],[style*="grid-template-columns: 1.6fr 1fr 0.8fr 0.9fr"],[style*="grid-template-columns:120px 1fr auto"],[style*="grid-template-columns: 120px 1fr auto"],[style*="grid-template-columns:1fr 1.06fr 1fr"],[style*="grid-template-columns: 1fr 1.06fr 1fr"],[style*="grid-template-columns:1fr 1fr 1.2fr"],[style*="grid-template-columns: 1fr 1fr 1.2fr"],[style*="grid-template-columns:1fr 1fr 1fr"],[style*="grid-template-columns: 1fr 1fr 1fr"],[style*="grid-template-columns:1fr auto"],[style*="grid-template-columns: 1fr auto"],[style*="grid-template-columns:2.2fr 1fr 0.9fr 0.9fr 1fr 1fr"],[style*="grid-template-columns: 2.2fr 1fr 0.9fr 0.9fr 1fr 1fr"],[style*="grid-template-columns:repeat(3,1fr)"],[style*="grid-template-columns: repeat(3, 1fr)"],[style*="grid-template-columns:repeat(4,1fr)"],[style*="grid-template-columns: repeat(4, 1fr)"],[style*="grid-template-columns:repeat(7,1fr)"],[style*="grid-template-columns: repeat(7, 1fr)"]{grid-template-columns:1fr!important}

  /* Gutters and vertical rhythm come in; nothing else about the box changes.
     Ordered shortest declaration first: `padding: 32px` is a substring match for
     `padding: 32px 40px`, so the longer, more precise rule has to come later to win. */
  [style*="padding:32px"],[style*="padding: 32px"]{padding:32px 20px 32px 20px!important}
  [style*="padding:36px"],[style*="padding: 36px"]{padding:36px 22px 36px 22px!important}
  [style*="padding:40px"],[style*="padding: 40px"]{padding:40px 22px 40px 22px!important}
  [style*="padding:44px"],[style*="padding: 44px"]{padding:44px 24px 44px 24px!important}
  [style*="padding:64px"],[style*="padding: 64px"]{padding:35px 24px 35px 24px!important}
  [style*="padding:0 32px"],[style*="padding: 0px 32px"]{padding:0px 20px 0px 20px!important}
  [style*="padding:0 36px"],[style*="padding: 0px 36px"]{padding:0px 22px 0px 22px!important}
  [style*="padding:0 40px"],[style*="padding: 0px 40px"]{padding:0px 22px 0px 22px!important}
  [style*="padding:0 44px"],[style*="padding: 0px 44px"]{padding:0px 24px 0px 24px!important}
  [style*="padding:11px 32px"],[style*="padding: 11px 32px"]{padding:11px 20px 11px 20px!important}
  [style*="padding:14px 32px"],[style*="padding: 14px 32px"]{padding:14px 20px 14px 20px!important}
  [style*="padding:14px 44px"],[style*="padding: 14px 44px"]{padding:14px 24px 14px 24px!important}
  [style*="padding:15px 32px"],[style*="padding: 15px 32px"]{padding:15px 20px 15px 20px!important}
  [style*="padding:16px 32px"],[style*="padding: 16px 32px"]{padding:16px 20px 16px 20px!important}
  [style*="padding:22px 32px"],[style*="padding: 22px 32px"]{padding:22px 20px 22px 20px!important}
  [style*="padding:28px 40px"],[style*="padding: 28px 40px"]{padding:28px 22px 28px 22px!important}
  [style*="padding:28px 44px"],[style*="padding: 28px 44px"]{padding:28px 24px 28px 24px!important}
  [style*="padding:32px 40px"],[style*="padding: 32px 40px"]{padding:32px 22px 32px 22px!important}
  [style*="padding:34px 30px"],[style*="padding: 34px 30px"]{padding:34px 20px 34px 20px!important}
  [style*="padding:36px 40px"],[style*="padding: 36px 40px"]{padding:36px 22px 36px 22px!important}
  [style*="padding:36px 44px"],[style*="padding: 36px 44px"]{padding:36px 24px 36px 24px!important}
  [style*="padding:40px 44px"],[style*="padding: 40px 44px"]{padding:40px 24px 40px 24px!important}
  [style*="padding:44px 24px"],[style*="padding: 44px 24px"]{padding:44px 18px 44px 18px!important}
  [style*="padding:48px 32px"],[style*="padding: 48px 32px"]{padding:48px 20px 48px 20px!important}
  [style*="padding:56px 24px"],[style*="padding: 56px 24px"]{padding:31px 18px 31px 18px!important}
  [style*="padding:56px 32px"],[style*="padding: 56px 32px"]{padding:31px 20px 31px 20px!important}
  [style*="padding:56px 40px"],[style*="padding: 56px 40px"]{padding:31px 22px 31px 22px!important}
  [style*="padding:56px 44px"],[style*="padding: 56px 44px"]{padding:31px 24px 31px 24px!important}
  [style*="padding:64px 32px"],[style*="padding: 64px 32px"]{padding:35px 20px 35px 20px!important}
  [style*="padding:64px 44px"],[style*="padding: 64px 44px"]{padding:35px 24px 35px 24px!important}
  [style*="padding:64px 48px"],[style*="padding: 64px 48px"]{padding:35px 24px 35px 24px!important}
  [style*="padding:72px 32px"],[style*="padding: 72px 32px"]{padding:40px 20px 40px 20px!important}
  [style*="padding:72px 44px"],[style*="padding: 72px 44px"]{padding:40px 24px 40px 24px!important}
  [style*="padding:72px 56px"],[style*="padding: 72px 56px"]{padding:40px 24px 40px 24px!important}
  [style*="padding:72px 64px"],[style*="padding: 72px 64px"]{padding:40px 24px 40px 24px!important}
  [style*="padding:80px 44px"],[style*="padding: 80px 44px"]{padding:44px 24px 44px 24px!important}
  [style*="padding:80px 56px"],[style*="padding: 80px 56px"]{padding:44px 24px 44px 24px!important}
  [style*="padding:88px 32px"],[style*="padding: 88px 32px"]{padding:48px 20px 48px 20px!important}
  [style*="padding:88px 44px"],[style*="padding: 88px 44px"]{padding:48px 24px 48px 24px!important}
  [style*="padding:88px 56px"],[style*="padding: 88px 56px"]{padding:48px 24px 48px 24px!important}
  [style*="padding:96px 32px"],[style*="padding: 96px 32px"]{padding:53px 20px 53px 20px!important}
  [style*="padding:0 32px 6px"],[style*="padding: 0px 32px 6px"]{padding:0px 20px 6px 20px!important}
  [style*="padding:104px 32px"],[style*="padding: 104px 32px"]{padding:57px 20px 57px 20px!important}
  [style*="padding:0 32px 24px"],[style*="padding: 0px 32px 24px"]{padding:0px 20px 24px 20px!important}
  [style*="padding:0 32px 32px"],[style*="padding: 0px 32px 32px"]{padding:0px 20px 32px 20px!important}
  [style*="padding:0 32px 48px"],[style*="padding: 0px 32px 48px"]{padding:0px 20px 48px 20px!important}
  [style*="padding:0 32px 64px"],[style*="padding: 0px 32px 64px"]{padding:0px 20px 35px 20px!important}
  [style*="padding:0 32px 88px"],[style*="padding: 0px 32px 88px"]{padding:0px 20px 48px 20px!important}
  [style*="padding:0 32px 96px"],[style*="padding: 0px 32px 96px"]{padding:0px 20px 53px 20px!important}
  [style*="padding:0 44px 40px"],[style*="padding: 0px 44px 40px"]{padding:0px 24px 40px 24px!important}
  [style*="padding:40px 40px 0"],[style*="padding: 40px 40px 0px"]{padding:40px 22px 0px 22px!important}
  [style*="padding:56px 32px 0"],[style*="padding: 56px 32px 0px"]{padding:31px 20px 0px 20px!important}
  [style*="padding:0 32px 104px"],[style*="padding: 0px 32px 104px"]{padding:0px 20px 57px 20px!important}
  [style*="padding:24px 32px 8px"],[style*="padding: 24px 32px 8px"]{padding:24px 20px 8px 20px!important}
  [style*="padding:96px 32px 8px"],[style*="padding: 96px 32px 8px"]{padding:53px 20px 8px 20px!important}
  [style*="padding:20px 24px 40px"],[style*="padding: 20px 24px 40px"]{padding:20px 18px 40px 18px!important}
  [style*="padding:24px 44px 40px"],[style*="padding: 24px 44px 40px"]{padding:24px 24px 40px 24px!important}
  [style*="padding:24px 44px 64px"],[style*="padding: 24px 44px 64px"]{padding:24px 24px 35px 24px!important}
  [style*="padding:40px 32px 72px"],[style*="padding: 40px 32px 72px"]{padding:40px 20px 40px 20px!important}
  [style*="padding:40px 44px 48px"],[style*="padding: 40px 44px 48px"]{padding:40px 24px 48px 24px!important}
  [style*="padding:44px 32px 36px"],[style*="padding: 44px 32px 36px"]{padding:44px 20px 36px 20px!important}
  [style*="padding:48px 32px 40px"],[style*="padding: 48px 32px 40px"]{padding:48px 20px 40px 20px!important}
  [style*="padding:48px 32px 88px"],[style*="padding: 48px 32px 88px"]{padding:48px 20px 48px 20px!important}
  [style*="padding:64px 32px 24px"],[style*="padding: 64px 32px 24px"]{padding:35px 20px 24px 20px!important}
  [style*="padding:72px 32px 40px"],[style*="padding: 72px 32px 40px"]{padding:40px 20px 40px 20px!important}
  [style*="padding:72px 32px 48px"],[style*="padding: 72px 32px 48px"]{padding:40px 20px 48px 20px!important}
  [style*="padding:72px 32px 64px"],[style*="padding: 72px 32px 64px"]{padding:40px 20px 35px 20px!important}
  [style*="padding:72px 32px 80px"],[style*="padding: 72px 32px 80px"]{padding:40px 20px 44px 20px!important}
  [style*="padding:72px 44px 24px"],[style*="padding: 72px 44px 24px"]{padding:40px 24px 24px 24px!important}
  [style*="padding:72px 44px 64px"],[style*="padding: 72px 44px 64px"]{padding:40px 24px 35px 24px!important}
  [style*="padding:88px 32px 20px"],[style*="padding: 88px 32px 20px"]{padding:48px 20px 20px 20px!important}
  [style*="padding:88px 32px 64px"],[style*="padding: 88px 32px 64px"]{padding:48px 20px 35px 20px!important}
  [style*="padding:96px 32px 48px"],[style*="padding: 96px 32px 48px"]{padding:53px 20px 48px 20px!important}
  [style*="padding:104px 32px 32px"],[style*="padding: 104px 32px 32px"]{padding:57px 20px 32px 20px!important}
  [style*="padding:32px 32px 104px"],[style*="padding: 32px 32px 104px"]{padding:32px 20px 57px 20px!important}
  [style*="padding:64px 32px 104px"],[style*="padding: 64px 32px 104px"]{padding:35px 20px 57px 20px!important}

  /* Work-carousel cards: sized to peek past the edge so the row reads as scrollable. */
  [style*="width:420px"],[style*="width: 420px"]{width:82vw!important}

  /* Tall fixed panels give back vertical space. */
  [style*="height:1000px"],[style*="height: 1000px"]{height:620px!important}
  [style*="height:560px"],[style*="height: 560px"]{height:347px!important}
  [style*="height:526px"],[style*="height: 526px"]{height:326px!important}
  [style*="height:400px"],[style*="height: 400px"]{height:248px!important}
  [style*="height:320px"],[style*="height: 320px"]{height:198px!important}
  [style*="height:300px"],[style*="height: 300px"]{height:190px!important}
  [style*="height:250px"],[style*="height: 250px"]{height:190px!important}

  /* The nav bar itself: fixed 64px row becomes a wrapping band. */
  [style*="height:64px"],[style*="height: 64px"]{height:auto!important;min-height:56px!important;flex-wrap:wrap!important;row-gap:8px!important;padding-top:10px!important;padding-bottom:10px!important}
  nav a{font-size:12px!important}
  nav>div>div,footer [style*="gap: 28px"],footer [style*="gap: 24px"]{column-gap:14px!important;row-gap:8px!important}

  /* Stat strips and split rows wrap instead of overrunning the viewport. */
  [style*="justify-content:space-between"],[style*="justify-content: space-between"]{flex-wrap:wrap!important}

  /* Long unbreakable strings — prices, spec codes, email addresses. */
  h1,h2,h3,p,span,div{overflow-wrap:break-word}
}

/* The reveal and float animations are decorative; honour a reduced-motion preference. */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  [data-reveal]{opacity:1!important;transform:none!important}
}
