/* Extend the existing visual system without changing page typography. */
.privacy-banner{position:fixed;inset:auto 22px 22px;z-index:90;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 8px 36px #10171b20;padding:24px 28px;display:flex;align-items:center;gap:36px;max-width:1400px;margin-inline:auto}
.privacy-banner[hidden],.privacy-settings [hidden],.consent-media [hidden],.form-consent[hidden]{display:none!important}
.privacy-banner-copy{flex:1;max-width:740px}.privacy-banner h2,.privacy-banner .privacy-title{font-size:1.25rem;line-height:1.3;font-weight:400;letter-spacing:-.025em;margin-bottom:8px}
.privacy-banner p,.privacy-settings p{font-size:.875rem;line-height:1.6}.privacy-banner a,.privacy-settings a,.form-privacy-notice a,.form-consent a,.consent-media a{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.privacy-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.privacy-action{min-height:44px;padding:11px 16px;border:1px solid var(--ink);color:var(--ink);background:transparent;font-size:.875rem;line-height:1.4;cursor:pointer}.privacy-action:hover{background:#e6edf0}.privacy-action:disabled{opacity:.65;cursor:default}
.privacy-secondary{background:none;border:0;text-decoration:underline;text-underline-offset:4px;min-height:44px;font-size:.875rem;padding:8px}
.footer-privacy-settings{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}.footer-privacy-settings:hover{text-decoration:underline;text-underline-offset:4px}
.footer-lower .legal{flex-wrap:wrap;gap:12px 22px}
.privacy-settings{max-width:600px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);padding:30px;border:1px solid var(--line);background:var(--paper);color:var(--ink)}.privacy-settings::backdrop{background:#10171b80}
.privacy-settings-top{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:14px}.privacy-settings h2,.privacy-settings .privacy-title{font-size:1.75rem;line-height:1.2;letter-spacing:-.03em;font-weight:400}.privacy-close{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--line);background:none;font-size:0;line-height:1;padding:0;position:relative;color:var(--ink)}/* The × is drawn, not typed: a glyph sits off-centre by font and Safari adds button padding (tablet report, 2026-10-05). */.privacy-close:before,.privacy-close:after{content:"";position:absolute;left:50%;top:50%;width:18px;height:1.5px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}.privacy-close:after{transform:translate(-50%,-50%) rotate(-45deg)}
.privacy-options{margin-block:23px}.privacy-option{display:grid;grid-template-columns:1fr auto;gap:8px 20px;border-top:1px solid var(--line);padding-block:18px}.privacy-option:last-child{border-bottom:1px solid var(--line)}.privacy-option label,.privacy-option strong{font-size:1rem;font-weight:400;color:var(--ink)}.privacy-option p{grid-column:1;margin:0}.privacy-option input{grid-column:2;grid-row:1/3;width:22px;height:22px;accent-color:var(--cyan);align-self:center}.privacy-option>span{font-size:.875rem;align-self:center}
.privacy-settings>.privacy-actions{margin-top:22px}.privacy-settings>.privacy-actions .privacy-action{flex:1}.privacy-policy-table{width:100%;border-collapse:collapse;font-size:.9375rem;line-height:1.6;margin-block:22px}.privacy-policy-table th,.privacy-policy-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:14px 16px 14px 0}.privacy-policy-table th{font-weight:500}.privacy-policy-table td:first-child{width:25%}
.form-consent{margin-block:28px;padding:24px 0;border-block:1px solid var(--line)}.form-consent p{font-size:1rem;line-height:1.6;margin-bottom:18px}.form-consent .privacy-secondary{margin-left:10px}.form-privacy-notice{font-size:.875rem!important;line-height:1.6!important;margin-block:24px 16px!important;max-width:650px}
.form-fallback[hidden],.journal-filters [hidden]{display:none!important}
.consent-media{position:relative;width:100%;aspect-ratio:16/9;background:#10171b;overflow:hidden}.consent-media>iframe{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0;display:block;margin:0!important}.consent-media.social-embed{aspect-ratio:auto;min-height:400px;max-width:504px;margin:32px auto}.consent-media.social-embed:has(>iframe:not([hidden])){height:938px;background:none}.consent-media-gate{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:22px;text-align:center;color:#fff;background:#10171b}.consent-media-gate>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.45}.consent-media-gate>div{position:relative;max-width:470px}.consent-media-gate p{font-size:.875rem!important;line-height:1.55!important;color:#edf2f4!important;margin:12px 0 0!important}.consent-media-gate .privacy-action{color:#fff;border-color:#cad5dc;background:#10171bd9}.consent-media-gate .privacy-action:hover{background:#31434c}.consent-media-gate .privacy-secondary,.consent-media-gate a{color:#fff;font-size:.875rem}.original-article-content .consent-media{margin-block:22px}.media-frame{position:relative;width:100%;aspect-ratio:16/9;background:#10171b;overflow:hidden}.media-frame>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}.original-article-content .media-frame{margin-block:22px}
@media(max-width:780px){.privacy-banner{inset:auto 12px 12px;padding:20px;display:block}.privacy-banner .privacy-actions{margin-top:16px;gap:10px}.privacy-banner .privacy-action{flex:1}.privacy-banner .privacy-secondary{width:100%}.privacy-settings{padding:22px}.privacy-policy-table{font-size:.875rem}.privacy-policy-table th,.privacy-policy-table td{padding-right:10px}.consent-media-gate{padding:14px}.consent-media-gate p{margin-top:8px!important}.form-consent .privacy-secondary{margin-left:0;display:block}.privacy-banner-copy{max-width:none}}
@media(max-width:400px){.consent-media{min-height:210px}.tech-player:has(.consent-media){aspect-ratio:auto;min-height:210px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{scroll-behavior:auto!important}}

@media(max-width:780px){.contact-layout:has(.contact-paths) .contact-form-panel{order:-1}body:has(.privacy-settings[open]){overflow:hidden}}
/* Keep ownership reporting readable when the image and copy share a tablet row. */
@media (min-width:701px) and (max-width:1000px){
  #ownership .feature-stage{align-items:start}
  #ownership .three-lines>div{display:block}
  #ownership .three-lines h3{margin-bottom:12px}
}

/* Let enlarged text determine row height without widening the page. */
/* break-word, not anywhere: "anywhere" also let grid columns shrink below one word, which split
   "contamination" and "Implementation" mid-word on tablets (2026-10-05). A word still breaks if it
   alone is wider than its container. */
main h1,main h2,main h3{overflow-wrap:break-word}
.contact-layout>*,.program-story>*,.contact-band .wrap>*{min-width:0}


.text-link,.button{max-width:100%;min-width:0;overflow-wrap:anywhere}
.text-link>span{min-width:0;overflow-wrap:anywhere}
.distance-readout{flex-wrap:wrap}
.distance-readout>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.field-hours{min-width:0}
.field-hours strong{overflow-wrap:anywhere}
.spec,.experience-bottom>*{min-width:0;overflow-wrap:anywhere}
.scene-tabs{flex-wrap:wrap}
.tech-video-tabs,.science-segmented{flex-wrap:wrap}
.scene-tab{min-width:0}
.footer-grid>*{min-width:0;overflow-wrap:anywhere}
@media(max-width:650px){
  .program-story{grid-template-columns:minmax(0,1fr)}
  .contact-copy,.contact-form-panel{overflow-wrap:anywhere}
  .efficacy-table{table-layout:auto}
  .efficacy-table th:first-child{width:auto}
  .efficacy-table th{overflow-wrap:anywhere}
}
/* "ADIBOT" is 3.31em wide and the page gutters are 22px each side, so 6.4rem fits only from a 383px
   window up; on 362-382px phones the word broke as "ADIBO / T". Shrink with the window until it fits. */
@media(max-width:650px){.product-head h1{font-size:min(6.4rem,calc((100vw - 46px) / 3.36))}}
@media(max-width:360px){.product-head h1{font-size:4.8rem}}
.privacy-banner .privacy-title,.privacy-settings .privacy-title{color:inherit}
