/*
Theme Name: Stampa A Profusione
Theme URI: https://stampaaprofusione.it
Description: Tema figlio di Twenty Twenty-Five: carta e inchiostro, accenti di processo ciano, magenta e giallo, transizioni a lastre di stampa tra le pagine.
Author: Stampa A Profusione
Template: twentytwentyfive
Version: 1.4.0
Requires at least: 6.6
Text Domain: stampa-a-profusione
*/

/* ——— Transizioni tra pagine ——— */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .35s; }
::view-transition-group(sap-prod) { animation-duration: .8s; animation-timing-function: cubic-bezier(.65,0,.2,1); }

.sap-plates { position: fixed; inset: 0; z-index: 99999; pointer-events: none; overflow: hidden; }
.sap-plate { position: absolute; top: 0; bottom: 0; left: -12%; right: -12%; mix-blend-mode: multiply; transform: translateX(-130%); }
.sap-plate--c { background: radial-gradient(circle, rgba(255,255,255,.22) 1.3px, transparent 1.8px) 0 0/7px 7px, var(--wp--preset--color--accent-1); }
.sap-plate--m { background: radial-gradient(circle, rgba(255,255,255,.22) 1.3px, transparent 1.8px) 2px 3px/7px 7px, var(--wp--preset--color--accent-2); }
.sap-plate--y { background: radial-gradient(circle, rgba(255,255,255,.22) 1.3px, transparent 1.8px) 4px 1px/7px 7px, var(--wp--preset--color--accent-3); }
.sap-plates__label { position: absolute; left: 6vw; bottom: 8vh; color: var(--wp--preset--color--base); opacity: 0; font-family: var(--wp--preset--font-family--source-serif); }
.sap-plates__label small { display: block; font-size: 14px; letter-spacing: .12em; text-transform: uppercase; }
.sap-plates__label span { display: block; font-size: clamp(56px, 9vw, 128px); line-height: 1.05; font-style: italic; letter-spacing: -.02em; }
html.sap-entering .sap-plate { transform: none; }
html.sap-entering .sap-plates__label { opacity: 1; }

/* ——— Comparsa allo scroll ——— */
.sap-reveal { opacity: 0; transform: translateY(40px) scale(.98); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); transition-delay: var(--sap-d, 0s); }
.sap-reveal.is-in { opacity: 1; transform: none; }

