/* Desktop: large image + two-column photos; mobile: touch gallery and purchase card. */
body.coolnivo-reference-product { margin:0 !important; padding:0 !important; background:#fff; }
.product-layout.coolnivo-site { overflow:visible; }
.product-layout .section-header { position:relative; top:auto; left:auto; right:auto; width:92%; max-width:1520px; min-height:88px; margin:0 auto; border-radius:0; background:#fff; }
.cn-product-top { background:#f5f5f5; padding:28px 0 48px; }
.cn-product-width { width:92%; max-width:1520px; margin:0 auto; }
.product-layout .breadcrumbs { padding-bottom:32px; font-size:12px; gap:7px; color:#666; }
.cn-product-hero { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:48px; align-items:start; }
.cn-product-gallery { min-width:0; }
.cn-gallery-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.cn-gallery-photo { position:relative; min-width:0; display:block; background:#fff; border-radius:8px; overflow:hidden; aspect-ratio:1; }
.cn-gallery-photo:first-child { grid-column:1/-1; }
.cn-gallery-photo img { display:block; width:100%; height:100%; object-fit:contain; }
.cn-photo-zoom { position:absolute; right:15px; bottom:15px; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#ffffffd9; color:#222; font-size:23px; }
.cn-gallery-mobile-nav,.cn-gallery-thumbnails { display:none; }
.cn-product-purchase { position:sticky; top:20px; min-width:0; background:#fff; border-radius:24px; padding:28px 32px; }
.coolnivo-site .cn-product-purchase h1 { margin:12px 0 24px; font:500 32px/1.25 Arial,Helvetica,sans-serif; letter-spacing:.01em; }
.cn-product-price-row { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.cn-product-price { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; font-size:20px; font-weight:500; line-height:1.3; }
.cn-product-price del { order:2; color:#888; font-size:16px; font-weight:400; }
.cn-product-price ins { text-decoration:none; color:#111; }
.cn-price-currency { order:3; font-size:13px; color:#777; }
.cn-product-saving { color:#d56500; padding:6px 10px; border-radius:20px; background:#fff1df; font-size:12px; }
.cn-product-stock { font-size:12px; color:#56815b; margin-top:16px; }
.cn-product-stock .stock { margin:0; }
.cn-product-stock .out-of-stock { color:#9d3737; }
.cn-product-real-rating { display:flex; align-items:center; gap:10px; margin-top:16px; font-size:13px; }
.cn-purchase-form { margin:40px 0 0 !important; }
.cn-quantity-label { margin-bottom:12px !important; font-size:13px; font-weight:500; letter-spacing:.05em; }
.cn-quantity-control { display:inline-flex; align-items:center; height:48px; border-radius:6px; overflow:hidden; border:1px solid #e1e1e1; background:#f5f5f5; }
.cn-quantity-control button { display:grid; place-items:center; width:40px; height:46px; border:0; background:transparent; color:#111; font-size:20px; padding:0; }
.cn-quantity-control button:disabled { opacity:.3; }
.cn-quantity-control .quantity { float:none !important; margin:0 !important; }
.cn-quantity-control input.qty { box-sizing:border-box; width:50px; height:46px; padding:0; font:14px Arial,Helvetica,sans-serif; text-align:center; border:0; border-radius:0; background:transparent; color:#111; -moz-appearance:textfield; }
.cn-quantity-control input::-webkit-inner-spin-button,.cn-quantity-control input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.cn-purchase-summary { margin-top:26px; }
.cn-purchase-discount { display:flex; justify-content:space-between; gap:12px; font-size:14px; color:#ca6100; margin-bottom:8px; }
.cn-purchase-total { display:flex; justify-content:space-between; gap:12px; font-size:18px; line-height:1.3; margin-bottom:20px; }
.cn-purchase-total strong { margin-left:5px; font-weight:600; }
.cn-purchase-buttons { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.product-layout .cn-purchase-buttons button { display:flex; align-items:center; justify-content:center; float:none !important; width:100%; min-height:52px; margin:0 !important; padding:14px 10px !important; border:1px solid #ff8a00 !important; border-radius:999px !important; font:700 16px/1.3 Arial,Helvetica,sans-serif !important; cursor:pointer; box-shadow:none; }
.product-layout .cn-purchase-buttons .cn-add-to-cart { background:#ff8a00 !important; color:#fff !important; }
.product-layout .cn-purchase-buttons .cn-buy-now { background:#fff !important; color:#e47500 !important; }
.product-layout .cn-purchase-buttons button:hover { filter:brightness(.96); }
.cn-purchase-tax-note { font-size:11px; line-height:1.5; color:#888; margin-top:12px !important; }
.cn-product-summary { border-top:1px solid #e5e5e5; padding-top:22px; margin-top:32px; }
.cn-product-summary > summary { display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:18px; font-weight:600; cursor:pointer; list-style:none; }
.cn-product-summary > summary::-webkit-details-marker,.cn-product-faq summary::-webkit-details-marker { display:none; }
.cn-product-summary > summary span { font-size:22px; font-weight:400; }
.cn-product-summary[open] > summary span,.cn-product-faq details[open] summary span { transform:rotate(45deg); }
.cn-product-summary-copy { margin-top:22px; color:#666; font-size:14px; line-height:1.7; }
.coolnivo-site .cn-product-summary-copy h3 { font:600 14px/1.5 Arial,Helvetica,sans-serif; margin:20px 0 7px; color:#222; }
.cn-product-summary-copy p { margin:0 0 15px; }
.cn-product-sku { color:#888; font-size:11px; margin-top:22px !important; }
.cn-product-description { width:100%; margin:0; background:#fff; }
.cn-product-description .cn-product-details-v2 { margin:0 auto; }
.cn-product-faq,.cn-product-reviews { width:88%; max-width:1040px; margin:70px auto; }
.cn-product-faq > h2 { text-align:center; font-size:clamp(28px,3vw,42px); font-weight:600; margin-bottom:35px; line-height:1.2; }
.cn-product-faq details { border-top:1px solid #ddd; }
.cn-product-faq details:last-child { border-bottom:1px solid #ddd; }
.cn-product-faq summary { display:flex; align-items:center; justify-content:space-between; gap:25px; list-style:none; cursor:pointer; padding:24px 0; font-size:17px; font-weight:600; line-height:1.4; }
.cn-product-faq summary span { font-size:23px; font-weight:400; }
.cn-product-faq p { padding-bottom:25px; font-size:15px; line-height:1.8; color:#666; }
.cn-product-faq a { text-decoration:underline; text-underline-offset:3px; }
.cn-aero-faq .wp-block-details { margin:0; }
.cn-aero-faq .wp-block-details > summary::after { content:"+"; flex-shrink:0; font-size:24px; font-weight:400; line-height:1; }
.cn-aero-faq .wp-block-details[open] > summary::after { content:"−"; }
.cn-aero-faq .wp-block-details > summary:focus-visible { outline:2px solid #ff8300; outline-offset:4px; }
.cn-aero-faq .wp-block-details > p { margin:0; }
.cn-product-lightbox { width:calc(100vw - 40px); height:calc(100vh - 40px); max-width:none; max-height:none; padding:0; border:0; border-radius:12px; background:#f5f5f5; }
.cn-product-lightbox[open] { display:flex; align-items:center; justify-content:center; }
.cn-product-lightbox::backdrop { background:#000b; }
.cn-product-lightbox > img { display:block; width:100%; height:100%; object-fit:contain; }
.cn-product-lightbox button { position:absolute; z-index:2; width:46px; height:46px; border:1px solid #ddd; border-radius:50%; background:#fffe; color:#111; font-size:26px; }
.cn-lightbox-close { top:16px; right:16px; }
.cn-lightbox-prev { left:16px; top:50%; }
.cn-lightbox-next { right:16px; top:50%; }
.product-layout .woocommerce-message,.product-layout .woocommerce-error,.product-layout .woocommerce-info { margin-bottom:25px; }
@media (max-width:989px) {
 .product-layout .section-header { min-height:76px; }
 .cn-product-top { padding-top:18px; padding-bottom:25px; }
 .cn-product-width { width:100%; }
 .product-layout .breadcrumbs { width:92%; margin:0 auto; padding-bottom:18px; font-size:11px; }
 .cn-product-hero { display:block; }
 .cn-gallery-stage { position:relative; }
 .cn-gallery-list { display:flex; gap:0; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; scrollbar-width:none; }
 .cn-gallery-list::-webkit-scrollbar { display:none; }
 .cn-gallery-photo,.cn-gallery-photo:first-child { flex:0 0 100%; width:100%; scroll-snap-align:start; border-radius:0; }
 .cn-photo-zoom { bottom:18px; right:20px; }
 .cn-gallery-mobile-nav { display:flex; align-items:center; justify-content:space-between; position:absolute; inset:50% 0 auto; transform:translateY(-50%); pointer-events:none; }
 .cn-gallery-mobile-nav button { width:46px; height:60px; border:0; padding:0; font-size:32px; font-weight:300; color:#222; background:#ffffff80; pointer-events:auto; }
 .cn-gallery-mobile-nav button:disabled { opacity:.25; }
 .cn-gallery-count { position:absolute; top:auto; bottom:calc(-50vw + 50px); left:50%; transform:translateX(-50%); font-size:11px; color:#666; background:#ffffffd9; border-radius:20px; padding:5px 10px; }
 .cn-gallery-thumbnails { display:flex; gap:8px; margin:12px 20px 20px; overflow-x:auto; scrollbar-width:none; }
 .cn-gallery-thumb { flex:0 0 calc((100% - 32px)/5); min-width:0; border-radius:4px; overflow:hidden; background:#fff; opacity:.3; }
 .cn-gallery-thumb[aria-current="true"] { opacity:1; box-shadow:inset 0 0 0 1px #999; }
 .cn-gallery-thumb img { display:block; width:100%; aspect-ratio:1; object-fit:contain; }
 .cn-product-purchase { position:static; margin:0 16px; padding:24px 20px; border-radius:24px; }
 .coolnivo-site .cn-product-purchase h1 { font-size:22px; margin:0 0 20px; }
 .cn-product-price { font-size:20px; }
 .cn-product-price del { font-size:14px; }
 .cn-purchase-form { margin-top:28px !important; }
 .product-layout .cn-purchase-buttons button { min-height:48px; font-size:14px !important; }
 .cn-product-summary { margin-top:25px; }
 .cn-product-summary-copy { font-size:14px; }
 .cn-product-faq,.cn-product-reviews { width:88%; margin:45px auto; }
 .cn-product-faq summary { padding:20px 0; font-size:16px; }
 .cn-product-faq p { font-size:14px; }
}
@media (max-width:680px) {
 .product-layout .section-header { min-height:70px; }
 .cn-gallery-thumbnails { margin-inline:16px; }
}
@media (prefers-reduced-motion:reduce) { .cn-gallery-list { scroll-behavior:auto; } }
/* AERO: separate purchase and product-details cards, with native color variants. */
.cn-product-purchase.cn-aero-purchase { padding:0; background:transparent; border-radius:0; }
.cn-aero-purchase .cn-purchase-card,.cn-aero-purchase .cn-summary-card { padding:28px 32px; background:#fff; border-radius:24px; }
.cn-aero-purchase .cn-summary-card { margin:0; border:0; }
.cn-aero-purchase .cn-purchase-form { margin-top:40px !important; }
.cn-aero-form .variations { width:100%; margin-bottom:20px; font-size:14px; border:0; }
.cn-aero-form.is-enhanced .variations { position:absolute; width:1px; height:1px; margin:0; padding:0; overflow:hidden; clip-path:inset(50%); }
.cn-color-options { display:none; }
.cn-aero-form.is-enhanced .cn-color-options { display:block; margin:0 0 18px; }
.cn-color-options > p { font-size:14px; margin-bottom:14px; }
.cn-color-options strong { font-weight:500; }
.cn-color-swatches { display:flex; flex-wrap:wrap; gap:12px; }
.cn-color-swatch { display:grid; place-items:center; width:38px; height:38px; padding:3px; border:2px solid transparent; border-radius:50%; background:transparent; cursor:pointer; }
.cn-color-swatch > span { width:28px; height:28px; border:1px solid #0002; border-radius:50%; background:var(--swatch-color); }
.cn-color-swatch[aria-pressed="true"] { border-color:#171717; }
.cn-aero-purchase .cn-quantity-control { background:#fff; border-color:#ccc; }
.cn-aero-purchase .cn-purchase-summary { margin-top:40px; }
.product-layout .cn-aero-purchase .cn-purchase-buttons .cn-buy-now { background:#000 !important; color:#fff !important; border-color:#000 !important; }
.product-layout .cn-aero-purchase .cn-purchase-buttons button.disabled { opacity:.45; }
.cn-aero-purchase .woocommerce-variation-price { display:none; }
.cn-aero-purchase .woocommerce-variation-description { font-size:13px; }
.cn-aero-purchase .cn-product-price ins { color:#ff5120; }
.cn-aero-purchase .cn-product-summary-copy { color:#111; font-size:14px; line-height:1.55; }
.cn-aero-purchase .cn-product-summary-copy p { margin-bottom:16px; }
@media(max-width:989px) {
 .cn-product-purchase.cn-aero-purchase { margin:0 16px; }
 .cn-aero-purchase .cn-purchase-card,.cn-aero-purchase .cn-summary-card { padding:24px 20px; }
 .cn-aero-purchase .cn-purchase-form { margin-top:28px !important; }
}
