/* Shared storefront foundation. Explicit rules avoid missing generated utilities. */
:root{--store-ink:#101e33;--store-accent:#1d3a66;--store-muted:#5c6470;--store-line:#d9d9d7;--store-space:clamp(3rem,5vw,4.5rem)}
body{font-family:"Instrument Sans",Arial,sans-serif;line-height:1.6}
.font-display{font-family:"Fraunces","Source Serif 4",Georgia,serif;font-weight:600;letter-spacing:-.01em}
.font-semibold{font-weight:600}
[class~="tracking-[-0.01em]"]{letter-spacing:-.01em}
[class~="tracking-[-0.015em]"]{letter-spacing:-.015em}
[class~="tracking-[-0.005em]"]{letter-spacing:-.005em}
[class~="leading-[1.03]"]{line-height:1.03}
[class~="leading-[1.05]"]{line-height:1.05}
[class~="leading-[1.1]"]{line-height:1.1}
[class~="text-[34px]"]{font-size:34px}
[class~="text-[36px]"]{font-size:36px}
[class~="max-w-[13ch]"]{max-width:13ch}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
:is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #c9972c;outline-offset:3px}
button,summary,.btn-red{min-height:44px}
button:disabled{cursor:not-allowed;opacity:.55}
header nav[aria-label="Servizi"]>a,header nav[aria-label="Servizi"]>button{min-width:44px;min-height:44px;justify-content:center}
header nav[aria-label="Categorie"] a{min-height:44px}
header nav[aria-label="Categorie"]>div{gap:1.25rem}
header [data-cart-count]{min-width:18px;height:18px;font-size:11px;line-height:18px;text-align:center}
#mobileMenu{max-height:calc(100dvh - 76px);overflow:auto;overscroll-behavior:contain}
.mobile-navigation{display:grid;gap:1.25rem}
.mobile-navigation>div{display:grid;gap:0}
.mobile-navigation a{display:flex;align-items:center;min-height:44px;font-size:15px;border-bottom:1px solid #eee;padding:8px 0}
.mobile-nav-label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--store-muted);margin-bottom:.25rem}
#main>section:not(.hero-shell)>div:first-child{padding-top:var(--store-space);padding-bottom:var(--store-space)}
#main>section h2{font-size:clamp(1.85rem,3.2vw,2.75rem);line-height:1.12;max-width:24ch}
#main>section[id]{scroll-margin-top:140px}
.hero-shell h1{font-size:clamp(2.35rem,4.6vw,4.5rem);line-height:1.08;max-width:18ch}
.hero-shell p{max-width:62ch}
.product-key-specs:empty{display:none}
.product-key-specs{margin-top:1.25rem;padding:1rem 0;border-top:1px solid var(--store-line);border-bottom:1px solid var(--store-line)}
.product-key-specs dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.product-key-specs dt{font-size:12px;color:var(--store-muted)}
.product-key-specs dd{font-size:15px;font-weight:600;color:var(--store-ink);overflow-wrap:anywhere}
#galleryFrame.is-no-image{height:auto;min-height:0;aspect-ratio:4/3;cursor:default;background:#f5f5f3;display:block}
#galleryFrame.is-no-image #galleryPlaceholder{position:absolute;inset:0;display:block;padding:0}
#galleryFrame.is-no-image .ph-catalog-state{position:absolute;inset:0;width:100%;height:100%;padding:2rem;gap:2rem}
#galleryFrame.is-no-image .ph-brand-logo{width:auto;height:auto;max-width:55%;max-height:100px}
#galleryFrame.is-no-image .ph-catalog-button{max-width:100%;text-align:center}
@media(max-width:639px){#galleryFrame.is-no-image .ph-catalog-state{padding:1.5rem;gap:1.25rem}#galleryFrame.is-no-image .ph-brand-logo{max-height:68px}#galleryFrame.is-no-image .ph-catalog-button{font-size:12px;padding:12px 16px}}
.product-image-unavailable{text-align:center;color:var(--store-muted);font-size:14px;max-width:28ch}
.product-image-unavailable strong,.product-image-unavailable span{display:block}
.product-image-unavailable strong{color:var(--store-ink);font-size:15px;margin-bottom:.25rem}
.product-inline-details summary,.product-fold summary{min-height:52px;cursor:pointer}
.checkout-help{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem;font-size:14px}
.checkout-help a{min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
#checkoutForm label,#quoteForm label{line-height:1.5}
#checkoutForm input:not([type="checkbox"]):not([name="website"]),#checkoutForm textarea,#quoteForm input:not([type="checkbox"]),#quoteForm textarea{min-height:44px}
footer ul a{display:inline-flex;align-items:center;min-height:36px}
@media(min-width:640px){.mobile-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){[class~="lg:text-[52px]"]{font-size:52px}}
@media(max-width:1023px){header>div:first-child{gap:.5rem}header nav[aria-label="Servizi"]{gap:.35rem}#main>section[id]{scroll-margin-top:90px}}
@media(max-width:639px){header>div:first-child{padding-left:16px;padding-right:12px}header>div:first-child>a>span:first-child{font-size:16px}header>div:first-child>a>span:last-child{font-size:8px;letter-spacing:.15em}header nav[aria-label="Servizi"]{gap:0}header nav[aria-label="Servizi"]>button{padding:10px;min-width:44px}input:not([type="checkbox"]),select,textarea{font-size:16px!important}.hero-shell{height:540px}.hero-shell h1{font-size:clamp(2.15rem,8.7vw,2.7rem)}.product-key-specs dl{gap:.75rem}.product-detail-info h1{font-size:clamp(1.8rem,7vw,2.25rem);overflow-wrap:anywhere}footer ul a{min-height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* An empty selection is a navigation state, not an order summary. */
#checkoutLayout:has(#coFormWrap.hidden){grid-template-columns:1fr;max-width:52rem}
#checkoutLayout:has(#coFormWrap.hidden)>aside{grid-column:auto}
#checkoutLayout:has(#coFormWrap.hidden) [data-project-summary],#checkoutLayout:has(#coFormWrap.hidden) .checkout-help,#checkoutLayout:has(#coFormWrap.hidden) aside dl,#checkoutLayout:has(#coFormWrap.hidden) aside ul,#checkoutLayout:has(#coFormWrap.hidden) aside>div>p{display:none}
#checkoutLayout:has(#coFormWrap.hidden) #checkoutItems{margin-top:1rem}
#checkoutLayout:has(#coFormWrap.hidden) #checkoutItems>p{padding:1rem 0;font-size:16px}
#checkoutLayout:has(#coFormWrap.hidden) #checkoutItems a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline}

/* Product detail: give the source and buying decision a quieter, clearer hierarchy. */
[data-product-section] nav[aria-label="Percorso"]{line-height:1.5;overflow-wrap:anywhere}
.product-detail-gallery #galleryFrame{border-radius:8px;background:#f7f7f5;border-color:#e4e7e5}
.product-detail-gallery #galleryFrame.is-no-image{background:linear-gradient(135deg,#f8f8f5,#eeefec)}
.product-detail-info h1{font-size:clamp(2rem,3vw,2.55rem);line-height:1.13;letter-spacing:-.018em;overflow-wrap:anywhere;color:#17263a}
.product-detail-info #pDesc{color:#505c68;line-height:1.65}
.product-detail-info #pSku{font-variant-numeric:tabular-nums}
.product-detail-info #pPrice{color:#17263a}
.product-inline-details{border-top:1px solid #e3e6e6}
.product-inline-details summary{display:flex;align-items:center;color:#17263a}
@media(max-width:639px){.product-detail-info h1{font-size:clamp(1.85rem,7vw,2.2rem)}.product-detail-gallery #galleryFrame.is-no-image{max-height:300px}.product-detail-info{padding-bottom:24px}}

/* Desktop product pages use the image as evidence, with space for the actual decision. */
@media(min-width:1024px){
  [data-product-section]>.grid{column-gap:clamp(3rem,5vw,5.5rem);align-items:start}
  [data-product-section] .product-detail-gallery{grid-column:span 5/span 5;top:128px}
  [data-product-section] .product-detail-info{grid-column:span 7/span 7;max-width:720px;padding:8px 0 32px}
  [data-product-section] .product-detail-gallery #galleryFrame.is-no-image{aspect-ratio:1.25}
  [data-product-section] .product-detail-info h1{max-width:25ch;margin-top:10px}
  [data-product-section] .product-detail-info #pDesc{max-width:62ch}
  [data-product-section] .product-detail-info #pAdd,
  [data-product-section] .product-detail-info>a[href="#dati-caratteristiche"]{max-width:490px}
  [data-product-section] .product-detail-info>a[href="#dati-caratteristiche"]+p{max-width:490px}
}

/* Contextual category photography is never represented as the SKU image. */
#galleryFrame.is-no-image .ph-category-scene{position:absolute;inset:0;display:block;padding:0;background:#17263a;overflow:hidden}
#galleryFrame.is-no-image .ph-category-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.78)}
#galleryFrame.is-no-image .ph-category-scene:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,23,39,.13) 0%,rgba(10,23,39,.38) 38%,rgba(10,23,39,.82) 100%);pointer-events:none}
#galleryFrame.is-no-image .ph-category-content{position:absolute;z-index:1;inset:auto 22px 22px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;color:#fff;text-align:left}
#galleryFrame.is-no-image .ph-illustrative-note{display:inline-block;padding:7px 10px;border:1px solid rgba(255,255,255,.76);background:rgba(10,23,39,.8);font-size:11px;font-weight:600;line-height:1.25;letter-spacing:.01em}
#galleryFrame.is-no-image .ph-illustrative-category{font:600 clamp(24px,2.7vw,36px)/1.1 Fraunces,Georgia,serif;max-width:18ch}
#galleryFrame.is-no-image .ph-category-content .ph-catalog-button{background:#fff;color:#17263a;border-color:#fff;min-height:44px}
#galleryFrame.is-no-image .ph-category-content .ph-catalog-button:hover{background:#edf1f4}
#galleryFrame.is-no-image .ph-category-brand{position:absolute;z-index:2;top:18px;right:18px;display:flex;align-items:center;justify-content:center;width:184px;min-height:52px;max-width:58%;padding:7px 12px;border-radius:4px;background:rgba(255,255,255,.97);box-shadow:0 3px 14px rgba(0,0,0,.16);color:#17263a}
#galleryFrame.is-no-image .ph-category-brand .ph-brand-logo{display:block;width:100%;height:38px;max-width:160px;max-height:38px;object-fit:contain}
#galleryFrame.is-no-image .ph-category-brand .ph-brand-wordmark{font:600 19px/1.1 Fraunces,Georgia,serif;text-align:center;overflow-wrap:anywhere}
#galleryFrame.is-no-image .ph-category-brand .ph-brand-dark{background:#101e33;padding:4px 8px}
@media(max-width:639px){#galleryFrame.is-no-image .ph-category-content{inset:auto 16px 16px;gap:9px}#galleryFrame.is-no-image .ph-illustrative-category{font-size:23px}#galleryFrame.is-no-image .ph-category-content .ph-catalog-button{font-size:12px}}
@media(max-width:639px){#galleryFrame.is-no-image .ph-category-brand{top:12px;right:12px;width:142px;min-height:38px;max-width:58%;padding:5px 8px}#galleryFrame.is-no-image .ph-category-brand .ph-brand-logo{height:28px;max-height:28px}#galleryFrame.is-no-image .ph-category-brand .ph-brand-wordmark{font-size:14px}}

/* Product enquiry: make the selected item and manual email step explicit. */
.product-contact{display:grid;grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);padding:clamp(1.5rem,3vw,3rem);border:1px solid #e0e5ea;border-radius:8px;background:#f6f8fa}
.product-contact-intro{max-width:29rem}
.product-contact-eyebrow,.product-contact-item-label{color:#627186;font-size:.7rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase}
.product-contact-intro h2{max-width:18ch;margin:.75rem 0 1rem;color:#17263a;font-size:clamp(1.8rem,2.6vw,2.5rem);font-weight:600;line-height:1.18}
.product-contact-intro>p:not(.product-contact-eyebrow){color:#536171;font-size:.92rem;line-height:1.65}
.product-contact-item{margin-top:2rem;padding:1rem 1.15rem;border-left:3px solid #1d3a66;background:#fff;box-shadow:0 4px 18px rgba(23,38,58,.04)}
.product-contact-item p{margin:.45rem 0 .2rem;color:#17263a;font-size:1rem;font-weight:650;line-height:1.35}
.product-contact-item>span:last-child{color:#627186;font-size:.78rem}
.product-contact-intro .product-contact-phone{margin-top:1.5rem}
.product-contact-phone a{color:#1d3a66;font-weight:650;text-decoration:underline;text-underline-offset:3px}
.product-contact-form{padding:clamp(1.2rem,2.2vw,2rem);border:1px solid #e0e5ea;border-radius:7px;background:#fff;box-shadow:0 14px 36px rgba(23,38,58,.05)}
.product-contact-required{margin-bottom:1.3rem;color:#627186;font-size:.8rem}
.product-contact-required span,.product-contact-fields label>span:not(.product-contact-optional),.product-contact-consent label>span{color:#a3363a}
.product-contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1.2rem}
.product-contact-full{grid-column:1/-1}
.product-contact-fields label{display:block;margin-bottom:.45rem;color:#17263a;font-size:.83rem;font-weight:650}
.product-contact-fields input,.product-contact-fields textarea{display:block;width:100%;min-height:3rem;padding:.7rem .85rem;border:1px solid #bfc9d4;border-radius:4px;background:#fff;color:#17263a;font-size:1rem;line-height:1.45}
.product-contact-fields textarea{min-height:7rem;resize:vertical}
.product-contact-fields input:focus,.product-contact-fields textarea:focus{outline:2px solid #c9972c;outline-offset:2px;border-color:#1d3a66}
.product-contact-optional,.product-contact-help{color:#657385;font-size:.75rem;font-weight:400}
.product-contact-help{margin:-.15rem 0 .5rem;line-height:1.45}
.product-contact-consent{display:flex;align-items:flex-start;gap:.65rem;margin:1.35rem 0 1.2rem}
.product-contact-consent input{width:1.15rem;height:1.15rem;min-width:1.15rem;margin-top:.1rem;accent-color:#1d3a66}
.product-contact-consent label{color:#3f4d5c;font-size:.83rem;line-height:1.5}
.product-contact-consent a{text-decoration:underline;text-underline-offset:3px}
.product-contact-submit{width:100%;min-height:3.25rem;padding:.75rem 1.25rem;border-radius:4px;background:#1d3a66;color:#fff;font-size:.92rem;font-weight:650;cursor:pointer}
.product-contact-submit:hover{background:#142a4d}
.product-contact-submit:focus-visible,.product-contact-phone a:focus-visible,.product-contact-consent a:focus-visible{outline:2px solid #c9972c;outline-offset:3px}
.product-contact-note{margin-top:.8rem;color:#536171;font-size:.78rem;line-height:1.55}
@media(max-width:900px){.product-contact{grid-template-columns:1fr;gap:1.5rem}.product-contact-intro{max-width:none}.product-contact-item{margin-top:1.25rem}}
@media(max-width:639px){.product-contact{padding:1.1rem}.product-contact-fields{grid-template-columns:1fr}.product-contact-form{padding:1.1rem}.product-contact-intro h2{font-size:1.75rem}}

/* Related and editorial cards use the same clearly labelled category imagery as the archive. */
.pcard-category-image{position:absolute;inset:0;display:block;overflow:hidden;background:#e9e7e1}
.pcard-category-image>img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.83)}
.pcard-category-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,30,48,.05),transparent 48%,rgba(15,30,48,.28));pointer-events:none}
.pcard-category-brand{position:absolute;z-index:2;top:12px;right:12px;display:flex;align-items:center;justify-content:center;max-width:55%;min-width:90px;min-height:42px;padding:6px 9px;border-radius:3px;background:rgba(255,255,255,.96);box-shadow:0 2px 10px rgba(15,30,48,.15);color:#17263a;font-size:.85rem;font-weight:700;text-align:center;overflow-wrap:anywhere}
.pcard-category-brand img{display:block;max-width:135px;width:100%;height:30px;object-fit:contain}
.pcard-category-brand.is-dark-logo img{padding:3px 5px;background:#17263a}
.pcard-category-brand:has(img[src$="/moretti.png"]),.pcard-category-brand:has(img[src$="/itv.png"]),
#galleryFrame.is-no-image .ph-category-brand:has(img[src$="/moretti.png"]),#galleryFrame.is-no-image .ph-category-brand:has(img[src$="/itv.png"]){background:#101e33;color:#fff}
.pcard-category-note{position:absolute;z-index:2;left:12px;bottom:47px;padding:5px 7px;background:rgba(15,30,48,.88);color:#fff;font-size:10px;font-weight:650;line-height:1.25}
@media(max-width:639px){.pcard-category-brand{top:8px;right:8px;min-width:66px;min-height:32px;padding:4px 6px}.pcard-category-brand img{height:23px}.pcard-category-note{left:8px;bottom:42px;font-size:9px}}

/* Narrow layouts and text enlargement keep the shared header usable without clipping. */
@media(max-width:639px){
 header>div:first-child{height:72px;flex-wrap:nowrap;padding-top:0;padding-bottom:0;gap:8px}
 header>div:first-child>a:first-child{flex:1 1 auto;max-width:100%;min-width:0}
 header>div:first-child>a:first-child span{white-space:nowrap;overflow-wrap:normal}
 header>div:first-child>a:first-child>span:first-child{font-size:clamp(12px,3.8vw,16px)}
 header>div:first-child>a:first-child>span:last-child{font-size:clamp(6px,1.75vw,8px);letter-spacing:.12em}
 header nav[aria-label="Servizi"]{flex:0 0 auto;flex-wrap:nowrap;gap:0;margin-left:auto}
 body>div.bg-red>div{height:auto;min-height:32px;padding-top:6px;padding-bottom:6px;text-align:center}
 footer .whitespace-nowrap{white-space:normal;overflow-wrap:anywhere}
}