/* ——— Schede prodotto ——— */
.wc-block-product, ul.products li.product { transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.wc-block-product:hover, ul.products li.product:hover { transform: translateY(-8px); }
.wc-block-components-product-image img, ul.products li.product img { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.wc-block-product:hover .wc-block-components-product-image img, ul.products li.product:hover img { transform: scale(1.04); }
.wc-block-components-product-image, ul.products li.product a img { border-radius: 2px; overflow: hidden; }

/* ——— Pulsanti ——— */
.wp-element-button, .wp-block-button__link, .button, button.single_add_to_cart_button, .wc-block-components-button {
  border-radius: 2px !important; transition: background-color .2s, transform .15s;
}
.wp-element-button:active, .wp-block-button__link:active, .button:active { transform: scale(.97); }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 2px; }
::selection { background: color-mix(in oklch, var(--wp--preset--color--accent-1), white 75%); }

/* ——— Volo nel carrello ——— */
.sap-fly { position: fixed; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; z-index: 99998; pointer-events: none; box-shadow: 0 6px 18px rgba(32,30,29,.25); }

@media (prefers-reduced-motion: reduce) {
  .sap-reveal { opacity: 1; transform: none; transition: none; }
  @view-transition { navigation: none; }
}
html.sap-no-anim .sap-reveal { opacity: 1; transform: none; transition: none; }

/* ——— Modalità scura ——— */
html[data-sap-scheme=dark]{color-scheme:dark;
  --wp--preset--color--base:#171615;--wp--preset--color--contrast:#ecebe9;--wp--preset--color--accent-4:#a8a4a1;--wp--preset--color--accent-5:#24221f;
  --sap-card:#2c2a27;--sap-hub:#3a3734;--sap-line:rgba(236,235,233,.18)}
html[data-sap-scheme=dark]:not([data-sap-custom]){--wp--preset--color--accent-1:#2fb3dc;--wp--preset--color--accent-2:#ff4f9e;--wp--preset--color--accent-3:#f4c63d}
html[data-sap-scheme=dark]{--wp--preset--color--accent-6:color-mix(in oklch,var(--wp--preset--color--accent-1),white 38%)}
html[data-sap-scheme=dark] body{background:var(--wp--preset--color--base);color:var(--wp--preset--color--contrast)}
html[data-sap-scheme=dark] img{filter:brightness(.94)}
html[data-sap-scheme=dark] .sap-plate,html[data-sap-scheme=dark] .sap-hero__plate,html[data-sap-scheme=dark] .sap-r__spool,html[data-sap-scheme=dark] .sap-r-plates i{mix-blend-mode:screen}
html[data-sap-scheme=dark] .sap-spool__hub,html[data-sap-scheme=dark] .sap-macro__spool .sap-spool__hub{box-shadow:inset 0 0 0 clamp(6px,1.4vw,14px) var(--sap-hub)!important}
html[data-sap-scheme=dark] .sap-r__spool::after{background:var(--wp--preset--color--accent-5);box-shadow:inset 0 0 0 clamp(8px,1.4vw,16px) var(--sap-hub)}
html[data-sap-scheme=dark] .sap-calc__spool{background:repeating-radial-gradient(circle,#34312e 0 3px,#2a2826 3px 4px)}
html[data-sap-scheme=dark] .sap-chip:hover,html[data-sap-scheme=dark] .sap-macro.is-active,html[data-sap-scheme=dark] .sap-macro--all.is-active,html[data-sap-scheme=dark] .sap-g__fil a:hover,
html[data-sap-scheme=dark] .sap-g__chosen li,html[data-sap-scheme=dark] .sap-soglia__chips button:hover,html[data-sap-scheme=dark] .sap-r__chip{background:var(--sap-card)}
html[data-sap-scheme=dark] input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),html[data-sap-scheme=dark] select,html[data-sap-scheme=dark] textarea,
html[data-sap-scheme=dark] .sap-soglia__eur,html[data-sap-scheme=dark] .sap-g__drop,html[data-sap-scheme=dark] .sap-vf input,html[data-sap-scheme=dark] .sap-vf select,html[data-sap-scheme=dark] .sap-vf textarea{background:var(--sap-card)!important;color:var(--wp--preset--color--contrast)!important;border-color:var(--sap-line)!important}
html[data-sap-scheme=dark] .sap-soglia__eur input{background:transparent!important;border:0!important}
html[data-sap-scheme=dark] .sap-fav--loop,html[data-sap-scheme=dark] .sap-g__lbx{background:var(--sap-card)}
html[data-sap-scheme=dark] .sap-btn-outline,html[data-sap-scheme=dark] .sap-g__cart,html[data-sap-scheme=dark] .sap-alert{border-color:var(--wp--preset--color--contrast)}
html[data-sap-scheme=dark] .sap-card__img,html[data-sap-scheme=dark] .sap-g__fig{box-shadow:none}
html[data-sap-scheme=dark] .sap-card:hover .sap-card__img,html[data-sap-scheme=dark] .sap-g__fig:hover{box-shadow:0 24px 48px -16px rgba(0,0,0,.7)}
html[data-sap-scheme=dark] .wc-block-components-product-image,html[data-sap-scheme=dark] .woocommerce-product-gallery{background:var(--wp--preset--color--accent-5)}
html[data-sap-scheme=dark] .dokan-dashboard-content,html[data-sap-scheme=dark] .dokan-dashboard-content .dokan-panel,html[data-sap-scheme=dark] .dokan-table,html[data-sap-scheme=dark] .dokan-table td,html[data-sap-scheme=dark] .dokan-table th{background:transparent!important;color:var(--wp--preset--color--contrast)!important;border-color:var(--sap-line)!important}
html[data-sap-scheme=dark] .dokan-dashboard .dokan-dash-sidebar,html[data-sap-scheme=dark] .dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu{background:#0d0c0b!important}
html[data-sap-scheme=dark] .sap-vf__dots i{box-shadow:0 0 0 2px var(--wp--preset--color--base)}
html[data-sap-scheme=dark] .woocommerce-info,html[data-sap-scheme=dark] .woocommerce-message,html[data-sap-scheme=dark] .woocommerce-error,html[data-sap-scheme=dark] .wc-block-components-notice-banner{background:var(--sap-card)!important;color:var(--wp--preset--color--contrast)!important}
html[data-sap-scheme=dark] ::selection{background:color-mix(in oklch,var(--wp--preset--color--accent-1),black 45%)}
html.sap-scheme-anim,html.sap-scheme-anim *,html.sap-scheme-anim *::before,html.sap-scheme-anim *::after{transition:background-color .5s,color .5s,border-color .5s,fill .5s!important}

/* Interruttore */
.sap-scheme{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--wp--preset--color--contrast);cursor:pointer;flex:none;transition:background .2s,transform .2s}
.sap-scheme:hover{background:var(--wp--preset--color--accent-5)}
.sap-scheme:active{transform:scale(.92)}
.sap-scheme svg{grid-area:1/1;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;transition:transform .6s cubic-bezier(.2,.9,.2,1.2),opacity .35s}
.sap-scheme .sap-sun{transform:rotate(0) scale(1)}
.sap-scheme .sap-moon{opacity:0;transform:rotate(-90deg) scale(.4)}
html[data-sap-scheme=dark] .sap-scheme .sap-sun{opacity:0;transform:rotate(90deg) scale(.4)}
html[data-sap-scheme=dark] .sap-scheme .sap-moon{opacity:1;transform:none}
.sap-scheme--float{position:fixed;left:16px;bottom:16px;z-index:9990;background:var(--wp--preset--color--base);box-shadow:0 6px 20px rgba(0,0,0,.18)}
::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal}
html.sap-scheme-vt::view-transition-old(root){animation:none}
html.sap-scheme-vt::view-transition-new(root){animation:sapReveal .7s cubic-bezier(.65,0,.2,1)}
@keyframes sapReveal{from{clip-path:circle(0 at var(--sx,50%) var(--sy,0))}to{clip-path:circle(var(--sr,150vmax) at var(--sx,50%) var(--sy,0))}}
