/* simsonic bento hero for Connectivity pages (template-parts/simsonic-hero.php).
   From the approved bento kit; everything is scoped under .sb.
   The background must stay pure #000 to match the video's black. */

/* The theme pads <main> and fills the header when the first section isn't .hero;
   this hero sits under the transparent fixed header instead. */
body:has(.sb:first-of-type) main.relative { padding-top: 0; }
body:has(.sb:first-of-type) header.site-header:not(.is-scrolled) { background: transparent; }

/* The QR is a link here, so it can be tapped as well as scanned */
.sb__qr-link { display: block; flex-shrink: 0; line-height: 0; }

/* ===== simsonic bento hero =====
   Scoped under .sb so it can drop into an existing page.
   Swap Sora / Manrope for the site's own fonts if it has them. */
.sb{
  --bg:#000000;          /* must stay pure black: the video background is #000 */
  --tile:#0b090e;
  --tile-line:#1f1b24;
  --ink:#ffffff;
  --ink-soft:#c9c3d3;
  --ink-mute:#8a8194;
  --magenta:#ff3fd8;
  --magenta-ink:#17031a; /* dark text on magenta: white fails contrast */
  --gap:12px;
  background:var(--bg); color:var(--ink);
  font-family:'Inter',system-ui,sans-serif;
  padding:104px 16px 40px;  /* top padding leaves room for the site header; sides match the 1312px content width of every section */
  box-sizing:border-box;
}
.sb *,.sb *::before,.sb *::after{box-sizing:border-box}

.sb__grid{
  display:grid; gap:var(--gap);
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:minmax(340px,1fr) clamp(216px,13vw,280px) clamp(164px,9vw,210px);
  min-height:740px; max-width:calc(1312px * var(--sim-wide, 1)); margin:0 auto;
}
.sb__tile{position:relative; overflow:hidden; border-radius:20px; background:var(--tile); border:1px solid var(--tile-line)}

