/* Readability pass: retain Jura, artwork and glass surfaces. Deliberately no
   root/body rules: the site footer, protection pages and power calculator
   keep their own typography. Load after the existing presentation sheets. */
.header .desktop-nav { font-size: 15px; gap: clamp(12px, 1.5vw, 24px); }
.header .search input { font-size: 16px; }
.header .badge { font-size: 12px; min-width: 20px; height: 20px; }

#home .home-description { font-size: 17px; line-height: 1.65; max-width: 480px; }
#home .home-about { font-size: 16px; line-height: 1.5; min-height: 44px; }
#home .home-dock .category-card { height: auto; min-height: 132px; grid-template-columns: 60px minmax(0, 1fr); grid-template-rows: auto; gap: 12px; }
#home .home-dock .category-product { grid-column: 1; grid-row: 1; width: 60px; height: 60px; }
#home .home-dock .category-card > span:nth-child(2) { grid-column: 2; grid-row: 1; font-size: 17px; line-height: 1.35; letter-spacing: .01em; white-space: normal; min-width: 0; overflow-wrap: anywhere; }
#home .home-dock .category-card small { display: block; font-size: 14px; line-height: 1.45; max-width: none; margin-top: 6px; }
#home .home-dock .category-card > span:last-child { display: none; }
#home .home-baseline { font-size: 14px; line-height: 1.5; gap: 18px; letter-spacing: .04em; }
#home .home-baseline > span { font-size: 14px; }
#home .home-baseline a { font-size: 15px; }

/* IDs scope text to the intended pages, including contact details that reuse
   footer class names. The actual footer is outside all of these sections. */
:is(#catalog,#about,#services,#contact,#account,#glossary,#privacy,#supply,#returns,#not-found) { font-size: 16px; }
:is(#catalog,#about,#services,#contact,#account,#glossary,#privacy,#supply,#returns,#not-found) :is(p,li,dt,dd,label,summary):not(#power-calculator-inline *) { font-size: 16px; line-height: 1.65; }
:is(#catalog,#about,#services,#contact,#account,#glossary,#privacy,#supply,#returns,#not-found) :is(small,.eyebrow,.back-link):not(#power-calculator-inline *) { font-size: 14px; line-height: 1.5; }
:is(#catalog,#about,#services,#contact,#account,#glossary,#privacy,#supply,#returns,#not-found) :is(.btn,.text-link,.text-button):not(#power-calculator-inline *) { font-size: 16px; line-height: 1.4; white-space: normal; min-height: 46px; max-width: 100%; }
:is(#catalog,#account,#glossary) :is(input,select,textarea) { font-size: 16px; line-height: 1.4; min-width: 0; max-width: 100%; }
#catalog .section-heading .eyebrow { font-size: 14px; }
#catalog .section-caption { font-size: 16px; line-height: 1.55; }
#catalog[data-world]:not([data-world=""]) .catalog-heading .eyebrow { font-size: 14px; line-height: 1.5; }
#catalog[data-world]:not([data-world=""]) .catalog-heading-copy .section-caption,
#catalog[data-world]:not([data-world=""]) .glossary-catalog-link { font-size: 14px; line-height: 1.6; }
#catalog .power-delivery-explanation strong { font-size: 16px; }
#catalog :is(.filter-tab,.sort-label,.catalog-control-label,.catalog-facets label > span) { font-size: 16px; line-height: 1.4; }
#catalog .filter-tab span { font-size: 15px; }
#catalog .catalog-filters[data-scoped="true"] :is(.filter-line label > span,.catalog-facets label > span) { font-size: 15px; line-height: 1.4; }
#catalog .catalog-filters[data-scoped="true"] select { font-size: 16px; min-height: 46px; }
#catalog :is(.results-count,.catalog-note,#catalog-progress,.catalog-facets > p) { font-size: 14px; line-height: 1.65; }
#catalog .product-card { min-width: 0; }
#catalog .product-info { min-width: 0; }
#catalog .product-title { font-size: 21px; line-height: 1.35; overflow-wrap: anywhere; }
#catalog .product-summary { font-size: 16px; line-height: 1.55; min-height: 3.1em; }
#catalog .product-kicker { font-size: 14px; line-height: 1.4; }
#catalog .product-variant-button { font-size: 16px; line-height: 1.5; white-space: normal; text-align: left; }
#catalog .product-price { font-size: clamp(23px,2vw,28px); line-height: 1.25; overflow-wrap: anywhere; }
#catalog .product-price .from { font-size: 15px; }
#catalog :is(.price-caption,.price-payment-note,.product-fulfillment-summary) { font-size: 14px; line-height: 1.6; }
#catalog .product-buy { flex-wrap: wrap; align-items: flex-start; gap: 14px; }
#catalog .product-buy > div { min-width: 0; flex: 1 1 150px; }
#catalog .product-buy .add-cart { font-size: 16px; min-height: 46px; white-space: normal; }
#about .about-world-story p:not(.eyebrow) { font-size: 18px; line-height: 1.8; }
#about :is(.editorial-story-signature,.about-world-panorama figcaption) { font-size: 14px; line-height: 1.6; }
#about .about-world-story .eyebrow { font-size: 14px; }
.services-page :is(.service-step,.service-deliverable small,.service-orbit b) { font-size: 14px; line-height: 1.5; }
.services-page :is(.services-intro,.service-card > p,.service-deliverable p,.services-next p:not(.eyebrow)) { font-size: 17px; line-height: 1.65; }
#contact :is(.footer-contact > span,.footer-contact > div,.instagram-link,.contact-intro) { font-size: 17px; line-height: 1.65; }
#contact :is(.footer-contact small,.contact-requisites,.footer-bottom) { font-size: 14px; line-height: 1.6; }
#contact .footer-contact { min-width: 0; overflow-wrap: anywhere; }
#account :is(.customer-account__tabs button,.account-demo__nav button,.account-demo__text-link) { font-size: 16px; line-height: 1.4; white-space: normal; min-height: 46px; }
#account :is(.customer-account__email span,.customer-account__email strong,.account-demo__cart-item strong,.account-demo__cart-item span,.account-demo__cart-item b) { font-size: 16px; line-height: 1.5; }
#account :is(.account-demo__badge,.account-demo__tag,.account-demo__content-heading p,.account-demo__facts dt,.account-demo__footer) { font-size: 14px; line-height: 1.5; }
#glossary :is(.glossary-category-label,.glossary-kicker,.glossary-aliases,.glossary-results-heading,.glossary-bottom-note) { font-size: 14px; line-height: 1.6; }
#glossary :is(.glossary-card-summary,.glossary-heading > p) { font-size: 17px; line-height: 1.7; }
#glossary :is(.glossary-filters button,.glossary-more,.glossary-reset) { font-size: 16px; line-height: 1.4; }

/* Modal overrides need priority over numerous category-specific mobile rules.
   Only text properties are important; spacing and glass remain editable. */
:is(#product-dialog,#cart-dialog,#compare-dialog,#fpv-shipping-dialog,#power-shipping-dialog,#consult-dialog,.glossary-term-dialog) :is(p,li,dt,dd,label,legend,summary,small) { font-size: 16px !important; line-height: 1.65; overflow-wrap: anywhere; }
:is(#product-dialog,#cart-dialog,#compare-dialog,#fpv-shipping-dialog,#power-shipping-dialog,#consult-dialog,.glossary-term-dialog) :is(small,.eyebrow,[class$="-note"],[class$="-disclaimer"],[class$="-exchange"],.price-caption,.detail-price-date,.detail-price-note,.detail-article,.cart-conditions,.cmp-category-note,.cmp-picker-notice,.cmp-table-footnote,.cmp-source-note,.cmp-price-detail) { font-size: 14px !important; line-height: 1.6; }
:is(#product-dialog,#cart-dialog,#compare-dialog,#fpv-shipping-dialog,#power-shipping-dialog,#consult-dialog,.glossary-term-dialog) :is(input,select,textarea) { font-size: 16px !important; line-height: 1.4; min-width: 0; max-width: 100%; }
:is(#product-dialog,#cart-dialog,#compare-dialog,#fpv-shipping-dialog,#power-shipping-dialog,#consult-dialog,.glossary-term-dialog) :is(.btn,.text-button,.text-link) { font-size: 16px !important; line-height: 1.4; white-space: normal; min-height: 46px; max-width: 100%; }
#product-dialog :is(.detail-copy h3,.detail-specs h3,.fulfillment-block h4) { font-size: 23px; line-height: 1.35; }
#product-dialog .detail-description { font-size: 17px !important; }
#product-dialog .detail-price { font-size: 34px !important; line-height: 1.2; }
#product-dialog .scene-title { font-size: clamp(26px,3vw,42px); line-height: 1.2; }
#product-dialog .scene-title { text-wrap: balance; }
#product-dialog .scene-highlights :is(span,small) { font-size: 14px !important; line-height: 1.4; }
#product-dialog .scene-highlights strong { font-size: clamp(18px,1.55vw,23px); line-height: 1.3; }
#product-dialog .scene-highlight--status strong { font-size: 17px; }
#product-dialog :is(.spec-table,.fulfillment-block dl) { font-size: 16px; }
#product-dialog .product-mobile-buy strong { font-size: 23px; }
#cart-dialog .cart-item h3 { font-size: 19px; line-height: 1.4; padding-right: 28px; overflow-wrap: anywhere; }
#cart-dialog :is(.quantity,.cart-line-price,.total-line,.cart-delivery-line,.cart-delivery-line strong) { font-size: 17px; line-height: 1.5; }
#cart-dialog .total-line { flex-wrap: wrap; gap: 10px; }
#cart-dialog .total-line strong { font-size: 26px; }
#cart-dialog .cart-item-bottom { flex-wrap: wrap; gap: 12px; }
#compare-dialog :is(.cmp-selected-chip,.cmp-option-copy strong,.cmp-option-copy > span,.cmp-picker-footer strong,.cmp-picker-footer > div > span,.cmp-table,.cmp-table th,.cmp-table td,.cmp-table-product > strong,.cmp-identical strong) { font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
#compare-dialog :is(.cmp-selection-placeholder,.cmp-difference-mark,.cmp-scroll-hint,.cmp-technical-source,.cmp-no-photo) { font-size: 14px; line-height: 1.6; }
#compare-dialog .cmp-option > b { font-size: 20px; }
#compare-dialog .cmp-picker-footer { flex-wrap: wrap; }
#compare-dialog .cmp-results-toolbar { flex-wrap: wrap; }
#fpv-shipping-dialog :is(.fpv-ship-step > span,.fpv-ship-weight-presets,.fpv-ship-weight-presets button,.fpv-ship-battery-name,.fpv-ship-route strong,.fpv-ship-total-label) { font-size: 16px; line-height: 1.5; }
#fpv-shipping-dialog :is(.fpv-ship-row-number,.fpv-ship-total-panel > p,.fpv-ship-route small) { font-size: 14px !important; }
#power-shipping-dialog :is(.power-ship-product,.power-ship-kicker,.power-ship-total > span) { font-size: 16px; line-height: 1.5; }
#compare-tray { font-size: 16px; line-height: 1.4; }
#compare-tray .btn { font-size: 16px; white-space: normal; }
#toast { font-size: 16px; line-height: 1.5; }

@media (min-width: 901px) and (max-width: 1200px) {
  .header { gap: 14px; }
  .header .desktop-nav { font-size: 14px; gap: 10px; }
  .header .brand { width: 145px; }
  .header .search { width: 165px; }
  .header .nav-tools { gap: 4px; }
}
@media (min-width: 651px) and (max-width: 1000px) {
  #home .home-dock { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
/* Larger copy and category descriptions need natural flow on narrow screens.
   Keep one continuous scene, but do not squeeze its content into 100svh. */
@media (max-width: 1000px) {
  #home.home-stage { height: auto; min-height: 100svh; padding: 147px 6% 24px; }
  #home .home-copy { position: relative; inset: auto; width: auto; }
  #home .home-airspace { position: relative; inset: auto; width: 100%; height: clamp(240px,44vw,360px); margin: 10px 0 24px; }
  #home .home-dock { position: relative; inset: auto; }
  #home .home-baseline { position: relative; inset: auto; margin-top: 20px; flex-wrap: wrap; }
}
@media (max-width: 650px) {
  #home .home-description { font-size: 16px; max-width: 100%; }
  #home .home-description br { display: none; }
  #home .home-about { display: inline-flex; font-size: 16px; margin-top: 10px; }
  #home .home-airspace { height: clamp(220px,62vw,330px); }
  #home .home-dock { grid-template-columns: minmax(0,1fr); gap: 12px; }
  #home .home-dock .category-card { grid-template-columns: 48px minmax(0,1fr); grid-template-rows: auto; min-height: 110px; padding: 14px; gap: 12px; text-align: left; justify-items: start; }
  #home .home-dock .category-product { width: 48px; height: 48px; grid-column: 1; grid-row: 1; }
  #home .home-dock .category-card > span:nth-child(2) { grid-column: 2; grid-row: 1; font-size: 16px; width: 100%; overflow-wrap: normal; }
  #home .home-dock .category-card small { font-size: 14px; }
  #home .home-baseline { align-items: flex-start; flex-wrap: wrap; gap: 8px; }
  #home .home-baseline > span { max-width: none; font-size: 14px; }
  #catalog .product-grid { grid-template-columns: minmax(0,1fr); }
  #catalog .product-title { font-size: 22px; }
  #catalog .product-info { padding: 22px; }
  #catalog .secondary-filters { flex-wrap: wrap; }
  #catalog .sort-label { max-width: 100%; }
  #product-dialog .scene-highlights { gap: 8px; flex-wrap: wrap; }
  #product-dialog .scene-highlights > div { min-width: 0; flex: 1 1 80px; }
  #product-dialog .scene-highlight--status strong { overflow-wrap: anywhere; }
  #product-dialog .product-mobile-buy { flex-wrap: wrap; gap: 10px; }
  #product-dialog .product-scene:not(:has(.fv-product-island-host)) { height: auto; min-height: 0; max-height: none; padding: 22px 5% 16px; }
  #product-dialog .product-scene:not(:has(.fv-product-island-host)) :is(.scene-eyebrow,.scene-title,.scene-object,.scene-aircraft,.scene-highlights) { position: relative; inset: auto; }
  #product-dialog .product-scene:not(:has(.fv-product-island-host)) .scene-eyebrow { margin: 0 44px 8px 0; font-size: 14px !important; }
  #product-dialog .product-scene:not(:has(.fv-product-island-host)) .scene-title { margin: 0; text-align: left; }
  #product-dialog .product-scene:not(:has(.fv-product-island-host)) :is(.scene-object,.scene-aircraft) { width: 100%; height: 240px; margin: 14px 0; }
  #product-dialog .product-scene:not(:has(.fv-product-island-host)) .scene-highlights { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; }
  #product-dialog .product-scene:not(:has(.fv-product-island-host)) .scene-highlights > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; }
  #account .account-demo__nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #contact .footer-top { grid-template-columns: minmax(0,1fr); }
  #contact .instagram-link { grid-column: auto; }
  #compare-tray { flex-wrap: wrap; }
}