/* Video tile: left, full height */
.sb__media{grid-column:1 / 7; grid-row:1 / 4; background:var(--bg)}
.sb__video{position:absolute; left:50%; top:50%; width:100%; height:85%; transform:translate(-50%,-50%); object-fit:cover; background:var(--bg)}
.sb__tag{position:absolute; left:22px; top:20px; padding:6px 12px; border-radius:14px; background:rgba(0,0,0,.6); font-size:13px; color:var(--ink-soft)}
.sb__pause{position:absolute; right:20px; bottom:20px; width:44px; height:44px; border-radius:22px; border:1px solid #3a3340; background:rgba(0,0,0,.6); cursor:pointer; display:grid; place-items:center; padding:0}
.sb__pause svg{width:14px; height:14px}

/* Headline tile */
.sb__intro{grid-column:7 / 13; grid-row:1 / 2; padding:32px 34px; display:flex; flex-direction:column; justify-content:space-between; gap:20px}
.sb .sb__intro h1.sb__title{margin:0; font-family:'Sora',sans-serif; font-weight:600; font-size:clamp(36px,3.6vw,52px); line-height:1; letter-spacing:-.035em}
.sb__title span{color:var(--magenta)}
.sb__lede{margin:14px 0 0; font-size:17px; line-height:1.5; color:var(--ink-soft)}
.sb__ctas{display:flex; flex-wrap:wrap; gap:12px}
.sb-btn{min-height:52px; padding:0 28px; display:inline-flex; align-items:center; border-radius:26px; text-decoration:none; font-weight:600; font-size:16px; transition:background .2s ease,border-color .2s ease}
.sb-btn--primary{background:var(--magenta); color:var(--magenta-ink)}
.sb-btn--primary:hover{background:#ff6fe3}
.sb-btn--ghost{border:1px solid #5b5166; color:var(--ink); font-weight:500}
.sb-btn--ghost:hover{border-color:var(--ink-mute)}

/* Audience boxes */
.sb__box{grid-row:2 / 3; padding:clamp(22px,1.7vw,28px); display:flex; flex-direction:column; justify-content:space-between; text-decoration:none; color:var(--ink); transition:background .25s ease,border-color .25s ease}
.sb__box:nth-of-type(1){grid-column:7 / 9}
.sb__box:nth-of-type(2){grid-column:9 / 11}
.sb__box:nth-of-type(3){grid-column:11 / 13}
.sb__box:hover{background:#15101a; border-color:var(--magenta)}
.sb__box-top{display:flex; align-items:flex-start; justify-content:space-between; color:var(--magenta)}
.sb__icon svg{width:clamp(34px,2.4vw,44px); height:clamp(34px,2.4vw,44px); display:block}
.sb__arrow{width:18px; height:18px; transition:transform .25s ease}
.sb__box:hover .sb__arrow{transform:translate(2px,-2px)}
.sb__box-text{display:flex; flex-direction:column; gap:5px}
.sb__box-desc{min-height:2.8em}
.sb__box-title{font-family:'Sora',sans-serif; font-weight:600; font-size:clamp(22px,1.5vw,28px); letter-spacing:-.02em}
.sb__box-desc{font-size:clamp(13px,0.85vw,15px); line-height:1.4; color:var(--ink-mute)}

/* eSIM QR strip */
.sb__qr{grid-column:7 / 13; grid-row:3 / 4; padding:18px 26px 18px 18px; display:flex; align-items:center; gap:22px;
  background:radial-gradient(80% 140% at 12% 50%,#3a0d33 0%,var(--tile) 70%)}
.sb__qr-img{width:112px; height:112px; flex-shrink:0; display:block; border-radius:10px; box-shadow:0 0 0 1px rgba(255,255,255,.2),0 0 30px rgba(255,63,216,.55)}
.sb__qr-text{flex:1; display:flex; flex-direction:column; gap:6px}
.sb__qr-title{font-family:'Sora',sans-serif; font-weight:600; font-size:clamp(22px,1.5vw,28px)}
.sb__qr-desc{font-size:14px; line-height:1.4; color:var(--ink-soft)}
.sb__brand{--sb-logo-w:clamp(150px,11vw,210px); display:flex; flex-direction:column; align-items:flex-end; gap:6px}
.sb__logo{display:block; width:var(--sb-logo-w); height:auto}
.sb__tagline{font-size:calc(var(--sb-logo-w) / 12.064); line-height:1.2; letter-spacing:0; white-space:nowrap; color:var(--ink-soft)}

.sb [hidden]{display:none !important}
.sb a:focus-visible,.sb button:focus-visible{outline:2px solid #ffffff; outline-offset:3px}

/* Tablet: stack the video on top */
@media (max-width:1100px){
  .sb__grid{grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:auto; min-height:0}
  .sb__media{grid-column:1 / -1; grid-row:auto; aspect-ratio:16/9}
  .sb__video{width:100%; height:100%}
  .sb__intro,.sb__qr{grid-column:1 / -1; grid-row:auto}
  .sb__box{grid-row:auto; min-height:180px}
  .sb__box:nth-of-type(1),.sb__box:nth-of-type(2),.sb__box:nth-of-type(3){grid-column:auto}
}
/* Phone: one column. The boxes become compact rows so the hero doesn't run on,
   and the video tile is squarer so the card reads at phone width. */
@media (max-width:640px){
  .sb{padding:88px 16px 28px}
  .sb__grid{grid-template-columns:1fr; gap:10px}
  .sb__media{aspect-ratio:4/3}
  .sb__video{width:100%; height:100%; object-fit:cover}
  .sb__intro{padding:24px 22px}
  .sb__lede{font-size:16px}
  .sb-btn{flex:1 1 auto; justify-content:center; padding:0 18px; white-space:nowrap}
  .sb__box{min-height:0; flex-direction:row; align-items:center; gap:16px; padding:16px 18px}
  .sb__box-top{flex:none}
  .sb__arrow{display:none}  /* the whole row is tappable; the arrow just crowds it */
  .sb__box-text{flex:1}
  .sb__box-title{font-size:19px}
  .sb__qr{flex-wrap:wrap; gap:16px; padding:18px}
  .sb__qr-img{width:96px; height:96px}
  .sb__brand{align-items:flex-start; width:100%; margin-top:4px; padding-top:18px; border-top:1px solid var(--tile-line)}
}

/* pages that show a photo instead of the video (Private 5G FWA) */
.sb__img{position:absolute; inset:0; width:100%; height:100%; transform:none; object-fit:cover; object-position:50% 45%}
.sb__media:has(.sb__img)::after{content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.55) 100%)}
.sb__media .sb__tag{z-index:1}
/* talk-to-us tile in place of the eSIM QR code */
.sb__talk{color:inherit; text-decoration:none}
.sb__talk .sb__qr-title{display:inline-flex; align-items:center; gap:10px}
.sb__talk:hover .sb__qr-title{color:#ff4fc3}

/* Simsonic lockup: the brand pack's white lockup, slogan "Connecting What Matters" (cbd_simsonic_lockup()) */
.ss-lockup{--ss-w:180px; display:block; width:var(--ss-w); height:auto; overflow:visible}
.ss-lockup__mark{fill:#fff}
.ss-lockup__tag{fill:#fff; font-family:'Rubik',sans-serif; font-weight:300; font-size:35px}
.sb__brand{align-items:flex-start}
.sb__brand .ss-lockup{--ss-w:var(--sb-logo-w)}
.sim-signoff__brand .ss-lockup{--ss-w:180px}
@media (max-width:767px){ .sim-signoff__brand .ss-lockup{--ss-w:150px} }

/* Large and ultrawide screens: the Simsonic sections are laid out in px for a laptop. On big
   screens they scale by the smaller of the window's width and height steps (browser chrome takes
   ~130px of height), and on ultrawides (wider than 2:1) they also get extra width (--sim-wide)
   so they fill the screen without getting taller. Shared by every section on these pages. */
:root{--sim-zw:1; --sim-zh:1; --sim-wide:1}
@media (min-width:2000px){:root{--sim-zw:1.1}}
@media (min-width:2400px){:root{--sim-zw:1.25}}
@media (min-width:3000px){:root{--sim-zw:1.4}}
@media (min-width:3400px){:root{--sim-zw:1.5}}
@media (min-height:1150px){:root{--sim-zh:1.15}}
@media (min-height:1300px){:root{--sim-zh:1.3}}
@media (min-height:1500px){:root{--sim-zh:1.4}}
@media (min-height:1800px){:root{--sim-zh:1.5}}
@media (min-width:2400px) and (min-aspect-ratio:2/1){:root{--sim-wide:1.2}}
@media (min-width:3400px) and (min-aspect-ratio:2/1){:root{--sim-wide:1.3}}
:root{--sim-z:min(var(--sim-zw), var(--sim-zh))}
.sb, .sim-handoff, .p5g, .sim-strip, .sim-related, .sim-signoff{zoom:var(--sim-z)}
