/* =========================================================================
 * Tema Ancyllar — main stylesheet
 * Palette warm neutral, font DM Sans + Playfair Display.
 * ===================================================================== */

:root {
    --bg:            #F7F5F2;
    --surface:       #FFFFFF;
    --surface-alt:   #F3F0EB;
    --border:        #E3DED6;
    --border-light:  #EEEBE5;
    --text:          #2C2419;
    --text-sec:      #6B5D4F;
    --text-muted:    #9A9085;
    --primary:       #8B7355;
    --primary-dark:  #6F5B42;
    --primary-light: #EDE7DD;
    --primary-ghost: #F9F6F2;
    --success:       #059669;
    --success-light: #D1FAE5;
    --success-bg:    #ECFDF5;
    --warn:          #D97706;
    --warn-light:    #FEF3C7;
    --danger:        #DC2626;
    --danger-light:  #FEE2E2;
    --accent:        #2563EB;

    --radius-card: 12px;
    --radius-btn:  8px;
    --radius-pill: 999px;
    --shadow-sm:   0 1px 2px rgba(44,36,25,.04);
    --shadow-md:   0 4px 16px rgba(44,36,25,.06);
    --shadow-lg:   0 12px 40px rgba(44,36,25,.10);

    --ancyllar-primary:      #8B7355;
    --ancyllar-primary-dark: #6F5B42;

    --shell-max:   1200px;
    --shell-pad:   24px;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--primary); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--primary-dark); }

h1,h2,h3,h4 { font-weight: 700; letter-spacing: -0.02em; color: var(--text); margin: 0 0 .4em; line-height: 1.15; }
h1 { font-size: clamp(2rem, 4vw, 3rem); font-family: 'Playfair Display', serif; font-weight: 700; letter-spacing: -0.025em; }
h2 { font-size: clamp(1.5rem, 2.5vw, 2.1rem); font-family: 'Playfair Display', serif; }
h3 { font-size: 1.15rem; }

p { margin: 0 0 1em; }
small { color: var(--text-sec); }
hr { border: 0; border-top: 1px solid var(--border-light); margin: 2rem 0; }

::selection { background: var(--primary-light); color: var(--text); }

.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0); border: 0; white-space: nowrap;
}
.skip-link { position: absolute; top: -40px; left: 8px; background: var(--text); color: #fff; padding: 8px 12px; z-index: 99; border-radius: 6px; }
.skip-link:focus { top: 8px; color: #fff; }

/* ---------- Layout ---------- */
.anc-shell { width: 100%; max-width: var(--shell-max); margin: 0 auto; padding: 0 var(--shell-pad); }
.anc-site-content { min-height: 50vh; }
.anc-main { padding: 32px 0 64px; }

/* ---------- Buttons ---------- */
.anc-btn {
    display: inline-flex; align-items: center; gap: .45rem;
    font: 600 .95rem/1 'DM Sans', sans-serif; letter-spacing: -0.005em;
    padding: 10px 18px; border-radius: var(--radius-btn);
    border: 1px solid transparent; cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease, transform .1s ease, box-shadow .15s ease;
    text-decoration: none; white-space: nowrap;
}
.anc-btn:active { transform: translateY(1px); }
.anc-btn-sm { padding: 8px 14px; font-size: .85rem; }
.anc-btn-lg { padding: 14px 22px; font-size: 1rem; }
.anc-btn-primary   { background: var(--ancyllar-primary); color: #fff; }
.anc-btn-primary:hover { background: var(--ancyllar-primary-dark); color: #fff; }
.anc-btn-secondary { background: var(--primary-light); color: var(--primary-dark); }
.anc-btn-secondary:hover { background: #E5DCCB; color: var(--primary-dark); }
.anc-btn-ghost     { background: transparent; color: var(--ancyllar-primary); border-color: var(--border); }
.anc-btn-ghost:hover { background: var(--primary-ghost); border-color: var(--primary); color: var(--primary-dark); }
.anc-btn-danger    { background: var(--danger); color: #fff; }
.anc-btn-danger:hover { background: #B91C1C; color: #fff; }

button.anc-btn { font-family: inherit; }

/* ---------- Badges ---------- */
.anc-badge {
    display: inline-flex; align-items: center; gap: .25rem;
    padding: 4px 10px; font: 600 .72rem/1 'DM Sans', sans-serif;
    border-radius: var(--radius-pill); letter-spacing: .02em; text-transform: uppercase;
    background: var(--primary-light); color: var(--primary-dark);
}
.anc-badge-success { background: var(--success-light); color: var(--success); }
.anc-badge-warn    { background: var(--warn-light);    color: var(--warn);    }
.anc-badge-danger  { background: var(--danger-light);  color: var(--danger);  }
.anc-badge-primary { background: var(--primary-light); color: var(--primary-dark); }

/* ---------- Topbar ---------- */
.anc-topbar { background: var(--text); color: #E8E2D8; font-size: .82rem; }
.anc-topbar-inner { display: flex; justify-content: space-between; align-items: center; min-height: 36px; gap: 16px; }
.anc-topbar-text { opacity: .85; }
.anc-topbar-meta { display: flex; gap: 18px; }
.anc-topbar-link { color: inherit; display: inline-flex; align-items: center; gap: 6px; opacity: .85; }
.anc-topbar-link:hover { opacity: 1; color: #fff; }

/* ---------- Header ---------- */
.anc-header {
    background: var(--surface);
    border-bottom: 1px solid var(--border-light);
    position: sticky; top: 0; z-index: 50;
    backdrop-filter: saturate(140%) blur(6px);
}
.anc-header-inner {
    display: flex; align-items: center; justify-content: space-between;
    min-height: 72px; gap: 24px;
}
.anc-header-brand { display: flex; align-items: center; }
.custom-logo { max-height: 44px; width: auto; }

.anc-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--text); font-weight: 700; }
.anc-brand:hover { color: var(--primary-dark); }
.anc-brand-mark {
    width: 36px; height: 36px; border-radius: 8px;
    background: var(--ancyllar-primary); color: #fff;
    display: grid; place-items: center;
    font-family: 'Playfair Display', serif; font-weight: 700;
    box-shadow: var(--shadow-sm);
}
.anc-brand-text { letter-spacing: -0.015em; font-size: 1.05rem; }

.anc-nav { flex: 1; display: flex; justify-content: flex-end; margin-left: auto; }
.anc-menu { list-style: none; display: flex; gap: 6px; padding: 0; margin: 0; }
.anc-menu li { position: relative; }
.anc-menu a {
    display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px;
    color: var(--text-sec); font-weight: 500; font-size: .95rem;
    border-radius: var(--radius-btn);
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.anc-menu a:hover, .anc-menu .current-menu-item > a, .anc-menu .current_page_item > a {
    background: var(--primary-ghost); color: var(--text);
    box-shadow: inset 0 0 0 1px var(--border-light);
}
.anc-menu .anc-menu-link-subscriptions {
    font-weight: 800;
    color: var(--text);
}
.anc-menu .sub-menu {
    position: absolute; top: 100%; right: 0; min-width: 220px;
    background: var(--surface); border: 1px solid var(--border-light);
    border-radius: var(--radius-card); padding: 8px;
    box-shadow: var(--shadow-md);
    list-style: none; margin: 6px 0 0; opacity: 0; visibility: hidden;
    transform: translateY(4px); transition: opacity .15s, transform .15s, visibility 0s linear .15s;
}
.anc-menu li:hover > .sub-menu, .anc-menu li:focus-within > .sub-menu {
    opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s;
}
.anc-menu .sub-menu a { display: block; padding: 8px 12px; }

.anc-header-actions { display: flex; align-items: center; gap: 6px; }
.anc-icon-btn {
    width: 40px; height: 40px; border-radius: var(--radius-btn);
    border: 1px solid transparent; background: transparent;
    color: var(--text); display: inline-grid; place-items: center;
    cursor: pointer; position: relative;
    transition: background .15s ease, border-color .15s ease;
}
.anc-icon-btn:hover { background: var(--primary-ghost); border-color: var(--border-light); }
.anc-cart-count {
    position: absolute; top: -4px; right: -4px;
    min-width: 18px; height: 18px; padding: 0 5px;
    background: var(--ancyllar-primary); color: #fff;
    border-radius: var(--radius-pill); font-size: 11px; font-weight: 700;
    display: inline-grid; place-items: center;
}
.anc-cart-count[data-count="0"] { display: none; }

.anc-header-cta { margin-left: 6px; }

.anc-menu-toggle { display: none; }

/* Mobile search panel */
.anc-search-panel { background: var(--surface); border-bottom: 1px solid var(--border-light); padding: 14px 0; }
.anc-search-form { display: flex; gap: 8px; align-items: center; }
.anc-search-form input[type="search"] {
    flex: 1; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius-btn);
    background: var(--surface); font-size: .95rem; color: var(--text);
}
.anc-search-form input[type="search"]:focus { outline: 2px solid var(--primary-light); border-color: var(--primary); }

/* ---------- Footer ---------- */
.anc-footer { background: var(--surface); border-top: 1px solid var(--border-light); margin-top: 64px; padding: 56px 0 24px; }
.anc-footer-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
    gap: 40px;
}
.anc-footer-brand-col { max-width: 380px; }
.anc-footer-about { color: var(--text-sec); font-size: .92rem; margin-top: 14px; }
.anc-footer-meta { list-style: none; padding: 0; margin: 14px 0 0; font-size: .88rem; color: var(--text-sec); display: grid; gap: 4px; }
.anc-footer-meta a { color: var(--text-sec); }
.anc-footer-meta a:hover { color: var(--primary-dark); }
.anc-footer-title { font-size: .92rem; letter-spacing: .02em; text-transform: uppercase; color: var(--text); margin-bottom: 14px; }
.anc-footer-menu, .anc-legal-menu { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.anc-footer-menu a, .anc-legal-menu a { color: var(--text-sec); font-size: .92rem; }
.anc-footer-menu a:hover, .anc-legal-menu a:hover { color: var(--primary-dark); }

.anc-newsletter { display: flex; gap: 8px; margin-top: 6px; }
.anc-newsletter input[type="email"] {
    flex: 1; padding: 11px 12px; border: 1px solid var(--border);
    border-radius: var(--radius-btn); background: var(--surface); font-size: .9rem;
}
.anc-newsletter input[type="email"]:focus { outline: 2px solid var(--primary-light); border-color: var(--primary); }
.anc-footer-news-text { font-size: .88rem; color: var(--text-sec); margin-bottom: 12px; }
.anc-socials { list-style: none; padding: 0; margin: 18px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }
.anc-socials a {
    display: inline-block; padding: 6px 12px; border: 1px solid var(--border);
    border-radius: var(--radius-pill); font-size: .82rem; color: var(--text-sec);
}
.anc-socials a:hover { border-color: var(--primary); color: var(--primary-dark); background: var(--primary-ghost); }

.anc-footer-bottom {
    display: flex; align-items: center; justify-content: space-between;
    padding-top: 24px; margin-top: 40px;
    border-top: 1px solid var(--border-light);
    font-size: .82rem; color: var(--text-muted);
}
.anc-footer-legal .anc-legal-menu { display: flex; gap: 18px; }

/* ---------- Hero ---------- */
.anc-hero { padding: 56px 0 40px; }
.anc-hero-grid {
    display: grid; grid-template-columns: 1.05fr 1fr;
    gap: 56px; align-items: center;
}
.anc-eyebrow {
    display: inline-flex; align-items: center; gap: .4rem;
    padding: 6px 12px; background: var(--primary-light); color: var(--primary-dark);
    border-radius: var(--radius-pill); font-size: .78rem; font-weight: 600; letter-spacing: .02em;
    text-transform: uppercase; margin-bottom: 18px;
}
.anc-hero-title {
    font-family: 'Playfair Display', serif; font-weight: 700;
    font-size: clamp(2.2rem, 4.4vw, 3.6rem); letter-spacing: -0.025em;
    line-height: 1.05; margin-bottom: 18px;
}
.anc-hero-sub { font-size: 1.08rem; color: var(--text-sec); max-width: 520px; margin-bottom: 28px; }
.anc-hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 28px; }
.anc-hero-trust {
    list-style: none; padding: 0; margin: 0;
    display: flex; gap: 22px; flex-wrap: wrap;
    color: var(--text-sec); font-size: .88rem;
}
.anc-hero-trust li { display: inline-flex; align-items: center; gap: 6px; }
.anc-hero-trust .anc-icon { color: var(--success); }

/* Hero mock visual */
.anc-hero-visual { position: relative; }
.anc-hero-mock {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: 16px; padding: 22px; box-shadow: var(--shadow-lg);
    position: relative;
}
.anc-hero-mock::before {
    content: ''; position: absolute; inset: -30px -20px; border-radius: 28px; z-index: -1;
    background: radial-gradient(60% 60% at 60% 40%, var(--primary-light), transparent 70%);
}
.anc-mock-row { display: flex; align-items: center; gap: 12px; }
.anc-mock-avatar {
    width: 38px; height: 38px; border-radius: 8px;
    background: var(--primary); color: #fff;
    display: grid; place-items: center; font-family: 'Playfair Display', serif; font-weight: 700;
}
.anc-mock-meta { flex: 1; line-height: 1.2; }
.anc-mock-meta strong { display: block; font-size: .92rem; }
.anc-mock-meta span { font-size: .78rem; color: var(--text-sec); }
.anc-mock-stats {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 18px 0;
}
.anc-mock-stats > div {
    background: var(--primary-ghost); border: 1px solid var(--border-light);
    border-radius: 10px; padding: 12px;
}
.anc-mock-stats span { font-size: .72rem; color: var(--text-sec); display: block; margin-bottom: 4px; }
.anc-mock-stats strong { font-size: 1.1rem; letter-spacing: -0.01em; }
.anc-mock-chart { background: var(--primary-ghost); border-radius: 10px; padding: 14px; margin-bottom: 16px; }
.anc-mock-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.anc-mock-list li { display: flex; align-items: center; gap: 10px; font-size: .88rem; color: var(--text-sec); }
.anc-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--primary); display: inline-block; }
.anc-dot-warn { background: var(--warn); }
.anc-dot-ok   { background: var(--success); }

/* ---------- Section heads ---------- */
.anc-section-head { margin-bottom: 32px; }
.anc-section-head-center { text-align: center; }
.anc-section-title { font-family: 'Playfair Display', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); }
.anc-section-sub { color: var(--text-sec); max-width: 640px; margin: 8px auto 0; }
.anc-section-head:not(.anc-section-head-center) .anc-section-sub { margin: 8px 0 0; }

/* ---------- Features ---------- */
.anc-features { padding: 32px 0; }
.anc-features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.anc-feature-card {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--radius-card); padding: 28px;
    transition: border-color .15s, transform .15s;
}
.anc-feature-card:hover { border-color: var(--primary); transform: translateY(-2px); }
.anc-feature-icon {
    width: 44px; height: 44px; border-radius: 10px;
    background: var(--primary-light); color: var(--primary-dark);
    display: grid; place-items: center; margin-bottom: 16px;
}
.anc-feature-title { font-size: 1.05rem; }
.anc-feature-text { color: var(--text-sec); margin: 0; font-size: .95rem; }

/* ---------- Plans / products grid ---------- */
.anc-plans { padding: 56px 0; }
ul.products, .anc-plans-grid {
    list-style: none; padding: 0; margin: 0;
    display: grid !important; gap: 22px;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    align-items: stretch;
}
/* Adattamento layout in base al numero di prodotti scelti dal backend
   La doppia classe alza la specificità sopra `ul.products` (0,0,1,1). */
.anc-plans-grid.anc-plans-grid--1 {
    grid-template-columns: minmax(280px, 460px) !important;
    justify-content: center;
    max-width: 460px;
    margin-left: auto;
    margin-right: auto;
}
.anc-plans-grid.anc-plans-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}
.anc-plans-grid.anc-plans-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.anc-plans-grid.anc-plans-grid--dynamic {
    grid-template-columns: repeat(var(--anc-grid-cols, 1), minmax(220px, 1fr));
}

/* ── Griglia prodotti pagina Negozio ──
   Flexbox a riga unica: flex-wrap:nowrap impedisce il capo accidentale.
   align-items:stretch (default) + height:auto sui li dà altezza uguale
   alla card più alta senza calcoli espliciti. ── */
.anc-shop-archive ul.products.anc-shop-plans-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 22px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}
.anc-shop-archive ul.products.anc-shop-plans-row > li.product {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    max-width: none !important;
    width: 0 !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    /* height:auto lascia che align-items:stretch imponga la stessa altezza a tutti */
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
}
@media (max-width: 640px) {
    .anc-shop-archive ul.products.anc-shop-plans-row {
        flex-direction: column !important;
    }
    .anc-shop-archive ul.products.anc-shop-plans-row > li.product {
        flex: none !important;
        width: 100% !important;
        height: auto !important;
    }
}
@media (max-width: 900px) {
    .anc-plans-grid.anc-plans-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .anc-plans-grid.anc-plans-grid--1,
    .anc-plans-grid.anc-plans-grid--2,
    .anc-plans-grid.anc-plans-grid--3 { grid-template-columns: 1fr; }
}
.anc-product-card, ul.products li.product {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--radius-card); overflow: hidden;
    display: flex; flex-direction: column;
    transition: border-color .15s, transform .15s, box-shadow .15s;
    height: 100%;
}
/* Override layout legacy Woo (float/width/margins) per mantenere card allineate in CSS Grid */
ul.products li.product {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    align-self: stretch;
}
.anc-product-card:hover, ul.products li.product:hover {
    border-color: var(--primary); transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}
.anc-product-thumb { position: relative; display: block; background: var(--surface-alt); aspect-ratio: 4/3; overflow: hidden; }
.anc-product-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.anc-product-card:hover .anc-product-thumb img { transform: scale(1.04); }
.anc-product-thumb .anc-badge { position: absolute; top: 12px; left: 12px; }
.anc-product-body { padding: 18px 20px 20px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.anc-product-cat { font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.anc-product-title { font-size: 1.1rem; margin: 0; font-family: 'DM Sans', sans-serif; letter-spacing: -0.015em; }
.anc-product-title a { color: var(--text); }
.anc-product-title a:hover { color: var(--primary-dark); }
.anc-product-desc { color: var(--text-sec); font-size: .9rem; margin: 0; }
.anc-product-foot {
    margin-top: auto; padding-top: 12px;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    border-top: 1px solid var(--border-light);
}
.anc-product-price { font-size: 1.05rem; font-weight: 700; color: var(--text); display: flex; align-items: baseline; gap: 4px; }
.anc-product-price .woocommerce-Price-amount { color: var(--text); }
.anc-product-price del { color: var(--text-muted); font-weight: 500; margin-right: 6px; }
.anc-product-price ins { text-decoration: none; }
.anc-product-price-period { font-size: .8rem; font-weight: 500; color: var(--text-sec); }
ul.products li.product .button, ul.products li.product .added_to_cart {
    background: var(--ancyllar-primary); color: #fff;
    padding: 8px 14px; border-radius: var(--radius-btn); font-size: .85rem; font-weight: 600;
    text-decoration: none; transition: background .15s;
}
ul.products li.product .button:hover, ul.products li.product .added_to_cart:hover { background: var(--ancyllar-primary-dark); }

/* ---------- Testimonials ---------- */
.anc-testimonials { padding: 56px 0; background: var(--surface-alt); border-top: 1px solid var(--border-light); border-bottom: 1px solid var(--border-light); }
.anc-testimonials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 20px; }
.anc-testimonial {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--radius-card); padding: 26px; margin: 0;
}
.anc-testimonial-stars { color: var(--warn); display: flex; gap: 2px; margin-bottom: 12px; }
.anc-testimonial-stars .anc-icon { fill: currentColor; }
.anc-testimonial blockquote {
    margin: 0 0 16px; font-size: 1.02rem; color: var(--text);
    font-family: 'Playfair Display', serif; letter-spacing: -0.01em; line-height: 1.45;
}
.anc-testimonial figcaption { display: flex; flex-direction: column; gap: 2px; font-size: .85rem; }
.anc-testimonial figcaption strong { color: var(--text); }
.anc-testimonial figcaption span { color: var(--text-sec); }

/* ---------- CTA section ---------- */
.anc-cta { padding: 56px 0 80px; }
.anc-cta-card {
    background: linear-gradient(135deg, var(--text) 0%, #3D3326 100%);
    color: #fff; border-radius: 20px; padding: 48px;
    display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap;
    position: relative; overflow: hidden;
}
.anc-cta-card::before {
    content: ''; position: absolute; right: -100px; top: -100px;
    width: 320px; height: 320px; border-radius: 50%;
    background: radial-gradient(closest-side, rgba(139,115,85,.5), transparent);
}
.anc-cta-title { color: #fff; font-family: 'Playfair Display', serif; margin-bottom: 4px; }
.anc-cta-sub { color: rgba(255,255,255,.78); margin: 0; max-width: 520px; }
.anc-cta-card .anc-btn-primary { background: #fff; color: var(--text); }
.anc-cta-card .anc-btn-primary:hover { background: var(--primary-light); color: var(--text); }

/* ---------- Generic page / blog ---------- */
.anc-page-grid { display: grid; grid-template-columns: 1fr 280px; gap: 40px; padding: 32px 0 64px; }
.anc-page-head { margin-bottom: 24px; }
.anc-page-title { font-family: 'Playfair Display', serif; }
.anc-page-desc { color: var(--text-sec); }
.anc-content { font-size: 1.02rem; line-height: 1.7; }
.anc-content h2, .anc-content h3 { margin-top: 1.6em; }
.anc-content blockquote {
    border-left: 3px solid var(--primary); margin: 1.5em 0; padding: .4em 1em;
    background: var(--primary-ghost); color: var(--text); border-radius: 0 8px 8px 0;
    font-family: 'Playfair Display', serif; font-style: italic;
}
.anc-content code { background: var(--surface-alt); padding: 2px 6px; border-radius: 4px; font-size: .92em; }
.anc-content pre { background: var(--text); color: #f5f1ea; padding: 16px; border-radius: 10px; overflow-x: auto; }
.anc-content img { border-radius: var(--radius-card); }
.anc-page-thumb { margin-bottom: 24px; border-radius: var(--radius-card); overflow: hidden; }
.anc-page-thumb img { width: 100%; }

.anc-posts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px,1fr)); gap: 20px; }
.anc-post-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); overflow: hidden; }
.anc-post-thumb { display: block; aspect-ratio: 16/10; overflow: hidden; }
.anc-post-thumb img { width: 100%; height: 100%; object-fit: cover; }
.anc-post-body { padding: 20px; }
.anc-post-meta { font-size: .82rem; color: var(--text-muted); margin-bottom: 6px; display: flex; gap: 8px; align-items: center; }
.anc-post-title { font-size: 1.15rem; margin-bottom: 8px; }
.anc-post-title a { color: var(--text); }
.anc-post-title a:hover { color: var(--primary-dark); }
.anc-post-excerpt { color: var(--text-sec); font-size: .92rem; margin-bottom: 12px; }
.anc-post-link { display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; font-weight: 600; color: var(--primary); }

.anc-pagination { margin-top: 40px; display: flex; justify-content: center; }
.anc-pagination .nav-links, .anc-pagination .page-numbers { display: flex; gap: 6px; flex-wrap: wrap; }
.anc-pagination .page-numbers {
    display: inline-grid; place-items: center; min-width: 38px; height: 38px;
    padding: 0 10px; border-radius: var(--radius-btn); border: 1px solid var(--border);
    background: var(--surface); color: var(--text-sec); font-weight: 600; font-size: .88rem;
}
.anc-pagination .page-numbers.current, .anc-pagination .page-numbers:hover { background: var(--primary); color: #fff; border-color: var(--primary); }

.anc-sidebar .widget { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); padding: 20px; margin-bottom: 18px; }
.anc-sidebar .widget-title { margin: 0 0 12px; font-size: .95rem; }
.anc-sidebar ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.anc-sidebar a { color: var(--text-sec); }
.anc-sidebar a:hover { color: var(--primary-dark); }

/* ---------- 404 ---------- */
.anc-404 { padding: 64px 0; }
.anc-404-card { max-width: 580px; margin: 0 auto; text-align: center; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); padding: 48px 32px; }
.anc-404-actions { display: flex; gap: 12px; justify-content: center; margin: 18px 0 24px; flex-wrap: wrap; }

/* ---------- Empty states ---------- */
.anc-empty { text-align: center; padding: 48px 24px; color: var(--text-sec); }
.anc-empty-mark { font-size: 48px; line-height: 1; color: var(--primary); margin-bottom: 8px; font-family: 'Playfair Display', serif; }

.anc-empty-cart { text-align: center; padding: 48px 24px; }
.anc-empty-cart-icon { width: 60px; height: 60px; border-radius: 50%; background: var(--primary-light); color: var(--primary-dark); display: grid; place-items: center; margin: 0 auto 16px; }

/* ---------- Breadcrumb ---------- */
.anc-breadcrumb { font-size: .85rem; color: var(--text-sec); padding: 16px 0 0; max-width: var(--shell-max); margin: 0 auto; padding-left: var(--shell-pad); padding-right: var(--shell-pad); display: none !important; }
.anc-breadcrumb a { color: var(--text-sec); }
.anc-breadcrumb a:hover { color: var(--primary-dark); }
.anc-bc-sep { color: var(--text-muted); margin: 0 8px; }

/* =========================================================================
 * WooCommerce overrides
 * ===================================================================== */

.anc-wc { padding: 0px 0 64px; }

/* Wrapper "content card" delle pagine prodotto (single + archivio):
   contiene il contenuto con margini interni e un fondo bianco/bordo. */
.anc-product-content {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    padding: 40px 48px;
    box-shadow: var(--shadow-sm);
}
.anc-product-content > .anc-acc-fullwidth {
    margin-left: 0; margin-right: 0;
    background: var(--primary-ghost);
    border-color: var(--border-light);
}

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    border-radius: var(--radius-card);
    border: 1px solid var(--border);
    background: var(--surface);
    padding: 14px 18px 14px 48px;
    margin: 0 0 20px;
    list-style: none;
    color: var(--text);
    border-left: 3px solid var(--primary);
    position: relative;
    font-size: .92rem;
    line-height: 1.5;
}
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    /* icona generica */
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
    content: '';
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}
.woocommerce-message {
    border-left-color: var(--success);
    background: var(--success-bg);
    color: #065F46;
    border-color: #A7F3D0;
}
.woocommerce-message::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23059669' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E");
}
.woocommerce-error {
    border-left-color: var(--danger);
    background: var(--danger-light);
    color: #7F1D1D;
    border-color: #FECACA;
}
.woocommerce-error::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23DC2626' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E");
}
.woocommerce-error li { margin: 0; padding: 0; }
.woocommerce-error li + li { margin-top: 4px; }
.woocommerce-info {
    border-left-color: var(--accent);
    background: #EFF6FF;
    color: #1E3A8A;
    border-color: #BFDBFE;
}
.woocommerce-info::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E");
}

/* Shop banner (template Plans) */
.anc-shop-banner {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    min-height: 260px;
    height: min(58vh, 400px);
    max-height: 400px;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
    margin-bottom: 0;
}
.anc-shop-banner::before {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.55) 100%);
    pointer-events: none;
}
.anc-shop-banner-inner { position: relative; z-index: 1; padding: 64px 0; max-width: 760px; }
.anc-shop-banner-eyebrow { color: #fff; opacity: .9; }
.anc-shop-banner-title {
    font-family: 'Playfair Display', serif;
    font-size: clamp(2rem, 4.2vw, 3.2rem);
    margin: 8px 0 0;
    color: #fff;
    line-height: 1.15;
}
.anc-shop-banner-sub {
    margin: 14px 0 0;
    font-size: 1.05rem;
    color: rgba(255,255,255,.92);
    max-width: 640px;
}
@media (max-width: 640px) {
    .anc-shop-banner {
        min-height: 220px;
        height: min(46vh, 400px);
        max-height: 400px;
    }
    .anc-shop-banner-inner { padding: 40px 0; }
}

/* Shop layout */
.anc-shop-header { margin-bottom: 28px; }
.anc-shop-grid { display: grid; grid-template-columns: 240px 1fr; gap: 32px; align-items: start; }
.anc-shop-sidebar .anc-card-flat { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); padding: 18px 20px; margin-bottom: 14px; }
.anc-shop-sidebar .widget-title { font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-sec); margin-bottom: 12px; }
.anc-shop-sidebar ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.anc-shop-sidebar a { color: var(--text); font-size: .92rem; }
.anc-shop-sidebar a:hover { color: var(--primary-dark); }

.anc-shop-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.woocommerce-result-count { color: var(--text-sec); font-size: .88rem; margin: 0; }
.woocommerce-ordering select { padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--radius-btn); background: var(--surface); font-family: inherit; }
.anc-shop-block + .anc-shop-block {
    margin-top: 42px;
    padding-top: 26px;
    border-top: 1px solid var(--border-light);
}
.anc-shop-block-head { margin-bottom: 18px; }
.anc-shop-block-title {
    margin: 0;
    font-family: 'Playfair Display', serif;
    font-size: clamp(1.3rem, 2.2vw, 1.8rem);
}
.anc-shop-block-sub {
    margin: 6px 0 0;
    color: var(--text-sec);
    font-size: .92rem;
}

/* Single product */
.anc-single-product { padding-top: 4px; }
.anc-product-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: start; }

/* Servizi: layout sempre orizzontale (icona compatta + summary), anche su mobile */
.anc-single-product.is-servizio .anc-product-grid {
    grid-template-columns: minmax(180px, 280px) 1fr;
    gap: 36px;
}

.anc-product-media .woocommerce-product-gallery { width: 100%; }
.anc-product-media .woocommerce-product-gallery__image img { border-radius: var(--radius-card); border: 1px solid var(--border); }
.anc-single-product.is-servizio .woocommerce-product-gallery__image img {
    border: 0; padding: 18px; background: var(--primary-ghost); border-radius: var(--radius-card);
}
.anc-single-product.is-servizio .flex-control-thumbs { display: none !important; }

/* Descrizioni sotto l'immagine — figlie dirette della grid, occupano tutta la larghezza */
.anc-product-descriptions { grid-column: 1 / -1; margin-top: 8px; display: grid; gap: 16px; }
.anc-product-short-desc {
    font-size: 1rem;
    line-height: 1.55;
    color: var(--text);
    font-weight: 500;
    padding: 16px 18px;
    background: var(--primary-ghost);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-card);
}
.anc-product-short-desc p:last-child { margin-bottom: 0; }
.anc-product-long-desc { font-size: .95rem; line-height: 1.7; color: var(--text-sec); }
.anc-product-long-desc h2, .anc-product-long-desc h3 { color: var(--text); margin: 1.4em 0 .5em; }
.anc-product-long-desc h2 { font-size: 1.2rem; }
.anc-product-long-desc h3 { font-size: 1.05rem; }
.anc-product-long-desc ul, .anc-product-long-desc ol { padding-left: 1.2em; }
.anc-product-long-desc li { margin-bottom: 4px; }
.anc-product-long-desc img { border-radius: var(--radius-card); margin: 1em 0; }
.anc-product-long-desc p:last-child { margin-bottom: 0; }
.anc-product-summary .product_title { font-family: 'Playfair Display', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); margin-bottom: 12px; }
.anc-product-summary .price { font-size: 1.6rem; font-weight: 700; color: var(--text); margin: 8px 0 16px; }
.anc-product-summary .price del { color: var(--text-muted); font-weight: 400; margin-right: 8px; }
.anc-product-summary .price ins { text-decoration: none; }
.anc-product-summary .woocommerce-product-details__short-description { color: var(--text-sec); margin-bottom: 24px; line-height: 1.6; }
.anc-product-summary .cart { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.anc-product-summary .single_add_to_cart_button {
    background: var(--ancyllar-primary); color: #fff; border: 0;
    padding: 14px 22px; border-radius: var(--radius-btn);
    font: 600 1rem 'DM Sans',sans-serif; cursor: pointer; transition: background .15s;
}
.anc-product-summary .single_add_to_cart_button:hover { background: var(--ancyllar-primary-dark); }
.product_meta { font-size: .85rem; color: var(--text-sec); padding-top: 16px; border-top: 1px solid var(--border-light); }
.product_meta > span { display: block; margin-bottom: 4px; }

.anc-product-trust { margin-top: 24px; padding: 18px 20px; background: var(--primary-ghost); border-radius: var(--radius-card); border: 1px solid var(--border-light); }
.anc-product-trust ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; font-size: .88rem; color: var(--text-sec); }
.anc-product-trust li { display: flex; align-items: center; gap: 6px; }
.anc-product-trust .anc-icon { color: var(--success); }

/* Tabs */
.woocommerce-tabs { margin-top: 48px; }
.woocommerce-tabs ul.tabs { list-style: none; padding: 0; margin: 0 0 20px; display: flex; gap: 4px; border-bottom: 1px solid var(--border-light); }
.woocommerce-tabs ul.tabs li { margin: 0; }
.woocommerce-tabs ul.tabs li a {
    display: inline-block; padding: 12px 16px;
    color: var(--text-sec); font-weight: 600; font-size: .92rem;
    border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--primary-dark); border-bottom-color: var(--primary); }
.woocommerce-tabs .panel h2 { margin-top: 0; }

.related, .upsells { margin-top: 56px; }
.related h2, .upsells h2 { font-family: 'Playfair Display', serif; }

/* Quantity */
.anc-qty, .quantity { display: inline-flex; align-items: center; border: 1px solid var(--border); border-radius: var(--radius-btn); overflow: hidden; background: var(--surface); }
.anc-qty .qty, .quantity .qty {
    width: 56px; text-align: center; padding: 10px 6px; border: 0;
    font: 600 .95rem 'DM Sans',sans-serif; background: transparent;
}
.anc-qty .qty:focus, .quantity .qty:focus { outline: none; }
.anc-qty-btn { width: 36px; height: 38px; background: transparent; border: 0; color: var(--text-sec); cursor: pointer; font-size: 1rem; }
.anc-qty-btn:hover { background: var(--primary-ghost); color: var(--text); }

/* Cart */
.anc-cart-table { width: 100%; border-collapse: collapse; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); overflow: hidden; }
.anc-cart-table th, .anc-cart-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--border-light); font-size: .92rem; }
.anc-cart-table th { background: var(--surface-alt); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-sec); }
.anc-cart-table .product-thumbnail img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.anc-cart-table .remove { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--text-muted); font-size: 18px; line-height: 1; text-decoration: none; }
.anc-cart-table .remove:hover { background: var(--danger-light); color: var(--danger); }
.anc-cart-table .anc-cart-group-row td {
    background: var(--primary-ghost);
    color: var(--text);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 700;
    border-top: 1px solid var(--border-light);
    border-bottom: 1px solid var(--border-light);
}
.anc-cart-table .anc-cart-group-row--main td { color: var(--primary-dark); }
.anc-cart-table .anc-cart-group-row--accessory td { color: var(--text-sec); }
/* La cella "Quantità" degli accessori è vuota (solo input hidden nel DOM) */
/* (sostituiti dalle regole albero più sotto) */
.anc-cart-table tr.actions td { background: var(--surface-alt); }
.anc-cart-table tr.actions { display: table-row; }
.anc-cart-table tr.actions .coupon { display: inline-flex; gap: 8px; align-items: center; margin-right: 14px; }
.anc-cart-table tr.actions .coupon input { padding: 9px 12px; border: 1px solid var(--border); border-radius: var(--radius-btn); font-size: .9rem; }

.anc-cart-layout { display: flex; flex-direction: column; gap: 32px; }
.anc-cart-form { width: 100%; }
.anc-cart-collaterals { width: 100%; }
.anc-cart-collaterals .cart_totals { max-width: 480px; margin-left: auto; }
.cart_totals.anc-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); padding: 22px 24px; }
.cart_totals h2 { font-family: 'DM Sans',sans-serif; font-size: 1.05rem; margin-top: 0; }

.cart_totals table { width: 100%; border-collapse: collapse; }
.cart_totals th, .cart_totals td { padding: 10px 0; border-bottom: 1px solid var(--border-light); font-size: .92rem; }
.cart_totals .order-total th, .cart_totals .order-total td { font-size: 1.1rem; font-weight: 700; padding-top: 14px; border-bottom: 0; }
.wc-proceed-to-checkout { margin-top: 16px; }
.wc-proceed-to-checkout .checkout-button {
    display: block; text-align: center; width: 100%;
    background: var(--ancyllar-primary); color: #fff; padding: 14px 22px;
    border-radius: var(--radius-btn); font: 600 1rem 'DM Sans',sans-serif;
    text-decoration: none; transition: background .15s;
}
.wc-proceed-to-checkout .checkout-button:hover { background: var(--ancyllar-primary-dark); color: #fff; }

/* Checkout — layout a piena larghezza del container */
.woocommerce-page .anc-page-article,
.woocommerce-checkout-page .anc-page-article { max-width: 100%; }

.woocommerce-checkout,
.woocommerce-checkout form.checkout { width: 100%; max-width: 100%; }

.anc-checkout-grid { display: grid; grid-template-columns: 1fr 420px; gap: 40px; align-items: start; width: 100%; }
.anc-checkout-main { min-width: 0; width: 100%; }

/* Checkout — larghezza estesa */
.woocommerce-checkout .woocommerce {
    max-width: 2060px;
    margin: 0 auto;
    padding: 0 20px;
}

/* billing/shipping block: singola colonna (prodotti virtuali = nessuno shipping) */
.anc-checkout-block { display: block; }
.anc-checkout-block .col-1 { display: block; width: 100%; }
.anc-checkout-block .col-2:empty { display: none; }

/* Override WooCommerce float layout inside il nostro grid */
.anc-checkout-block .col-1,
.anc-checkout-block .col-2 {
    float: none !important;
    width: 100% !important;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    padding: 24px;
    box-sizing: border-box;
}
.anc-checkout-block h3 { font-family: 'DM Sans',sans-serif; font-size: 1.05rem; margin-top: 0; }

/* Campi billing full-width */
.woocommerce-checkout .woocommerce-billing-fields { width: 100%; }
.woocommerce-checkout .form-row { float: none; width: 100% !important; box-sizing: border-box; }
.woocommerce-checkout .form-row.form-row-first,
.woocommerce-checkout .form-row.form-row-last { width: calc(50% - 8px) !important; float: left !important; }
.woocommerce-checkout .form-row.form-row-last { margin-left: 16px !important; }
.woocommerce-checkout .col2-set::after { content: ''; display: table; clear: both; }
.woocommerce form .form-row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.woocommerce form .form-row label { font-size: .85rem; font-weight: 600; color: var(--text-sec); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
    width: 100%; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-btn);
    background: var(--surface); font-family: inherit; font-size: .95rem; color: var(--text);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { outline: 2px solid var(--primary-light); border-color: var(--primary); }

.anc-checkout-aside .anc-card { padding: 24px; }
.anc-checkout-aside table.shop_table { width: 100%; border-collapse: collapse; }
.anc-checkout-aside table.shop_table th, .anc-checkout-aside table.shop_table td { padding: 10px 0; border-bottom: 1px solid var(--border-light); font-size: .92rem; }

/* Nota "IVA inclusa" sotto il totale */
.anc-iva-note {
    display: block;
    font-size: .75rem;
    font-weight: 400;
    color: var(--text-sec);
    margin-top: 3px;
}

/* Righe cadenza + rata nel riepilogo carrello e checkout */
.anc-rata-row th, .anc-rata-row td { color: var(--primary-dark); }
.anc-rata-cadenza { border-top: 2px solid var(--border) !important; }
.anc-rata-cadenza th, .anc-rata-cadenza td { padding-top: 14px !important; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-sec) !important; }
.anc-rata-importo th, .anc-rata-importo td { font-size: 1rem; }
.anc-rata-importo td strong { color: var(--ancyllar-primary); font-size: 1.1rem; }

/* Rata con/senza IVA */
.anc-rata-excl { display: block; color: var(--text-sec); font-size: .9rem; }
.anc-rata-excl small { font-size: .78rem; }
.anc-rata-incl { display: block; margin-top: 2px; }
.anc-rata-incl small { font-size: .78rem; color: var(--text-sec); font-weight: 400; }
#payment { background: transparent; padding-top: 18px; }
#payment ul.payment_methods { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
#payment ul.payment_methods li { background: var(--surface-alt); border: 1px solid var(--border-light); border-radius: var(--radius-btn); padding: 12px 14px; font-size: .92rem; }
#payment .place-order { margin-top: 16px; }
#payment .place-order .button {
    width: 100%; background: var(--ancyllar-primary); color: #fff; border: 0;
    padding: 14px; border-radius: var(--radius-btn); font: 600 1rem 'DM Sans',sans-serif; cursor: pointer;
}
#payment .place-order .button:hover { background: var(--ancyllar-primary-dark); }

/* ============================================================
   PAGINA THANK YOU / ORDINE RICEVUTO
   ============================================================ */

/* Heading "Ordine ricevuto" generato da WooCommerce */
.anc-thankyou + h1,
.woocommerce-order > h1,
body.woocommerce-order-received h1.entry-title,
body.woocommerce-order-received .entry-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-sec);
    letter-spacing: .02em;
    margin-bottom: 16px;
}

.anc-thankyou {
    padding: 8px 0 48px;
    max-width: 940px;
    margin: 0 auto;
}

/* Card principale di conferma */
.anc-thankyou-card {
    text-align: center;
    padding: 48px 56px 44px;
    margin-bottom: 28px;
}
.anc-thankyou-card .anc-page-title {
    font-size: 1.7rem;
    margin: 0 0 10px;
    color: var(--text);
}
.anc-thankyou-card > p {
    color: var(--text-sec);
    font-size: .95rem;
    margin: 0 0 24px;
    line-height: 1.6;
}

/* Icona check */
.anc-thankyou-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--success-bg);
    color: var(--success);
    display: grid;
    place-items: center;
    margin: 0 auto 20px;
    box-shadow: 0 0 0 8px var(--success-light);
}

/* Griglia dati ordine (Numero, Data, Email, Totale, Pagamento) */
.anc-thankyou-overview {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
    text-align: left;
}
.anc-thankyou-overview li {
    background: var(--bg);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-btn);
    padding: 12px 16px;
}
.anc-thankyou-overview li span {
    display: block;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-muted);
    margin-bottom: 5px;
    font-weight: 600;
}
.anc-thankyou-overview li strong {
    font-size: .92rem;
    color: var(--text);
    font-weight: 600;
    word-break: break-all;
}

/* ---- Sezione "Dettagli ordine" ---- */
.woocommerce-order-details,
.woocommerce-order-downloads,
.woocommerce-customer-details {
    margin-top: 0;
}

.woocommerce-order-details h2,
.woocommerce-order-downloads h2,
.woocommerce-customer-details h2 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--border-light);
    letter-spacing: .01em;
}

/* Tabella prodotti dell'ordine */
table.woocommerce-table--order-details,
table.shop_table.order_details {
    width: 100%;
    border-collapse: collapse;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    overflow: hidden;
    font-size: .9rem;
}

table.woocommerce-table--order-details thead tr,
table.shop_table.order_details thead tr {
    background: var(--surface-alt);
}

table.woocommerce-table--order-details th,
table.shop_table.order_details th {
    padding: 12px 16px;
    text-align: left;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-sec);
    font-weight: 600;
    border-bottom: 1px solid var(--border);
}

table.woocommerce-table--order-details td,
table.shop_table.order_details td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-light);
    color: var(--text);
    vertical-align: middle;
}

table.woocommerce-table--order-details tr:last-child td,
table.shop_table.order_details tr:last-child td {
    border-bottom: 0;
}

table.woocommerce-table--order-details td.product-name a,
table.shop_table.order_details td.product-name a {
    color: var(--text);
    text-decoration: none;
    font-weight: 500;
}
table.woocommerce-table--order-details td.product-name a:hover,
table.shop_table.order_details td.product-name a:hover {
    color: var(--primary);
}

/* Riga totale in fondo */
table.woocommerce-table--order-details tfoot tr,
table.shop_table.order_details tfoot tr {
    background: var(--primary-ghost);
}
table.woocommerce-table--order-details tfoot th,
table.woocommerce-table--order-details tfoot td,
table.shop_table.order_details tfoot th,
table.shop_table.order_details tfoot td {
    padding: 14px 16px;
    font-weight: 700;
    font-size: .95rem;
    border-top: 1px solid var(--border);
    border-bottom: 0;
}

/* Badge "incluso / gratuito" */
.anc-thankyou .woocommerce-Price-amount {
    white-space: nowrap;
}
.anc-order-upgrade-meta {
    display: grid;
    gap: 4px;
    margin-top: 8px;
    color: var(--anc-muted, #6b665f);
    font-size: .86rem;
    line-height: 1.45;
}
.anc-order-upgrade-meta strong {
    color: var(--anc-text, #211f1b);
}

/* Dettagli cliente sotto la tabella */
.woocommerce-customer-details address {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    padding: 20px 22px;
    font-style: normal;
    font-size: .9rem;
    line-height: 1.7;
    color: var(--text);
}

/* Responsive */
@media (max-width: 600px) {
    .anc-thankyou { padding: 0 0 32px; }
    .anc-thankyou-card { padding: 32px 20px; }
    .anc-thankyou-card .anc-page-title { font-size: 1.4rem; }
    .anc-thankyou-overview { grid-template-columns: 1fr 1fr; }
    table.woocommerce-table--order-details th,
    table.woocommerce-table--order-details td,
    table.shop_table.order_details th,
    table.shop_table.order_details td { padding: 10px 12px; font-size: .83rem; }
}

/* ============================================================
   MY ACCOUNT — Full-screen mode (rimuove header/footer/titolo)
   ============================================================ */

/* Nascondi solo il titolo della pagina nell'area account */
body.woocommerce-account .anc-page-head { display: none !important; }
body.woocommerce-account .anc-footer { display: none !important; }

/* Azzera i wrapper del contenuto account (NON header/footer che usano .anc-shell) */
body.woocommerce-account #content,
body.woocommerce-account .anc-site-content,
body.woocommerce-account .anc-site-content > .anc-shell,
body.woocommerce-account .anc-main,
body.woocommerce-account .anc-page,
body.woocommerce-account .anc-page-article,
body.woocommerce-account .anc-content,
body.woocommerce-account .woocommerce {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.woocommerce-account .anc-site-content > .anc-shell {
    max-width: none !important;
}

/* Background della pagina account: stesso “workspace” del layout a due colonne */
body.woocommerce-account {
    background: var(--db-workspace, #ebe3db) !important;
    overflow-x: clip;
}

/* Il contenitore root della dashboard si estende sotto header e topbar */
body.woocommerce-account .anc-dash-wrap {
    min-height: 0;
    min-height: calc(100svh - var(--anc-acc-chrome, 108px));
    height: calc(100vh - var(--anc-acc-chrome, 108px));
    height: calc(100dvh - var(--anc-acc-chrome, 108px));
    overflow: hidden !important;
}

/* La sidebar scorre internamente */
body.woocommerce-account .anc-dash-sidebar {
    height: 100% !important;
    max-height: 100%;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}

/* Area principale: il contenuto scorre nel canvas (come #wpbody-content) */
body.woocommerce-account .anc-dash-main {
    height: 100% !important;
    max-height: 100%;
    min-height: 0;
    overflow: hidden !important;
}
body.woocommerce-account .anc-dash-main__canvas {
    height: 100% !important;
    max-height: 100%;
    min-height: 0;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}

/* Su mobile il layout è verticale — scroll pagina intera */
@media (max-width: 768px) {
    body.woocommerce-account .anc-dash-wrap {
        height: auto !important;
        min-height: calc(100svh - var(--anc-acc-chrome, 108px));
        overflow: visible !important;
    }
    body.woocommerce-account .anc-dash-sidebar,
    body.woocommerce-account .anc-dash-main {
        height: auto !important;
        max-height: none !important;
        overflow-y: visible !important;
        overflow: visible !important;
    }
    body.woocommerce-account .anc-dash-main__canvas {
        height: auto !important;
        max-height: none !important;
        overflow-y: visible !important;
    }
}

/* ============================================================
   MY ACCOUNT — Dashboard "Quiet Luxury"
   ============================================================ */

/* ---------- Token di design ---------- */
:root {
    --db-bg:           #fff8f3;
    --db-surface:      #ffffff;
    --db-surface-low:  #faf2ec;
    --db-surface-mid:  #f4ece6;
    --db-surface-hi:   #eee7e0;
    --db-border:       rgba(208,196,190,.45);
    --db-text:         #1e1b17;
    --db-text-sec:     #4d4541;
    --db-outline:      #7e7570;
    --db-accent:       #369375;   /* mint – success */
    --db-accent-bg:    #9af4d1;
    --db-error:        #ba1a1a;
    --db-error-bg:     #ffdad6;
    --db-info-bg:      #e3e3de;
    --db-info-text:    #646561;
    --db-shadow:       0 8px 32px rgba(26,24,23,.06);
    --db-radius:       0.5rem;
    --db-radius-pill:  9999px;
    --db-sidebar-w:    240px;
    /* Area account: separazione “pannello / workspace” (ispirazione wp-admin, palette tema) */
    --db-sidebar-panel: #f3ebe4;
    --db-workspace:     #ebe3db;
    --db-nav-active-bar: #54957c;
    /* Altezza header+topbar tema sotto account (override da JS se serve) */
    --anc-acc-chrome: 108px;
}

/* ---------- Wrapper layout ---------- */
.woocommerce-account .woocommerce { padding: 0 !important; max-width: 100% !important; }
.woocommerce-account .entry-content,
.woocommerce-account .page-content { padding: 0; margin: 0; }

/* Contenitore principale: flex row che porta sidebar + contenuto */
.anc-dash-wrap {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    min-height: 100vh;
    min-height: 100dvh;
    width: 100% !important;
    max-width: 100vw;
    background: var(--db-workspace);
    box-sizing: border-box;
}

/* ---------- SIDEBAR ---------- */
/*
 * La sidebar usa una larghezza FISSA dichiarata con !important per resistere
 * a qualsiasi override dai reset dei container padre (.anc-shell, .anc-content ecc.)
 */
.anc-dash-sidebar {
    width: 220px !important;
    min-width: 220px !important;
    max-width: 220px !important;
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    background: var(--db-sidebar-panel);
    border-right: 1px solid rgba(170, 150, 138, 0.35);
    display: flex !important;
    flex-direction: column;
    z-index: 100;
    box-sizing: border-box;
}
.anc-dash-sidebar__inner {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 32px max(20px, env(safe-area-inset-right)) 24px max(20px, env(safe-area-inset-left));
    padding-top: max(32px, env(safe-area-inset-top));
    padding-bottom: max(24px, env(safe-area-inset-bottom));
    box-sizing: border-box;
    width: 100%;
}

/* Logo — fascia tipo intestazione menu wp-admin */
.anc-dash-logo {
    margin: 0 0 20px;
    padding-bottom: 20px;
    width: 100%;
    border-bottom: 1px solid var(--db-border);
}
.anc-dash-logo__text {
    font-family: 'Playfair Display', 'Noto Serif', Georgia, serif;
    font-size: 1.45rem;
    font-weight: 700;
    font-style: italic;
    color: var(--db-text);
    letter-spacing: -.02em;
    white-space: nowrap;
}

/* Nav */
.anc-dash-nav { flex-grow: 1; width: 100%; }
.anc-dash-nav .woocommerce-MyAccount-navigation {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0;
}
.anc-dash-nav .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
/* Il li è il contenitore del background: è sempre a piena larghezza */
.anc-dash-nav .woocommerce-MyAccount-navigation li {
    display: block;
    width: 100%;
    border-radius: 2px;
    transition: background .15s;
}
.anc-dash-nav .woocommerce-MyAccount-navigation li:hover {
    background: var(--db-surface-mid);
}
/* Voce attiva: barra sinistra + sfondo (come voce corrente nel menu wp-admin) */
.anc-dash-nav .woocommerce-MyAccount-navigation li.is-active {
    background: rgba(255, 255, 255, 0.62);
    box-shadow: inset 4px 0 0 var(--db-nav-active-bar);
}
@supports (background: color-mix(in srgb, white 50%, transparent)) {
    .anc-dash-nav .woocommerce-MyAccount-navigation li.is-active {
        background: color-mix(in srgb, var(--db-surface) 88%, transparent);
    }
}

/* Link: solo layout e testo, nessun background (gestito dal li) */
.anc-dash-nav .woocommerce-MyAccount-navigation a {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    padding: 9px 12px;
    color: var(--db-text-sec);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .01em;
    line-height: 1.35;
    text-decoration: none;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: break-word;
    width: 100%;
    box-sizing: border-box;
}
.anc-dash-nav .woocommerce-MyAccount-navigation a:hover {
    color: var(--db-text);
}
.anc-dash-nav .woocommerce-MyAccount-navigation li:hover:not(.is-active) {
    background: rgba(255, 255, 255, .48);
    box-shadow: inset 3px 0 0 rgba(84, 149, 124, .45);
}
.anc-dash-nav .woocommerce-MyAccount-navigation li:hover > a {
    color: var(--db-text);
}

/* Testo e icona bianchi sulla voce attiva */
.anc-dash-nav .woocommerce-MyAccount-navigation li.is-active > a,
.anc-dash-nav .woocommerce-MyAccount-navigation li.is-active > a::before {
    color: #54957c;
}

/* Icone Material Symbols tramite ::before */
.anc-dash-nav .woocommerce-MyAccount-navigation a::before {
    font-family: 'Material Symbols Outlined', sans-serif;
    font-size: 1.1rem;
    font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 20;
    line-height: 1.35;
    flex-shrink: 0;
    color: inherit;
    width: 20px;
    text-align: center;
}
.anc-dash-nav .woocommerce-MyAccount-navigation-link--dashboard a::before         { content: 'dashboard'; }
.anc-dash-nav .woocommerce-MyAccount-navigation-link--orders a::before            { content: 'receipt_long'; }
.anc-dash-nav .woocommerce-MyAccount-navigation-link--downloads a::before         { content: 'download'; }
.anc-dash-nav .woocommerce-MyAccount-navigation-link--subscript-manager a::before { content: 'verified'; }
.anc-dash-nav .woocommerce-MyAccount-navigation-link--edit-address a::before      { content: 'location_on'; }
.anc-dash-nav .woocommerce-MyAccount-navigation-link--payment-methods a::before   { content: 'credit_card'; }
.anc-dash-nav .woocommerce-MyAccount-navigation-link--edit-account a::before      { content: 'manage_accounts'; }
.anc-dash-nav .woocommerce-MyAccount-navigation-link--customer-logout a::before   { content: 'logout'; }

/* User block in fondo alla sidebar */
.anc-dash-user {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--db-border);
    display: flex;
    align-items: center;
    gap: 12px;
}
.anc-dash-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--db-surface-hi);
    border: 1px solid var(--db-border);
    display: grid;
    place-items: center;
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--db-text);
    flex-shrink: 0;
}
.anc-dash-user__info { min-width: 0; }
.anc-dash-user__info strong {
    display: block;
    font-size: .88rem;
    font-weight: 600;
    color: var(--db-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.anc-dash-user__info span {
    display: block;
    font-size: .75rem;
    color: var(--db-text-sec);
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* ---------- MAIN CONTENT (workspace + “sheet” contenuto) ---------- */
.anc-dash-main {
    flex: 1;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--db-workspace);
}

/* Gutter esterno come #wpbody — il foglio bianco sta dentro */
/* Topbar operativa: titolo sezione + profilo, stile backend */
.anc-dash-topbar {
    min-height: 76px;
    padding: 16px max(28px, env(safe-area-inset-right)) 16px max(28px, env(safe-area-inset-left));
    border-bottom: 1px solid rgba(170, 150, 138, 0.35);
    background: rgba(255, 255, 255, .62);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    box-sizing: border-box;
    flex-shrink: 0;
}
.anc-dash-topbar__meta { min-width: 0; }
.anc-dash-topbar__eyebrow {
    display: block;
    margin-bottom: 3px;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--db-text-sec);
}
.anc-dash-topbar__title {
    margin: 0;
    color: var(--db-text);
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: clamp(1.25rem, 2vw, 1.65rem);
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.15;
}
.anc-dash-topbar__account {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 7px 10px 7px 7px;
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius-pill);
    background: var(--db-surface);
    color: var(--db-text);
    box-shadow: 0 1px 2px rgba(26,24,23,.04);
}
.anc-dash-topbar__avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    background: var(--db-surface-mid);
    color: var(--db-text);
    font-size: .78rem;
    font-weight: 800;
}
.anc-dash-topbar__name {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .82rem;
    font-weight: 700;
}

.anc-dash-main__canvas {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 24px max(28px, env(safe-area-inset-right)) 32px max(28px, env(safe-area-inset-left));
    padding-top: max(24px, env(safe-area-inset-top));
    padding-bottom: max(32px, env(safe-area-inset-bottom));
    box-sizing: border-box;
}

.anc-dash-main__inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 40px 40px 48px;
    box-sizing: border-box;
    min-width: 0;
    background: var(--db-surface);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    box-shadow: var(--db-shadow);
}

/* WooCommerce usa questa classe sul contenitore: allinea al foglio interno */
.anc-dash-main__inner.woocommerce-MyAccount-content {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    background: var(--db-surface) !important;
    border: 1px solid var(--db-border) !important;
    border-radius: var(--db-radius) !important;
}

/* Media e blocchi larghi: mai overflow orizzontale della pagina */
.anc-dash-main__inner img,
.anc-dash-main__inner video,
.anc-dash-main__inner svg {
    max-width: 100%;
    height: auto;
}

/* Tabelle ordini / indirizzi: scroll orizzontale solo sul contenitore tabella */
.anc-dash-main__inner .woocommerce-orders-table__wrapper,
.anc-dash-main__inner .woocommerce-table--order-details-wrapper {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}
.anc-dash-main__inner table.shop_table {
    width: 100%;
    min-width: 720px;
    max-width: 100%;
    border-collapse: collapse;
    font-size: .88rem;
    background: var(--db-surface);
}
.anc-dash-main__inner table.shop_table th,
.anc-dash-main__inner table.shop_table td {
    padding: 13px 12px;
    border-bottom: 1px solid var(--db-border);
    vertical-align: middle;
}
.anc-dash-main__inner table.shop_table th {
    color: var(--db-text-sec);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-align: left;
    text-transform: uppercase;
}
.anc-dash-main__inner table.shop_table td:last-child,
.anc-dash-main__inner table.shop_table th:last-child {
    text-align: right;
}
.anc-dash-main__inner table.shop_table tbody tr:hover td {
    background: var(--db-surface-low);
}
.anc-dash-main__inner address,
.anc-dash-main__inner .woocommerce-Address {
    background: var(--db-surface-low);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    padding: 18px;
}
.anc-dash-main__inner .woocommerce-Address-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.anc-dash-main__inner .woocommerce-Address-title h3 {
    margin: 0;
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 1rem;
    letter-spacing: 0;
}
.anc-dash-main__inner .form-row {
    margin: 0 0 16px;
}
.anc-dash-main__inner label {
    display: inline-block;
    margin-bottom: 6px;
    color: var(--db-text-sec);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.anc-dash-main__inner input.input-text,
.anc-dash-main__inner input[type="text"],
.anc-dash-main__inner input[type="email"],
.anc-dash-main__inner input[type="tel"],
.anc-dash-main__inner input[type="password"],
.anc-dash-main__inner textarea,
.anc-dash-main__inner select {
    width: 100%;
    max-width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    background: var(--db-surface-low);
    color: var(--db-text);
    font: 500 .92rem/1.4 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    box-sizing: border-box;
}
.anc-dash-main__inner textarea {
    min-height: 120px;
    resize: vertical;
}
.anc-dash-main__inner input:focus,
.anc-dash-main__inner textarea:focus,
.anc-dash-main__inner select:focus {
    outline: 2px solid rgba(84,149,124,.22);
    border-color: var(--db-nav-active-bar);
    background: var(--db-surface);
}

/* ---------- WELCOME ---------- */
.anc-db-welcome { margin-bottom: 40px; }
.anc-db-welcome__title {
    font-family: 'Playfair Display', 'Noto Serif', Georgia, serif;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 700;
    color: var(--db-text);
    letter-spacing: -.02em;
    margin: 0 0 6px;
}
.anc-db-welcome__sub {
    font-size: .95rem;
    color: var(--db-text-sec);
    margin: 0;
}

/* ---------- STAT CARDS ---------- */
.anc-db-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}
.anc-db-stat {
    background: var(--db-surface);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: var(--db-shadow);
}
.anc-db-stat__label {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--db-text-sec);
}
.anc-db-stat__value {
    font-family: 'Playfair Display', 'Noto Serif', Georgia, serif;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--db-text);
    line-height: 1.15;
}
.anc-db-stat__value .woocommerce-Price-amount { font: inherit; }
.anc-db-stat__value .woocommerce-Price-currencySymbol { font: inherit; }
.anc-db-stat__trend {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .75rem;
    font-weight: 600;
}
.anc-db-stat__trend--up   { color: var(--db-accent); }
.anc-db-stat__trend--neutral { color: var(--db-text-sec); }
.anc-db-stat__trend--down { color: var(--db-error); }

/* ---------- CARD GENERICA ---------- */
.anc-db-card {
    background: var(--db-surface);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    padding: 32px 36px;
    box-shadow: var(--db-shadow);
    margin-bottom: 28px;
}
.anc-db-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    gap: 16px;
}
.anc-db-card__title {
    font-family: 'Playfair Display', 'Noto Serif', Georgia, serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--db-text);
    margin: 0;
    letter-spacing: -.01em;
}
.anc-db-card__link {
    font-size: .82rem;
    font-weight: 600;
    color: var(--db-text);
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}
.anc-db-card__link:hover { opacity: .7; }

/* ---------- TABELLA ORDINI ---------- */
.anc-db-orders-table-wrap { overflow-x: auto; }
.anc-db-orders-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .88rem;
}
.anc-db-orders-table thead tr { border-bottom: 1px solid var(--db-border); }
.anc-db-orders-table th {
    padding-bottom: 14px;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--db-text-sec);
    text-align: left;
}
.anc-db-orders-table tbody tr {
    border-bottom: 1px solid rgba(208,196,190,.28);
    transition: background .12s;
}
.anc-db-orders-table tbody tr:last-child { border-bottom: none; }
.anc-db-orders-table tbody tr:hover { background: var(--db-surface-low); }
.anc-db-orders-table td { padding: 18px 0; vertical-align: middle; }
.anc-db-orders-table__code a {
    font-weight: 700;
    color: var(--db-text);
    text-decoration: none;
}
.anc-db-orders-table__code a:hover { text-decoration: underline; }
.anc-db-orders-table__right { text-align: right; }
.anc-db-orders-table__total {
    font-family: 'Playfair Display', 'Noto Serif', Georgia, serif;
    font-size: 1rem;
    font-weight: 700;
    color: var(--db-text);
}
.anc-db-empty {
    color: var(--db-text-sec);
    font-size: .9rem;
    padding: 16px 0;
    margin: 0;
}

/* ---------- STATUS BADGES ---------- */
.anc-db-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: var(--db-radius-pill);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    line-height: 1.6;
}
.anc-db-badge--success { background: var(--db-accent-bg); color: #005235; }
.anc-db-badge--info    { background: var(--db-info-bg);   color: var(--db-info-text); }
.anc-db-badge--warn    { background: #fef3c7; color: #92400e; }
.anc-db-badge--error   { background: var(--db-error-bg);  color: var(--db-error); }
.anc-db-badge--neutral { background: var(--db-surface-hi); color: var(--db-text-sec); }

/* ---------- ACCESSO RAPIDO ---------- */
.anc-db-quick {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
    margin-top: 8px;
}
.anc-db-quick-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 20px;
    background: var(--db-surface);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    box-shadow: var(--db-shadow);
    color: var(--db-text);
    font-size: .88rem;
    font-weight: 600;
    text-decoration: none;
    transition: background .15s, box-shadow .15s;
}
.anc-db-quick-item:hover {
    background: var(--db-surface-low);
    box-shadow: 0 12px 28px rgba(26,24,23,.09);
    color: var(--db-text);
}
.anc-db-quick-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--db-surface-mid);
    display: grid;
    place-items: center;
    flex-shrink: 0;
    color: var(--db-text);
}

/* ---------- WooCommerce inner pages (dentro l'area content) ---------- */
.anc-dash-main__inner h2 {
    font-family: 'Playfair Display', 'Noto Serif', Georgia, serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--db-text);
    margin: 0 0 20px;
}
.anc-dash-main__inner .woocommerce-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .88rem;
    margin-bottom: 24px;
}
.anc-dash-main__inner .woocommerce-table th,
.anc-dash-main__inner .woocommerce-table td {
    padding: 12px 8px;
    border-bottom: 1px solid var(--db-border);
    text-align: left;
}
.anc-dash-main__inner .woocommerce-table th {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--db-text-sec);
}
.anc-dash-main__inner .woocommerce-table tbody tr:last-child td { border-bottom: none; }
.anc-dash-main__inner .woocommerce-button,
.anc-dash-main__inner .button {
    background: var(--db-text) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--db-radius) !important;
    padding: 10px 20px !important;
    font-size: .85rem !important;
    font-weight: 600 !important;
    letter-spacing: .02em !important;
    cursor: pointer;
    transition: opacity .15s !important;
}
.anc-dash-main__inner .woocommerce-button:hover,
.anc-dash-main__inner .button:hover { opacity: .82; }
.anc-dash-main__inner .woocommerce-Message,
.anc-dash-main__inner .woocommerce-info {
    background: var(--db-surface-low);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    padding: 14px 18px 14px 48px;
    color: var(--db-text-sec);
    font-size: .9rem;
    margin-bottom: 16px;
}

/* Form account: campi a tutta larghezza contenitore (evita overflow su stretti) */
.anc-dash-main__inner .woocommerce form .form-row input.input-text,
.anc-dash-main__inner .woocommerce form .form-row textarea,
.anc-dash-main__inner .woocommerce form .form-row select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.anc-dash-main__inner .woocommerce form .form-row .password-input {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* ---------- Woo Subscript endpoint ---------- */
.woocommerce-MyAccount-content .ws-page { display: grid; gap: 16px; }
.woocommerce-MyAccount-content .ws-heading {
    margin: 0;
    font-family: 'Playfair Display', serif;
    font-size: clamp(1.2rem, 2vw, 1.6rem);
    color: var(--db-text);
}
.woocommerce-MyAccount-content .ws-subheading { margin: 0; color: var(--db-text-sec); font-size: .9rem; }
.woocommerce-MyAccount-content .ws-alert {
    background: var(--db-surface-low);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    padding: 14px 16px;
    color: var(--db-text-sec);
}
.woocommerce-MyAccount-content .ws-card {
    background: var(--db-surface);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    padding: 20px 24px;
    box-shadow: var(--db-shadow);
}
.woocommerce-MyAccount-content .ws-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.woocommerce-MyAccount-content .ws-card-head h3 { margin: 0; font-size: 1rem; letter-spacing: -.01em; }
.woocommerce-MyAccount-content .ws-badge {
    display: inline-flex; align-items: center; padding: 4px 10px;
    border-radius: var(--db-radius-pill);
    background: var(--db-accent-bg); color: #005235;
    font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}
.woocommerce-MyAccount-content .ws-meta { margin: 0 0 12px; color: var(--db-text-sec); font-size: .88rem; }
.woocommerce-MyAccount-content .ws-label {
    display: block; margin: 10px 0 6px; font-size: .75rem;
    color: var(--db-text-sec); text-transform: uppercase; letter-spacing: .05em; font-weight: 700;
}
.woocommerce-MyAccount-content .ws-check { display: flex; align-items: center; gap: 8px; margin: 6px 0; font-size: .9rem; }
.woocommerce-MyAccount-content .ws-input {
    width: 100%; padding: 10px 12px;
    border: 1px solid var(--db-border); border-radius: var(--db-radius);
    background: var(--db-surface-low); font-size: .9rem; color: var(--db-text);
}
.woocommerce-MyAccount-content .ws-input:focus { outline: 2px solid rgba(54,147,117,.3); border-color: var(--db-accent); }
.woocommerce-MyAccount-content .ws-actions { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.woocommerce-MyAccount-content .ws-btn-primary {
    background: var(--db-text); color: #fff; border-color: var(--db-text); border-radius: var(--db-radius);
}
.woocommerce-MyAccount-content .ws-btn-primary:hover { opacity: .82; }
.woocommerce-MyAccount-content .ws-btn-ghost {
    background: transparent; color: var(--db-text);
    border: 1px solid var(--db-border); border-radius: var(--db-radius);
}
.woocommerce-MyAccount-content .ws-btn-ghost:hover { background: var(--db-surface-low); }

/* Endpoint abbonamenti: usa tutta l'area disponibile, non una card stretta centrata */
.woocommerce-MyAccount-content .anc-sub-page,
.woocommerce-MyAccount-content .ws-page {
    width: 100%;
    max-width: none;
}
.woocommerce-MyAccount-content .anc-sub-card,
.woocommerce-MyAccount-content .ws-card {
    width: 100%;
    max-width: none;
}
.woocommerce-MyAccount-content .anc-sub-page {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

/* ---------- RESPONSIVE ---------- */

/* Tablet landscape (< 1200px): leggera riduzione padding, sidebar invariata */
@media (max-width: 1200px) {
    .anc-dash-main__canvas {
        padding: 20px max(24px, env(safe-area-inset-right)) 28px max(24px, env(safe-area-inset-left));
        padding-top: max(20px, env(safe-area-inset-top));
    }
    .anc-dash-main__inner {
        padding: 36px 32px 44px !important;
    }
    .anc-db-stats { gap: 14px; }
}

/* Tablet portrait (< 1024px): 2 colonne stat, meno padding */
@media (max-width: 1024px) {
    .anc-db-stats { grid-template-columns: repeat(2, 1fr); }
    .anc-dash-main__canvas {
        padding: 18px max(20px, env(safe-area-inset-right)) 24px max(20px, env(safe-area-inset-left));
        padding-top: max(18px, env(safe-area-inset-top));
    }
    .anc-dash-main__inner {
        padding: 32px 28px 40px !important;
    }
}

/* Tablet piccolo / mobile landscape (< 768px): sidebar in cima */
@media (max-width: 768px) {
    .anc-dash-wrap { flex-direction: column !important; }

    /* Sovrascrive la larghezza fissa della sidebar */
    .anc-dash-sidebar {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: auto !important;
        position: static !important;
        border-right: none !important;
        border-bottom: 1px solid var(--db-border);
        overflow-x: auto;
        overflow-y: visible;
    }
    .anc-dash-sidebar__inner {
        flex-direction: row;
        align-items: center;
        padding: max(14px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
        gap: 16px;
        min-height: auto;
        flex-wrap: wrap;
    }
    .anc-dash-logo {
        margin: 0;
        padding-bottom: 0;
        border-bottom: none;
        flex-shrink: 0;
    }

    /* Nav orizzontale scrollabile */
    .anc-dash-nav {
        flex: 1 1 100%;
        min-width: 0;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        scrollbar-color: rgba(84,149,124,.45) transparent;
    }
    .anc-dash-nav::-webkit-scrollbar { height: 6px; }
    .anc-dash-nav::-webkit-scrollbar-thumb {
        background: rgba(84,149,124,.45);
        border-radius: 999px;
    }
    .anc-dash-nav .woocommerce-MyAccount-navigation ul {
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 4px;
        width: max-content;
        min-width: 100%;
    }
    .anc-dash-nav .woocommerce-MyAccount-navigation li {
        flex: 0 0 auto;
    }
    .anc-dash-nav .woocommerce-MyAccount-navigation a {
        padding: 10px 14px;
        min-height: 44px;
        align-items: center;
        font-size: .78rem;
        white-space: nowrap;
        gap: 6px;
    }
    .anc-dash-nav .woocommerce-MyAccount-navigation a::before {
        font-size: .95rem;
        width: 16px;
    }

    /* Voce attiva in nav orizzontale: enfasi sul bordo inferiore (più leggibile) */
    .anc-dash-nav .woocommerce-MyAccount-navigation li.is-active {
        box-shadow: inset 0 -3px 0 var(--db-nav-active-bar);
    }
    .anc-dash-nav .woocommerce-MyAccount-navigation li:hover:not(.is-active) {
        box-shadow: inset 0 -3px 0 rgba(84, 149, 124, .35);
    }

    /* Profilo utente: nascosto su mobile (visibile solo su desktop) */
    .anc-dash-user { display: none; }

    .anc-dash-topbar {
        min-height: auto;
        padding: 14px max(14px, env(safe-area-inset-right)) 14px max(14px, env(safe-area-inset-left));
        align-items: flex-start;
    }
    .anc-dash-topbar__account {
        padding: 6px;
    }
    .anc-dash-topbar__name {
        display: none;
    }

    .anc-dash-main__canvas {
        padding: 16px max(14px, env(safe-area-inset-right)) 24px max(14px, env(safe-area-inset-left));
        padding-top: max(12px, env(safe-area-inset-top));
    }
    .anc-dash-main__inner {
        padding: 22px 18px 36px !important;
        border-radius: calc(var(--db-radius) - 1px);
    }

    /* Colonne WooCommerce (indirizzi, login/reg ecc.) in colonna su stretti */
    .anc-dash-main__inner .col2-set,
    .anc-dash-main__inner .u-columns {
        display: flex;
        flex-direction: column;
        gap: 1.25rem;
        width: 100%;
    }
    .anc-dash-main__inner .col2-set .col-1,
    .anc-dash-main__inner .col2-set .col-2,
    .anc-dash-main__inner .u-column1,
    .anc-dash-main__inner .u-column2 {
        float: none;
        width: 100% !important;
        max-width: 100% !important;
    }
    .anc-db-stats { grid-template-columns: 1fr 1fr; gap: 10px; }
    .anc-db-stat { padding: 18px 14px; }
    .anc-db-stat__value { font-size: 1.3rem; }
    .anc-db-card { padding: 18px; }
    .anc-db-card__head { margin-bottom: 16px; }
    .anc-db-quick { grid-template-columns: 1fr 1fr; gap: 10px; }
    .anc-db-quick-item { padding: 14px 16px; font-size: .83rem; }
    .anc-db-orders-table td { padding: 14px 0; font-size: .83rem; }
    .anc-dash-main__inner table.shop_table {
        min-width: 620px;
    }
}

/* Mobile (< 540px): 1 colonna, nasconde colonne tabella secondarie */
@media (max-width: 540px) {
    .anc-db-stats { grid-template-columns: 1fr 1fr; }
    .anc-db-quick { grid-template-columns: 1fr; }
    .anc-dash-nav .woocommerce-MyAccount-navigation a::before { display: none; }
    .anc-db-orders-table th:nth-child(2),
    .anc-db-orders-table td:nth-child(2) { display: none; }
    .anc-db-orders-table th:nth-child(3),
    .anc-db-orders-table td:nth-child(3) { display: none; }
    .anc-dash-topbar__eyebrow {
        font-size: .62rem;
    }
    .anc-dash-topbar__title {
        font-size: 1.15rem;
    }
    .anc-dash-logo__text {
        font-size: 1.15rem;
    }
    .anc-dash-nav .woocommerce-MyAccount-navigation a {
        padding: 9px 12px;
        min-height: 40px;
        font-size: .76rem;
    }
    .anc-dash-main__inner table.shop_table {
        min-width: 560px;
    }
    .anc-dash-main__inner .woocommerce-button,
    .anc-dash-main__inner .button {
        width: auto;
        max-width: 100%;
        white-space: normal;
        text-align: center;
    }
    .woocommerce-MyAccount-content .anc-sub-card__head,
    .woocommerce-MyAccount-content .ws-card-head {
        flex-direction: column;
        align-items: flex-start;
    }
    .woocommerce-MyAccount-content .anc-sub-card__code {
        max-width: 100%;
        overflow-wrap: anywhere;
    }
}

/* Mobile molto piccolo (< 380px): 1 colonna per le stat */
@media (max-width: 380px) {
    .anc-db-stats { grid-template-columns: 1fr; }
    .anc-dash-main__canvas {
        padding-left: max(12px, env(safe-area-inset-left));
        padding-right: max(12px, env(safe-area-inset-right));
    }
    .anc-dash-main__inner {
        padding: 18px 14px 32px !important;
    }
}

/* Paesaggio con poca altezza — evita altezza fissa eccessiva, meno chrome virtuale */
@media (max-height: 520px) and (orientation: landscape) {
    :root { --anc-acc-chrome: 72px; }
    body.woocommerce-account .anc-dash-wrap {
        min-height: auto;
        height: auto !important;
        overflow: visible !important;
    }
    body.woocommerce-account .anc-dash-sidebar,
    body.woocommerce-account .anc-dash-main {
        height: auto !important;
        max-height: none !important;
        overflow-y: visible !important;
    }
    body.woocommerce-account .anc-dash-main__canvas {
        height: auto !important;
        max-height: none !important;
        overflow-y: visible !important;
    }
    .anc-dash-main__inner {
        padding-top: 20px !important;
        padding-bottom: 28px !important;
    }
    .anc-dash-sidebar__inner {
        padding-top: max(10px, env(safe-area-inset-top));
        padding-bottom: max(10px, env(safe-area-inset-bottom));
    }
}

/* ============================================================
   GESTIONE ABBONAMENTI — anc-sub-* components
   ============================================================ */

/* Pagina wrapper */
.anc-sub-page { display: flex; flex-direction: column; gap: 24px; }

/* Header pagina */
.anc-sub-page__head { margin-bottom: 4px; }
.anc-sub-page__head--back { padding-top: 4px; }
.anc-sub-page__title {
    font-family: 'Playfair Display', 'Noto Serif', Georgia, serif;
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--db-text);
    margin: 8px 0 4px;
    letter-spacing: -.01em;
}
.anc-sub-page__sub { font-size: .88rem; color: var(--db-text-sec); margin: 0; }
.anc-sub-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .82rem;
    font-weight: 600;
    color: var(--db-text-sec);
    text-decoration: none;
    margin-bottom: 8px;
    transition: color .15s;
}
.anc-sub-back-link:hover { color: var(--db-text); }

/* Empty state */
.anc-sub-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 48px 24px;
    background: var(--db-surface);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    text-align: center;
    color: var(--db-text-sec);
}
.anc-sub-empty svg { opacity: .35; }
.anc-sub-empty p { margin: 0; font-size: .92rem; }

/* Card abbonamento */
.anc-sub-card {
    background: var(--db-surface);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    padding: 28px 30px;
    box-shadow: var(--db-shadow);
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.anc-sub-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.anc-sub-card__name {
    font-family: 'Playfair Display', serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--db-text);
    margin: 0 0 4px;
}
.anc-sub-card__code {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .78rem;
    margin: 0 0 6px;
    padding: 3px 10px;
    background: var(--db-bg, #fff8f3);
    border: 1px solid var(--db-border, #e8e2d8);
    border-radius: 20px;
    width: fit-content;
}
.anc-sub-card__code-label {
    color: var(--db-text-sec);
    font-weight: 400;
}
.anc-sub-card__code-value {
    color: var(--db-text);
    font-family: 'DM Mono', 'Courier New', monospace;
    letter-spacing: .04em;
    font-weight: 600;
}
.anc-sub-card__expiry {
    font-size: .84rem;
    color: var(--db-text-sec);
    margin: 0;
}
.anc-sub-card__expiry strong { color: var(--db-text); }
.anc-sub-card__renewal-cost {
    font-size: .84rem;
    color: var(--db-text-sec);
    margin: 4px 0 0;
}
.anc-sub-card__renewal-cost strong {
    color: var(--ancyllar-primary, #2563eb);
    font-weight: 600;
}
.anc-sub-renewal-detail {
    font-size: .78rem;
    color: var(--db-text-sec);
    opacity: .8;
}

/* Codice abbonamento nelle email / pagina ordine */
.anc-order-code {
    margin-top: 4px;
    font-size: .88rem;
}
.anc-order-code__value {
    font-family: 'DM Mono', 'Courier New', monospace;
    letter-spacing: .06em;
    background: #f5f0eb;
    padding: 1px 6px;
    border-radius: 4px;
}

/* Riga "Equivalente mensile" nel riepilogo carrello/checkout */
tr.anc-monthly-equiv th,
tr.anc-monthly-equiv td {
    color: var(--color-muted, #888);
    font-size: .88rem;
    padding-top: 4px;
    padding-bottom: 4px;
    border-top: 1px dashed var(--color-border, #e5e0d8);
}
tr.anc-monthly-equiv .anc-cycle-label {
    font-size: .78rem;
    opacity: .7;
    margin-left: 2px;
}

/* -----------------------------------------------------------------------
   Slot Pratiche – UI frontend (counter +/-)
   ----------------------------------------------------------------------- */

.anc-slot-pratiche {
    margin-top: 10px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.anc-slot-qty-wrap__label {
    font-size: .85rem;
    font-weight: 600;
    color: var(--text, #2a2a2a);
    white-space: nowrap;
    flex: 0 0 auto;
}
.anc-slot-pratiche .anc-pratiche-counter {
    flex: 0 0 auto;
}

/* Badge ciclo */
.anc-sub-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: var(--db-radius-pill, 9999px);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    flex-shrink: 0;
    white-space: nowrap;
}
.anc-sub-badge--active { background: var(--db-accent-bg); color: #005235; }
.anc-sub-badge--warn   { background: #fef3c7; color: #92400e; }

/* Riquadro informazioni fatturazione (rinnovo + prossima rata) */
.anc-sub-billing-info {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 14px;
    background: var(--db-surface-low, #faf7f4);
    border: 1px solid var(--db-border, #ede8e0);
    border-radius: 8px;
    margin-bottom: 14px;
}
.anc-sub-billing-info__item {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .84rem;
    color: var(--db-text-sec, #6b6460);
}
.anc-sub-billing-info__item svg {
    flex-shrink: 0;
    color: var(--db-accent, #8b7355);
}
.anc-sub-billing-info__label {
    white-space: nowrap;
}
.anc-sub-billing-info__value {
    color: var(--db-text, #2c2420);
    font-weight: 600;
}
.anc-sub-billing-info__period {
    font-size: .78rem;
    font-weight: 400;
    color: var(--db-text-sec, #6b6460);
    margin-left: 1px;
}
.anc-sub-billing-info__rata-note {
    font-size: .76rem;
    font-weight: 400;
    color: var(--db-text-sec, #6b6460);
    margin-left: 4px;
}
.anc-sub-billing-info__item--next-rata .anc-sub-billing-info__value {
    color: var(--db-accent, #8b7355);
}

/* Accessori attivi */
.anc-sub-section-label {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--db-text-sec);
    margin: 0 0 8px;
}
.anc-sub-acc-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.anc-sub-acc-list li {
    display: flex;
    align-items: baseline;
    gap: 7px;
    font-size: .84rem;
    color: var(--db-text);
    flex-wrap: wrap;
}
.anc-sub-acc-list svg { color: var(--db-accent); flex-shrink: 0; margin-top: 2px; }
.anc-sub-acc-list__name { font-weight: 500; }
.anc-sub-acc-list__option {
    font-size: .76rem;
    color: var(--db-text-sec);
    background: var(--db-surface-low);
    border: 1px solid var(--db-border);
    border-radius: 20px;
    padding: 1px 8px;
    line-height: 1.6;
    white-space: nowrap;
}

/* Azioni card */
.anc-sub-card__actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding-top: 4px;
    border-top: 1px solid var(--db-border);
}

/* Form rinnovo */
.anc-sub-renew-form {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    flex: 1;
}
.anc-sub-cycle-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.anc-sub-cycle-label {
    font-size: .8rem;
    font-weight: 600;
    color: var(--db-text-sec);
    white-space: nowrap;
}
.anc-sub-select {
    padding: 7px 12px;
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    background: var(--db-surface-low);
    font-size: .84rem;
    color: var(--db-text);
    cursor: pointer;
}
.anc-sub-select:focus { outline: 2px solid rgba(54,147,117,.3); border-color: var(--db-accent); }

/* Nota rinnovo include accessori */
.anc-sub-renew-note {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .8rem;
    color: var(--db-accent);
    margin: 0;
    width: 100%;
}
.anc-sub-renew-note svg { flex-shrink: 0; }

.anc-sub-product-upgrades {
    padding: 16px 0 2px;
    border-top: 1px solid var(--db-border);
}
.anc-sub-product-upgrade-list {
    display: grid;
    gap: 10px;
}
.anc-sub-product-upgrade {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    background: var(--db-surface-low);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
}
.anc-sub-product-upgrade__body {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.anc-sub-product-upgrade__body strong {
    color: var(--db-text);
    font-size: .92rem;
}
.anc-sub-product-upgrade__body span {
    color: var(--db-text-sec);
    font-size: .82rem;
}

.anc-product-upgrade-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: 22px;
    align-items: start;
}
.anc-product-upgrade-panel,
.anc-product-upgrade-summary {
    background: var(--db-surface);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius-lg);
    box-shadow: var(--db-shadow-soft);
}
.anc-product-upgrade-panel {
    padding: clamp(20px, 3vw, 32px);
}
.anc-product-upgrade-panel h3 {
    margin: 0 0 12px;
    color: var(--db-text);
    font-size: clamp(1.35rem, 2.3vw, 2rem);
    line-height: 1.12;
}
.anc-product-upgrade-desc {
    max-width: 760px;
    color: var(--db-text-sec);
    font-size: .95rem;
    line-height: 1.65;
}
.anc-product-upgrade-desc p {
    margin: 0 0 12px;
}
.anc-product-upgrade-accessories {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--db-border);
}
.anc-product-upgrade-accessory-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.anc-product-upgrade-accessory-list li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 13px 14px;
    background: var(--db-surface-low);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
}
.anc-product-upgrade-accessory-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: var(--db-accent);
    background: rgba(85, 152, 132, .12);
}
.anc-product-upgrade-accessory-list strong,
.anc-product-upgrade-accessory-list small {
    display: block;
}
.anc-product-upgrade-accessory-list strong {
    color: var(--db-text);
    font-size: .92rem;
    line-height: 1.35;
}
.anc-product-upgrade-accessory-list small {
    margin-top: 2px;
    color: var(--db-text-sec);
    font-size: .78rem;
}
.anc-product-upgrade-empty,
.anc-product-upgrade-note {
    color: var(--db-text-sec);
    font-size: .86rem;
    line-height: 1.55;
}
.anc-product-upgrade-summary {
    position: sticky;
    top: 24px;
    padding: 20px;
}
.anc-product-upgrade-form {
    margin-top: 16px;
}
.anc-product-upgrade-form .anc-sub-btn {
    width: 100%;
}

@media (max-width: 640px) {
    .anc-sub-product-upgrade {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
    .anc-sub-product-upgrade .anc-sub-btn {
        width: 100%;
    }
}

@media (max-width: 980px) {
    .anc-product-upgrade-grid {
        grid-template-columns: 1fr;
    }
    .anc-product-upgrade-summary {
        position: static;
    }
}

/* ============================================================
   MODAL RINNOVO ABBONAMENTO
   ============================================================ */
.anc-renew-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}
.anc-renew-modal[hidden] { display: none; }

.anc-renew-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
    backdrop-filter: blur(2px);
}
.anc-renew-modal__box {
    position: relative;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(0,0,0,.18);
    width: min(540px, 95vw);
    max-height: 90vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    animation: anc-modal-in .18s ease;
}
@keyframes anc-modal-in {
    from { opacity:0; transform:translateY(14px) scale(.97); }
    to   { opacity:1; transform:none; }
}
.anc-renew-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--db-outline, #e5e7eb);
}
.anc-renew-modal__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--db-text, #111827);
}
.anc-renew-modal__close {
    background: none;
    border: none;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    color: var(--db-text-sec, #6b7280);
    padding: 2px 6px;
    border-radius: 6px;
    transition: background .15s;
}
.anc-renew-modal__close:hover { background: #f3f4f6; }

.anc-renew-modal__body { padding: 20px 24px; flex: 1; }
.anc-renew-modal__foot {
    padding: 16px 24px 20px;
    border-top: 1px solid var(--db-outline, #e5e7eb);
}
.anc-renew-modal__form {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    align-items: center;
}

/* Pagina dedicata rinnovo (non modal) */
.anc-renew-standalone .anc-renew-page-flow {
    width: 100%;
    max-width: none;
}
.anc-renew-standalone .anc-renew-modal__form {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 4px 28px rgba(0,0,0,.08);
    border: 1px solid var(--db-outline, #e5e7eb);
    overflow: hidden;
}
.anc-renew-standalone .anc-renew-modal__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
    gap: 24px;
    align-items: start;
    padding: 28px;
}
.anc-renew-standalone .anc-renew-cycle-row,
.anc-renew-standalone .anc-renew-dates,
.anc-renew-standalone .anc-renew-acc-bundle {
    grid-column: 1;
    min-width: 0;
}
.anc-renew-standalone .anc-renew-summary {
    grid-column: 2;
    grid-row: 1 / span 3;
    position: sticky;
    top: 16px;
    min-width: 0;
    padding: 20px;
    background: var(--db-surface-low, #faf7f4);
    border: 1px solid var(--db-border, #e8e2d8);
    border-radius: var(--db-radius);
}
.anc-renew-standalone .anc-renew-page__actions {
    width: 100%;
    padding: 18px 28px;
}
.anc-renew-back { margin: 0 0 1rem; }
.anc-renew-back-link {
    text-decoration: none;
    color: var(--db-text-sec, #6b7280);
    font-weight: 600;
    font-size: .9rem;
}
.anc-renew-back-link:hover { color: var(--db-accent, #2563eb); }
.anc-renew-page__actions {
    justify-content: space-between !important;
    flex-wrap: wrap;
}
.anc-renew-cycle-row { margin-bottom: 20px; }
.anc-renew-cycle-label {
    display: block;
    font-size: .82rem;
    font-weight: 600;
    color: var(--db-text-sec, #6b7280);
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 8px;
}
.anc-renew-cycle-tabs {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.anc-renew-cycle-tab {
    padding: 6px 16px;
    border-radius: 999px;
    border: 1.5px solid var(--db-outline, #e5e7eb);
    background: #f9fafb;
    font-size: .85rem;
    font-weight: 500;
    cursor: pointer;
    color: var(--db-text, #111827);
    transition: background .15s, border-color .15s, color .15s;
}
.anc-renew-cycle-tab:hover { background: #e0e7ff; border-color: #c7d2fe; }
.anc-renew-cycle-tab.active {
    background: var(--ancyllar-primary, #2563eb);
    border-color: var(--ancyllar-primary, #2563eb);
    color: #fff;
}

/* Date nuovo abbonamento */
.anc-renew-dates {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #f8fafc;
    border: 1px solid var(--db-outline, #e5e7eb);
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 18px;
}
.anc-renew-date-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
}
.anc-renew-date-label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--db-text-sec, #6b7280);
}
.anc-renew-date-value {
    font-size: .95rem;
    font-weight: 700;
    color: var(--db-text, #111827);
}
.anc-renew-date-note {
    font-size: .75rem;
    color: var(--db-text-sec, #9ca3af);
}
.anc-renew-date-sep {
    font-size: 1.1rem;
    color: var(--db-text-sec, #9ca3af);
    padding: 0 4px;
    margin-top: 14px;
}

/* Tabella riepilogo */
.anc-renew-summary__title {
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--db-text-sec, #6b7280);
    margin: 0 0 10px;
}
.anc-renew-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
}
.anc-renew-table td {
    padding: 7px 0;
    font-size: .9rem;
    border-bottom: 1px solid #f3f4f6;
    color: var(--db-text, #111827);
}
.anc-renew-table td:last-child { text-align: right; font-weight: 500; }
.anc-renew-acc-name { color: var(--db-text-sec, #6b7280); font-size: .85rem !important; padding-left: 10px !important; }
.anc-renew-label-main,
.anc-renew-label-detail {
    display: block;
}
.anc-renew-label-main {
    color: var(--db-text, #111827);
    font-weight: 600;
}
.anc-renew-label-detail {
    margin-top: 2px;
    line-height: 1.35;
}
.anc-renew-total-row td {
    border-bottom: none;
    border-top: 2px solid var(--db-outline, #e5e7eb);
    padding-top: 10px;
    font-weight: 700 !important;
    font-size: .95rem !important;
}
.anc-renew-total { color: var(--ancyllar-primary, #2563eb) !important; }

/* Box rate */
.anc-renew-installments { margin-top: 12px; }
.anc-renew-inst-box {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 8px;
    padding: 10px 14px;
}
.anc-renew-inst-label { font-size: .82rem; color: #0369a1; flex: 1; }
.anc-renew-inst-amount { font-size: 1rem; font-weight: 700; color: #0369a1; }
.anc-renew-inst-note { font-size: .78rem; color: #0369a1; opacity: .75; }

@media (max-width: 1100px) {
    .anc-renew-standalone .anc-renew-modal__body {
        grid-template-columns: 1fr;
    }
    .anc-renew-standalone .anc-renew-cycle-row,
    .anc-renew-standalone .anc-renew-dates,
    .anc-renew-standalone .anc-renew-acc-bundle,
    .anc-renew-standalone .anc-renew-summary {
        grid-column: 1;
    }
    .anc-renew-standalone .anc-renew-summary {
        grid-row: auto;
        position: static;
    }
}

@media (max-width: 700px) {
    .anc-renew-standalone .anc-renew-modal__body {
        padding: 18px;
        gap: 18px;
    }
    .anc-renew-standalone .anc-renew-page__actions {
        padding: 16px 18px 18px;
        flex-direction: column-reverse;
        align-items: stretch;
    }
    .anc-renew-standalone .anc-renew-page__actions .anc-sub-btn {
        width: 100%;
    }
    .anc-renew-cycle-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }
    .anc-renew-cycle-tab {
        width: 100%;
        min-height: 42px;
        padding: 8px 10px;
        white-space: normal;
    }
    .anc-renew-dates {
        flex-direction: column;
        align-items: stretch;
    }
    .anc-renew-date-sep {
        margin: 0;
        padding: 0;
        transform: rotate(90deg);
        align-self: center;
    }
    .anc-renew-inst-box {
        flex-wrap: wrap;
    }
    .anc-renew-inst-label,
    .anc-renew-inst-amount,
    .anc-renew-inst-note {
        flex: 1 1 100%;
    }
    .anc-renew-table td {
        display: block;
        width: 100%;
        padding: 7px 0 2px;
        border-bottom: 0;
    }
    .anc-renew-table td:last-child {
        padding: 0 0 9px;
        text-align: left;
        border-bottom: 1px solid #f3f4f6;
    }
    .anc-renew-total-row td {
        border-top: 0;
    }
}

@media (max-width: 420px) {
    .anc-renew-cycle-tabs {
        grid-template-columns: 1fr;
    }
}

/* Rinnovo bloccato */
.anc-sub-renew-locked {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .84rem;
    color: var(--db-text-sec);
    background: var(--db-surface-low);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    padding: 9px 14px;
    flex: 1;
}
.anc-sub-renew-locked svg { flex-shrink: 0; color: var(--db-outline); }
.anc-sub-renew-locked strong { color: var(--db-text); }

/* Pulsanti */
.anc-sub-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 9px 20px;
    border-radius: var(--db-radius);
    font-size: .84rem;
    font-weight: 700;
    letter-spacing: .01em;
    cursor: pointer;
    text-decoration: none;
    transition: opacity .15s, background .15s;
    border: none;
    white-space: nowrap;
}
.anc-sub-btn--primary {
    background: var(--db-text);
    color: #fff;
}
.anc-sub-btn--primary:hover { opacity: .82; color: #fff; }
.anc-sub-btn--primary:disabled { opacity: .4; cursor: not-allowed; }
.anc-sub-btn--ghost {
    background: transparent;
    color: var(--db-text);
    border: 1px solid var(--db-border);
}
.anc-sub-btn--ghost:hover { background: var(--db-surface-low); color: var(--db-text); }

/* ---- Vista UPGRADE (accessori account) — stile simile alla pagina prodotto ---- */

/* Contenitore lista accessori upgrade: righe stile pagina prodotto */
.anc-upgrade-acc-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    list-style: none;
    padding: 0;
    margin: 0;
    border: 1px solid #e8e0d6;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

/* Riga accessorio: layout [cerchio] [info] [prezzo] */
.anc-upgrade-acc-list .anc-acc-card {
    display: block;
    border-bottom: 1px solid #e8e0d6;
    background: #fff;
    transition: background .12s;
    position: relative;
    overflow: hidden;
}
.anc-upgrade-acc-list .anc-acc-card:last-child { border-bottom: none; }
.anc-upgrade-acc-list .anc-acc-card:hover { background: #faf7f4; }
.anc-upgrade-acc-list .anc-acc-card.is-selected {
    background: #f5f0ea;
    border-left: 3px solid #6B5D4F;
}
.anc-upgrade-acc-list .anc-acc-card--upgrade { border-left: 3px solid #c8a97a; }
.anc-upgrade-acc-list .anc-acc-card.is-selected.anc-acc-card--upgrade { border-left-color: #6B5D4F; }

/* Checkbox nativo nascosto */
.anc-upgrade-acc-list .anc-acc-card__check { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; }

/* Riga interna: [cerchio-check] [label con info e prezzo] */
.anc-upgrade-acc-list .anc-acc-card__inner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px;
    cursor: pointer;
}

/* Cerchio indicatore selezione (come .anc-card-acc-icon ma interattivo) */
.anc-upgrade-acc-list .anc-acc-card__check-wrap {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid #c8b89a;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: border-color .15s, background .15s;
}
.anc-upgrade-acc-list .anc-acc-card.is-selected .anc-acc-card__check-wrap {
    border-color: #6B5D4F;
    background: #6B5D4F;
}

/* Icona check dentro il cerchio */
.anc-upgrade-acc-list .anc-acc-card__check-icon {
    width: 13px;
    height: 13px;
    color: #fff;
    opacity: 0;
    transition: opacity .15s;
    display: flex;
    align-items: center;
    justify-content: center;
}
.anc-upgrade-acc-list .anc-acc-card.is-selected .anc-acc-card__check-icon { opacity: 1; }

/* Label cliccabile: [info] [prezzo] */
.anc-upgrade-acc-list .anc-acc-card__body {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    cursor: pointer;
    min-width: 0;
}

/* Colonna sinistra: nome + stato corrente */
.anc-upgrade-acc-list .anc-acc-card__info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.anc-upgrade-acc-list .anc-acc-card__name {
    font-size: .9rem;
    font-weight: 600;
    color: #3a3028;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.anc-upgrade-acc-list .anc-acc-card__current-opt {
    font-size: .75rem;
    color: #8B7355;
    font-style: italic;
}

/* Colonna destra: prezzo + badge upgrade */
.anc-upgrade-acc-list .anc-acc-card__price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    flex-shrink: 0;
}
.anc-upgrade-acc-list .anc-acc-card__amount {
    font-family: 'Playfair Display', serif;
    font-size: .95rem;
    font-weight: 700;
    color: #3a3028;
    white-space: nowrap;
}
.anc-upgrade-acc-list .anc-acc-card__period {
    font-size: .68rem;
    color: #8B7355;
    white-space: nowrap;
}
.anc-upgrade-acc-list .anc-acc-card__amount--added {
    color: #2e7d32 !important;
    font-weight: 700;
}
.anc-upgrade-acc-list .anc-acc-card__upgrade-badge {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #c8a97a;
    background: #fdf3e3;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}

/* Pannello opzioni/qty espandibile — rientra sotto la riga */
.anc-upgrade-acc-list .anc-acc-options {
    display: none;
    padding: 12px 16px 14px 50px; /* indent = check-wrap + gap */
    border-top: 1px solid #e8e0d6;
    background: #faf7f4;
}
.anc-upgrade-acc-list .anc-acc-options.is-visible { display: block; }
.anc-upgrade-acc-list .anc-acc-options__label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #8B7355;
    margin: 0 0 8px;
}

/* Riga opzione radio (stesso stile pill della pagina prodotto) */
.anc-acc-option-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid #ddd5c8;
    background: #fff;
    cursor: pointer;
    margin-bottom: 6px;
    transition: border-color .15s, background .15s;
    font-size: .86rem;
}
.anc-acc-option-row:last-child { margin-bottom: 0; }
.anc-acc-option-row:hover { border-color: #6B5D4F; background: #f5f0ea; }
.anc-acc-option-row input[type="radio"] { accent-color: #6B5D4F; width: 15px; height: 15px; flex-shrink: 0; }
.anc-acc-option-row:has(input:checked) {
    border-color: #6B5D4F;
    background: #f5f0ea;
}
.anc-acc-option-row__label { flex: 1; color: #3a3028; }
.anc-acc-option-row__price {
    font-size: .85rem;
    font-weight: 700;
    color: #3a3028;
    white-space: nowrap;
}
.anc-acc-option-row__name { flex: 1; color: #3a3028; }

/* Riga quantità */
.anc-acc-qty-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 10px;
    flex-wrap: wrap;
}
.anc-acc-qty-row__label {
    font-size: .82rem;
    color: #6B5D4F;
    font-weight: 600;
    flex-shrink: 0;
}
.anc-acc-qty-row__controls {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1px solid #c8b89a;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
.anc-acc-qty-btn {
    width: 32px;
    height: 32px;
    background: #faf7f4;
    border: none;
    font-size: 1rem;
    line-height: 1;
    color: #3a3028;
    cursor: pointer;
    transition: background .12s;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.anc-acc-qty-btn:hover { background: #f0e8de; }
.anc-acc-qty-input {
    width: 46px;
    height: 32px;
    border: none;
    border-left: 1px solid #c8b89a;
    border-right: 1px solid #c8b89a;
    text-align: center;
    font-size: .88rem;
    font-weight: 700;
    color: #3a3028;
    background: #fff;
    -moz-appearance: textfield;
}
.anc-acc-qty-input::-webkit-inner-spin-button,
.anc-acc-qty-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.anc-acc-qty-row__total-label { font-size: .82rem; color: #8B7355; display: flex; align-items: center; gap: 6px; margin: 0; }
.anc-acc-qty-total { font-family: 'Playfair Display', serif; font-size: 1rem; color: #3a3028; }
.anc-acc-option-row--current { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 8px; background: #fdf3e3; border: 1px dashed #c8a97a; margin-bottom: 6px; cursor: default; font-size: .86rem; }
.anc-acc-option-row--current::before { display: none; }
.anc-acc-option-row__badge { font-size: .64rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #c8a97a; background: #fff3e0; border-radius: 20px; padding: 1px 7px; white-space: nowrap; }
.anc-acc-options__upgrade-hint { font-size: .72rem; color: #8B7355; font-style: italic; }

/* ---- Sezione "Già nel tuo piano" ---- */
.anc-plan-items { margin-top: 24px; }
.anc-plan-items__title {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #8B7355;
    margin: 0 0 10px;
}
.anc-plan-items__grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid #e8e0d6;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}
/* Card read-only: stessa riga di .anc-card-acc */
.anc-acc-card--active {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px;
    border-bottom: 1px solid #e8e0d6;
    background: #f6fff6;
    border-left: 3px solid #a3d9a5;
    border-radius: 0;
    box-shadow: none;
}
.anc-acc-card--active:last-child { border-bottom: none; }
.anc-acc-card__active-badge {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #2e7d32;
    background: #e8f5e9;
    padding: 2px 7px;
    border-radius: 99px;
    flex-shrink: 0;
    white-space: nowrap;
}

/* ---- Footer totale + bottone ---- */
.anc-acc-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 0 0;
    flex-wrap: wrap;
}
.anc-acc-total {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: .88rem;
    color: var(--db-text-sec);
}
.anc-acc-total strong {
    font-family: 'Playfair Display', serif;
    font-size: 1.2rem;
    color: var(--db-text);
}

/* ---- (legacy) Pratiche in card abbonamento — blocco HTML rimosso, classi tenute per compatibilità ---- */
.anc-sub-pratiche-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 10px 0 0;
    padding: 10px 14px;
    background: var(--primary-light);
    border: 1px solid var(--border);
    border-radius: var(--db-radius);
}
.anc-sub-pratiche-info .anc-sub-section-label {
    margin: 0;
    color: var(--primary-dark);
}
.anc-sub-pratiche-info__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 10px;
    background: var(--ancyllar-primary);
    color: #fff;
    border-radius: var(--radius-pill);
    font-size: .95rem;
    font-weight: 700;
    line-height: 1;
}

/* ---- Sezione pratiche aggiuntive (vista upgrade / add pratiche) ---- */
.anc-pratiche-upgrade-section {
    margin-top: 32px;
    border-top: 1px solid var(--db-border);
    padding-top: 24px;
}
.anc-pratiche-upgrade-section__head {
    margin-bottom: 18px;
}
.anc-pratiche-upgrade-section__title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: 'Playfair Display', serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--db-text);
    margin: 0 0 6px;
}
.anc-pratiche-upgrade-section__sub {
    font-size: .85rem;
    color: var(--db-text-sec);
    margin: 0;
}

/* ---------- Vista dedicata Aggiungi pratiche ---------- */
.anc-pratiche-view {
    display: grid;
    gap: 24px;
    max-width: 680px;
}
.anc-pratiche-view__summary {
    background: var(--db-surface, #fff);
    border: 1px solid var(--db-border, #e8e2d8);
    border-radius: 12px;
    padding: 20px 24px;
    display: grid;
    gap: 16px;
}
.anc-pratiche-view__summary-row {
    display: flex;
    align-items: center;
    gap: 12px;
}
.anc-pratiche-view__count {
    font-size: 1.5rem;
    font-family: 'Playfair Display', serif;
    color: var(--db-text);
}
.anc-pratiche-view__acc-summary { margin-top: 4px; }
.anc-pratiche-upgrade-form {
    background: var(--db-bg);
    border: 1px solid var(--db-border);
    border-radius: var(--db-radius);
    padding: 20px 24px;
}
.anc-pratiche-upgrade-form__row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 16px;
}
.anc-pratiche-upgrade-form__label {
    font-size: .85rem;
    font-weight: 600;
    color: var(--db-text-sec);
    min-width: 220px;
}
.anc-pratiche-upgrade-form__controls {
    display: flex;
    align-items: center;
    gap: 4px;
}
.anc-pratiche-upgrade-form__tier-hint {
    font-size: .78rem;
    color: var(--db-accent);
    font-weight: 600;
    margin: 0;
    padding: 3px 8px;
    border: 1px solid var(--db-accent);
    border-radius: 20px;
}
.anc-pratiche-upgrade-form__footer {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    border-top: 1px solid var(--db-border);
    padding-top: 14px;
}
.anc-pratiche-upgrade-form__note {
    font-size: .78rem;
    color: var(--db-text-sec);
    margin: 0;
    flex: 1;
    min-width: 200px;
}

/* Responsive */
@media (max-width: 640px) {
    .anc-sub-card { padding: 20px; }
    .anc-sub-card__actions { flex-direction: column; align-items: stretch; }
    .anc-sub-renew-form { flex-direction: column; align-items: stretch; }
    .anc-sub-cycle-row { flex-direction: column; align-items: flex-start; }
    .anc-acc-footer { flex-direction: column; align-items: stretch; text-align: center; }
    .anc-acc-total { justify-content: center; }
    .anc-pratiche-upgrade-form__row { flex-direction: column; align-items: flex-start; }
    .anc-pratiche-upgrade-form__footer { flex-direction: column; align-items: stretch; }
}

/* Auth (login/register) */
.anc-auth-grid { display: grid; gap: 24px; max-width: 540px; margin: 16px auto; }
.anc-auth-grid--two { grid-template-columns: 1fr 1fr; max-width: 980px; }
.anc-auth-form { display: flex; flex-direction: column; gap: 12px; }
.anc-auth-form label { font-size: .85rem; font-weight: 600; color: var(--text-sec); display: block; margin-bottom: 6px; }
.anc-auth-form input.input-text { width: 100%; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-btn); background: var(--surface); font-family: inherit; }
.anc-auth-form .lost_password { font-size: .85rem; }
.anc-auth-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.anc-auth-subtitle { font-size: .88rem; color: var(--text-sec); margin: 0 0 16px; }
.anc-auth-info { font-size: .83rem; color: var(--text-sec); margin: 4px 0 0; display: block; }
.anc-reg-row-half { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.anc-reg-row-half .form-row { margin: 0; }
.anc-btn-full { width: 100%; justify-content: center; text-align: center; }

/* CTA card registrazione (pagina login) */
.anc-auth-register-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.anc-auth-register-cta__icon { color: var(--primary, #4f46e5); background: var(--primary-light, #eef2ff); border-radius: 50%; padding: 14px; display: flex; }
.anc-auth-register-cta h2 { margin: 0; }
.anc-auth-register-cta__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.anc-auth-register-cta__list li { font-size: .88rem; color: var(--text-sec); padding-left: 20px; position: relative; }
.anc-auth-register-cta__list li::before { content: '✓'; position: absolute; left: 0; color: var(--primary, #4f46e5); font-weight: 700; }
.anc-auth-register-cta__btn { margin-top: auto; }

/* Pagina registrazione dedicata */
.anc-register-page { max-width: 560px; margin: 0 auto; padding: 24px 0; }
.anc-register-page__card { width: 100%; }
.anc-register-page__title { font-size: 1.6rem; margin: 0 0 6px; }
.anc-register-page__login-link { font-size: .88rem; color: var(--text-sec); margin-top: 16px; text-align: center; }
.anc-auth-notice {
    background: var(--primary-light, #eef2ff);
    border-left: 4px solid var(--primary, #4f46e5);
    border-radius: 0 var(--radius, 10px) var(--radius, 10px) 0;
    padding: 14px 18px;
    margin-bottom: 24px;
    font-size: .9rem;
    color: var(--text-sec, #374151);
    font-weight: 500;
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 680px) {
    .anc-auth-grid--two { grid-template-columns: 1fr; max-width: 540px; }
}

body.woocommerce-account .anc-auth-grid {
    width: min(980px, calc(100% - 32px));
    min-height: calc(100svh - var(--anc-acc-chrome, 108px));
    align-content: center;
    margin: 0 auto;
    padding: 32px 0;
}
body.woocommerce-account .anc-auth-grid .anc-card {
    border-color: var(--db-border);
    border-radius: var(--db-radius);
    box-shadow: var(--db-shadow);
}
body.woocommerce-account .anc-auth-grid h2 {
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 1.25rem;
    letter-spacing: 0;
}
body.woocommerce-account .anc-auth-notice {
    width: min(980px, calc(100% - 32px));
    margin: 24px auto 0;
}
@media (max-width: 680px) {
    body.woocommerce-account .anc-auth-grid {
        width: min(540px, calc(100% - 28px));
        min-height: auto;
        padding: 20px 0 32px;
    }
    body.woocommerce-account .anc-auth-actions {
        align-items: stretch;
    }
    body.woocommerce-account .anc-auth-actions .anc-btn {
        width: 100%;
        justify-content: center;
    }
}

/* Generic .anc-card */
.anc-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); padding: 24px; }

/* =========================================================================
 * Woo Subscript — config box (lista cadenze + accessori card)
 * ===================================================================== */

.anc-config { margin: 24px 0 8px; }
.anc-config-head { margin-bottom: 14px; }
.anc-config-title { font-size: 1.05rem; margin: 0 0 4px; font-family: 'DM Sans', sans-serif; letter-spacing: -0.01em; }
.anc-config-sub { color: var(--text-sec); font-size: .9rem; margin: 0; }

/* Cycle list — radio cards */
.anc-cycle-list { list-style: none; padding: 0; margin: 0 0 16px; display: grid; gap: 10px; }
.anc-cycle-card label {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 4px 18px;
    padding: 14px 18px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    cursor: pointer;
    transition: border-color .15s, background .15s, box-shadow .15s;
}
.anc-cycle-card label:hover { border-color: var(--primary); background: var(--primary-ghost); }
.anc-cycle-card input[type="radio"] {
    -webkit-appearance: none; appearance: none;
    width: 18px; height: 18px; min-width: 18px;
    border: 1.5px solid var(--border); border-radius: 50%;
    background: var(--surface); cursor: pointer;
    display: inline-grid; place-items: center; margin: 0;
    grid-row: 1 / span 2;
    align-self: center;
}
.anc-cycle-card input[type="radio"]:checked { border-color: var(--primary); }
.anc-cycle-card input[type="radio"]:checked::after {
    content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--primary);
}
.anc-cycle-card input[type="radio"]:checked ~ .anc-cycle-card-inner ~ *,
.anc-cycle-card label:has(input:checked) {
    border-color: var(--primary); background: var(--primary-ghost); box-shadow: 0 0 0 3px var(--primary-light);
}
.anc-cycle-card-inner { display: contents; }
.anc-cycle-name { font-weight: 600; color: var(--text); font-size: .98rem; grid-column: 2; grid-row: 1; }
.anc-cycle-price { color: var(--text); font-weight: 700; font-size: 1rem; white-space: nowrap; grid-column: 3; grid-row: 1; }
.anc-cycle-price small { font-weight: 500; color: var(--text-sec); margin-left: 4px; font-size: .78rem; }
.anc-cycle-disc {
    background: var(--success-light); color: var(--success);
    padding: 3px 9px; border-radius: var(--radius-pill);
    font-size: .72rem; font-weight: 700; letter-spacing: .02em;
    grid-column: 4; grid-row: 1;
}
.anc-cycle-monthly { color: var(--text-sec); font-size: .82rem; grid-column: 2 / -1; grid-row: 2; }

/* Riepilogo prezzo */
.anc-config-summary {
    display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
    padding: 16px 20px;
    background: var(--text); color: #fff;
    border-radius: var(--radius-card); margin: 14px 0 22px;
}
.anc-config-summary > div { display: flex; flex-direction: column; gap: 2px; }
.anc-config-summary-label { color: rgba(255,255,255,.65); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.anc-config-summary-price, .anc-config-summary-year { color: #fff; font-size: 1.2rem; font-weight: 700; letter-spacing: -0.01em; }
.anc-config-summary-price .woocommerce-Price-amount,
.anc-config-summary-year  .woocommerce-Price-amount { color: #fff; }

/* Accessories cards */
/* ============================================================
 * Service single-product page (categoria "servizi") — layout
 * a singola colonna che riproduce la pagina di esempio cliente.
 * ============================================================ */
.anc-service-page {
    max-width: 880px;
    margin: 0 auto;
    padding: 32px var(--shell-pad, 24px) 64px;
}
.anc-service-head {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 28px;
    margin-bottom: 36px;
}
.anc-service-thumb {
    width: 168px;
    height: 168px;
    background: var(--primary-ghost, #F4EFE7);
    border-radius: var(--radius-card, 14px);
    overflow: hidden;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.anc-service-thumb-img,
.anc-service-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 18px; box-sizing: border-box; }
.anc-service-title {
    font-family: 'Playfair Display', serif;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.1;
    margin: 0;
    color: var(--text);
    letter-spacing: -.01em;
}
.anc-service-form { display: flex; flex-direction: column; gap: 28px; margin: 0; }
.anc-service-form .anc-config { margin: 0; }
.anc-service-form .anc-config-summary { margin: 0; }
.anc-service-form .anc-acc-rows { margin: 0; }

/* CTA — bottone "Attiva abbonamento" full-width */
.anc-service-cta {
    display: block; width: 100%;
    padding: 18px 22px;
    border: 0; border-radius: var(--radius-btn, 12px);
    background: #8B5CF6;
    color: #fff;
    font: 700 1.05rem 'DM Sans', sans-serif;
    cursor: pointer;
    transition: background .15s, transform .15s, box-shadow .15s;
    letter-spacing: .01em;
}
.anc-service-cta:hover { background: #7C3AED; box-shadow: 0 6px 20px rgba(124,58,237,.35); }
.anc-service-cta:active { transform: translateY(1px); }

.anc-service-desc { margin-top: 32px; }

/* Recensioni — stesso look della sezione "Cosa dicono i nostri clienti"
   (homepage testimonials): banda full-bleed con surface-alt + bordi top/bottom,
   header centrato, card 280px+ in grid. La sezione esce dal wrapper .anc-shell
   esterno tramite un margin negativo che la stira fino ai bordi del viewport. */
.anc-service-reviews {
    padding: 56px 0;
    background: var(--surface-alt);
    border-top: 1px solid var(--border-light);
    border-bottom: 1px solid var(--border-light);
    margin: 56px 0 0;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    box-sizing: border-box;
}
/* Nasconde l'h2 di default di WooCommerce: usiamo il nostro titolo
   centrato in .anc-section-head già inserito nel template. */
.anc-service-reviews #reviews .woocommerce-Reviews-title { display: none; }
.anc-service-reviews #reviews { margin: 0; }
.anc-service-reviews #reviews ol.commentlist {
    list-style: none; padding: 0;
    margin: 0 0 32px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}
.anc-service-reviews #reviews ol.commentlist li {
    list-style: none;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    padding: 26px;
    margin: 0;
}
.anc-service-reviews #reviews .comment_container {
    display: flex; flex-direction: column; gap: 12px;
}
.anc-service-reviews #reviews .avatar { width: 44px; height: 44px; border-radius: 50%; }
.anc-service-reviews #reviews .star-rating {
    color: var(--warn, #f0b400);
    margin: 0 0 8px;
    letter-spacing: 2px;
}
.anc-service-reviews #reviews .description p {
    margin: 0 0 16px;
    font-family: 'Playfair Display', serif;
    font-size: 1.02rem;
    color: var(--text);
    letter-spacing: -0.01em;
    line-height: 1.45;
}
.anc-service-reviews #reviews .meta {
    display: flex; flex-direction: column; gap: 2px;
    font-size: .85rem; margin: 0; font-style: normal;
}
.anc-service-reviews #reviews .meta strong,
.anc-service-reviews #reviews .meta .woocommerce-review__author { color: var(--text); font-style: normal; }
.anc-service-reviews #reviews .meta .woocommerce-review__dash { display: none; }
.anc-service-reviews #reviews .meta time,
.anc-service-reviews #reviews .meta .woocommerce-review__published-date { color: var(--text-sec); }

/* Form di invio recensione — card sobria, larghezza limitata, centrata */
.anc-service-reviews #reviews #review_form_wrapper { max-width: 720px; margin: 0 auto; }
.anc-service-reviews #reviews #review_form #respond,
.anc-service-reviews #reviews #review_form .comment-respond {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    padding: 26px;
}
.anc-service-reviews #reviews #review_form .comment-reply-title {
    margin: 0 0 16px;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.05rem;
    color: var(--text);
}
.anc-service-reviews #reviews #review_form .comment-form { display: flex; flex-direction: column; gap: 12px; }
.anc-service-reviews #reviews #review_form .comment-form-rating label,
.anc-service-reviews #reviews #review_form .comment-form label {
    display: block; margin-bottom: 4px;
    font-weight: 600; color: var(--text-sec); font-size: .9rem;
}
.anc-service-reviews #reviews #review_form textarea,
.anc-service-reviews #reviews #review_form input[type="text"],
.anc-service-reviews #reviews #review_form input[type="email"],
.anc-service-reviews #reviews #review_form input[type="url"] {
    width: 100%; padding: 10px 12px;
    border: 1px solid var(--border); border-radius: var(--radius-btn);
    background: var(--surface); font-family: inherit; font-size: .95rem;
}
.anc-service-reviews #reviews #review_form .form-submit input,
.anc-service-reviews #reviews #review_form .form-submit button {
    background: var(--ancyllar-primary, var(--primary)); color: #fff; border: 0;
    padding: 12px 20px; border-radius: var(--radius-btn);
    font: 600 .95rem 'DM Sans', sans-serif; cursor: pointer;
}
.anc-service-reviews #reviews #review_form .form-submit input:hover,
.anc-service-reviews #reviews #review_form .form-submit button:hover {
    background: var(--ancyllar-primary-dark, var(--primary-dark));
}

@media (max-width: 640px) {
    .anc-service-page { padding: 16px 0 40px; }
    .anc-service-head { grid-template-columns: auto 1fr; gap: 16px; margin-bottom: 24px; }
    .anc-service-thumb { width: 100px; height: 100px; }
    .anc-service-thumb-img,
    .anc-service-thumb img { padding: 10px; }
    .anc-service-form { gap: 22px; }
    .anc-service-cta { padding: 16px 18px; font-size: 1rem; }
}

/* ── Accessori del piano (v2 righe nel form servizi): più compatti + responsive ── */
.anc-service-form .anc-acc-section.anc-acc-v2 {
    margin-top: 12px;
}
.anc-acc-section.anc-acc-v2 .anc-acc-head {
    margin-bottom: 8px;
}
.anc-acc-section.anc-acc-v2 .anc-config-title {
    font-size: 0.92rem;
    font-weight: 700;
    margin: 0 0 2px;
    line-height: 1.25;
}
.anc-acc-section.anc-acc-v2 .anc-config-sub {
    font-size: 0.78rem;
    line-height: 1.42;
    margin: 0;
    max-width: 58ch;
}
.anc-acc-section.anc-acc-rows.anc-acc-v2 .anc-acc-list {
    gap: 6px;
}
@media (max-width: 600px) {
    .anc-service-form .anc-acc-section.anc-acc-v2 { margin-top: 8px; }
    .anc-acc-section.anc-acc-v2 .anc-acc-head { margin-bottom: 6px; }
    .anc-acc-section.anc-acc-v2 .anc-config-title { font-size: 0.85rem; }
    .anc-acc-section.anc-acc-v2 .anc-config-sub {
        font-size: 0.72rem;
        line-height: 1.38;
        max-width: none;
    }
}

/* Accessori in righe (anc-acc-rows) — usato dal template servizi */
.anc-acc-rows .anc-acc-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 8px;
}
/* Layout grid: si adatta a seconda della presenza di icona, widget opzione e toggle.
   .anc-acc-body usa display:contents così name+option diventano grid item diretti. */

/* Default (legacy senza icona): nome | prezzo */
.anc-acc-rows .anc-acc-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "name price";
    align-items: center;
    column-gap: 12px;
    row-gap: 6px;
    padding: 10px 12px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: calc(var(--radius-card, 12px) - 2px);
    transition: border-color .15s, background .15s, box-shadow .15s;
}
/* + icona */
.anc-acc-rows .anc-acc-card:has(.anc-acc-thumb) {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    grid-template-areas: "thumb name price";
}
/* + widget opzione visibile (senza icona) */
.anc-acc-rows .anc-acc-card:has(.anc-acc-option:not([hidden])) {
    grid-template-columns: minmax(100px, 1fr) minmax(0, 1.25fr) auto;
    grid-template-areas: "name option price";
}
/* + icona + widget opzione visibile */
.anc-acc-rows .anc-acc-card:has(.anc-acc-thumb):has(.anc-acc-option:not([hidden])) {
    grid-template-columns: 44px minmax(100px, 1fr) minmax(0, 1.25fr) auto;
    grid-template-areas: "thumb name option price";
}
/* + toggle visibile (senza icona, senza opzione) */
.anc-acc-rows .anc-acc-card:has(.anc-acc-toggle:not([hidden])) {
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas: "name price toggle";
}
/* + icona + toggle visibile */
.anc-acc-rows .anc-acc-card:has(.anc-acc-thumb):has(.anc-acc-toggle:not([hidden])) {
    grid-template-columns: 44px minmax(0, 1fr) auto auto;
    grid-template-areas: "thumb name price toggle";
}
/* + widget opzione visibile + toggle visibile (senza icona) */
.anc-acc-rows .anc-acc-card:has(.anc-acc-option:not([hidden])):has(.anc-acc-toggle:not([hidden])) {
    grid-template-columns: minmax(100px, 1fr) minmax(0, 1.25fr) auto auto;
    grid-template-areas: "name option price toggle";
}
/* + icona + widget opzione visibile + toggle visibile (caso completo v2) */
.anc-acc-rows .anc-acc-card:has(.anc-acc-thumb):has(.anc-acc-option:not([hidden])):has(.anc-acc-toggle:not([hidden])) {
    grid-template-columns: 44px minmax(100px, 1fr) minmax(0, 1.25fr) auto auto;
    grid-template-areas: "thumb name option price toggle";
}
/* Mappa elementi a grid-areas */
.anc-acc-rows .anc-acc-body { display: contents; }
.anc-acc-rows .anc-acc-thumb  { grid-area: thumb; }
.anc-acc-rows .anc-acc-name   { grid-area: name; }
.anc-acc-rows .anc-acc-option { grid-area: option; }
.anc-acc-rows .anc-acc-options-stack {
    grid-area: option;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
    align-self: center;
}
.anc-acc-rows .anc-acc-options-stack .anc-acc-option { grid-area: auto; }
.anc-acc-rows .anc-acc-price  { grid-area: price; }
.anc-acc-rows .anc-acc-toggle { grid-area: toggle; }
.anc-acc-rows .anc-acc-card:hover { border-color: var(--primary); }
/* L'ordine conta: .is-selected DOPO .is-included così che vinca quando entrambe presenti. */
.anc-acc-rows .anc-acc-card.is-included { background: var(--primary-ghost); }
.anc-acc-rows .anc-acc-card.is-selected,
.anc-acc-rows .anc-acc-card.is-included.is-selected {
    border-color: var(--success, #2e7d32);
    background: var(--success-bg, #E8F4EA);
    box-shadow: 0 0 0 3px var(--success-light, #BBE5C2);
}
/* CRITICO: rispetta l'attributo HTML [hidden] anche sui figli con display custom.
   Senza questo, le regole display:inline-flex sui figli sovrascrivono il default
   del browser ([hidden] → display:none). */
.anc-acc-rows [hidden] { display: none !important; }

/* Icona accessorio */
.anc-acc-rows .anc-acc-thumb {
    width: 44px; height: 44px;
    background: #fff;
    border: 1px solid var(--border-light, var(--border));
    border-radius: var(--radius-card, 14px);
    display: grid; place-items: center;
    overflow: hidden;
    flex-shrink: 0;
}
.anc-acc-rows .anc-acc-thumb-img,
.anc-acc-rows .anc-acc-thumb img {
    width: 100%; height: 100%;
    object-fit: contain;
    padding: 6px;
    box-sizing: border-box;
}
.anc-acc-rows .anc-acc-thumb-fallback {
    font: 700 1.05rem 'DM Sans', sans-serif;
    color: var(--primary);
    text-transform: uppercase;
}

/* Nome accessorio: contenitore flex con testo (ellissi) + eventuale bottone "i" */
.anc-acc-rows .anc-acc-name {
    margin: 0;
    font-size: 0.92rem;
    font-family: 'DM Sans', sans-serif;
    font-weight: 700;
    color: var(--text);
    letter-spacing: -0.01em;
    line-height: 1.25;
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}
.anc-acc-rows .anc-acc-name-text {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Lista accessori: niente overflow hidden sulle righe così il tooltip fixed non viene “mangiato”
   dai contenitori (alcuni browser con grid/stacking comportano comunque clipping). */
.anc-acc-section.anc-acc-rows,
.anc-acc-rows .anc-acc-list,
.anc-acc-rows .anc-acc-list > li.anc-acc-card {
    overflow: visible;
}

/* Bottone "i" — appare se l'accessorio ha una descrizione in anagrafica */
.anc-acc-rows .anc-acc-info-wrap {
    position: relative;
    display: inline-flex;
    flex-shrink: 0;
    z-index: 2;
}
.anc-acc-rows .anc-acc-info-btn {
    width: 22px; height: 22px;
    padding: 0;
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 50%;
    color: var(--text-sec);
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}
.anc-acc-rows .anc-acc-info-btn:hover,
.anc-acc-rows .anc-acc-info-btn[aria-expanded="true"] {
    background: var(--primary-ghost);
    border-color: var(--primary);
    color: var(--primary);
}
.anc-acc-rows .anc-acc-info-btn .anc-icon { display: block; }

/* Popover descrizione — coordinate top/left impostate via JS (position:fixed) */
.anc-acc-rows .anc-acc-info-popover {
    z-index: 100050;
    width: max-content;
    min-width: 200px;
    max-width: min(320px, calc(100vw - 24px));
    padding: 12px 14px;
    background: var(--text, #1f2937);
    color: #fff;
    border-radius: 10px;
    font: 400 .875rem / 1.5 'DM Sans', sans-serif;
    letter-spacing: 0;
    white-space: pre-line;
    word-wrap: break-word;
    overflow-wrap: break-word;
    text-transform: none;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22);
    pointer-events: auto;
}
.anc-acc-rows .anc-acc-desc {
    margin: 0;
    font-size: .82rem; color: var(--text-sec);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Prezzo / badge "Incluso" */
.anc-acc-rows .anc-acc-price {
    display: flex; flex-direction: column; align-items: flex-end;
    line-height: 1.15; gap: 2px;
    text-align: right; min-width: 88px;
}
.anc-acc-rows .anc-acc-price strong { font-size: 0.9rem; font-weight: 700; color: var(--text); }
.anc-acc-rows .anc-acc-period { font-size: .72rem; color: var(--text-sec); }
.anc-acc-rows .anc-acc-price .anc-badge { margin-top: 4px; }

/* "Incluso" badge */
.anc-acc-rows .anc-acc-included-badge {
    display: inline-flex; align-items: center;
    padding: 3px 8px;
    background: var(--success-bg, #E8F4EA);
    color: var(--success, #2e7d32);
    border: 1px solid var(--success-light, #BBE5C2);
    border-radius: var(--radius-pill, 999px);
    font-size: .78rem; font-weight: 700; letter-spacing: .02em;
    text-transform: uppercase;
}
/* "+€X / cadenza" — extra dovuto alla scelta di un'opzione più costosa */
.anc-acc-rows .anc-acc-extra {
    font-size: .82rem; font-weight: 700; color: var(--primary-dark, #6F5B42);
    line-height: 1.2;
}
.anc-acc-rows .anc-acc-extra small { font-weight: 500; color: var(--text-sec); margin-left: 2px; }

/* Widget opzioni / quantità — riga nella terza colonna del grid */
.anc-acc-rows .anc-acc-option {
    margin: 0;
    display: flex; align-items: center; gap: 8px;
    flex-wrap: wrap; min-width: 0;
    justify-self: start;
}
.anc-acc-rows .anc-acc-option-label {
    font-size: .68rem; color: var(--text-sec); font-weight: 600;
    text-transform: uppercase; letter-spacing: .04em;
    white-space: nowrap;
    flex-shrink: 0;
}
.anc-renew-acc-v2 .anc-acc-option:not(.anc-acc-qty-wrap) .anc-acc-option-label {
    display: none;
}
.anc-product-upgrade-acc-v2 .anc-acc-option:not(.anc-acc-qty-wrap) .anc-acc-option-label {
    display: none;
}
.anc-acc-rows .anc-acc-option-select {
    padding: 5px 8px;
    border: 1px solid var(--border);
    border-radius: var(--radius-btn, 8px);
    background: var(--surface);
    font: 500 .8rem 'DM Sans', sans-serif;
    color: var(--text);
    cursor: pointer;
    flex: 1 1 auto;
    min-width: min(140px, 100%);
    max-width: 100%;
}
.anc-acc-rows .anc-acc-option-select:focus { outline: 2px solid var(--primary-light); border-color: var(--primary); }

/* Contatore quantità: assicurati che sia SEMPRE visibile */
.anc-acc-rows .anc-acc-qty-wrap {
    flex-wrap: nowrap;
}
.anc-acc-rows .anc-acc-qty-wrap .anc-pratiche-counter {
    flex-shrink: 0;
    height: 32px;
}
.anc-acc-rows .anc-acc-qty-wrap .anc-pratiche-btn {
    width: 28px; height: 32px;
    font-size: 1.1rem;
    color: var(--primary);
    flex-shrink: 0;
}
.anc-acc-rows .anc-acc-qty-wrap .anc-pratiche-qty-input {
    width: 48px; height: 32px;
    font-size: .85rem;
    flex-shrink: 0;
    min-width: 0;
}

/* Toggle button "Aggiungi" / "Aggiunto" */
.anc-acc-rows .anc-acc-toggle {
    white-space: nowrap;
    min-width: 108px;
    justify-content: center;
    display: inline-flex; align-items: center; gap: 6px;
}
.anc-acc-rows .anc-acc-toggle .anc-acc-toggle-add,
.anc-acc-rows .anc-acc-toggle .anc-acc-toggle-added {
    display: inline-flex; align-items: center; gap: 6px;
    white-space: nowrap;
}
.anc-acc-rows .anc-acc-toggle .anc-icon { flex-shrink: 0; }

/* Stato "Aggiunto" (verde) — applicato a is-selected */
.anc-acc-rows .anc-acc-card.is-selected .anc-acc-toggle-add { display: none; }
.anc-acc-rows .anc-acc-card.is-selected .anc-acc-toggle-added {
    display: inline-flex !important; align-items: center; gap: 6px;
}
.anc-acc-rows .anc-acc-card.is-selected .anc-acc-toggle {
    background: var(--success, #2e7d32);
    color: #fff;
    border-color: var(--success, #2e7d32);
    font-weight: 700;
}
.anc-acc-rows .anc-acc-card.is-selected .anc-acc-toggle:hover {
    background: var(--success-dark, #256d2b);
    border-color: var(--success-dark, #256d2b);
}

/* Negli accessori inclusi NON modificati il bottone toggle resta nascosto via [hidden].
   Quando l'utente cambia qty/option, il bottone si rivela in stato "Aggiungi"
   (gestito dal JS che rimuove l'attributo [hidden]). */

/* Non incluso + Acquistabile = No → grigio, nessuna interazione */
.anc-acc-rows .anc-acc-card.is-unavailable {
    opacity: .45;
    filter: grayscale(.65);
    pointer-events: none;
}

@media (max-width: 720px) {
    /* Card con icona (v2) — layout su due righe */
    .anc-acc-rows .anc-acc-card:has(.anc-acc-thumb) {
        grid-template-columns: 40px minmax(0, 1fr) auto;
        grid-template-areas:
            "thumb name   price"
            "thumb option toggle";
        column-gap: 10px;
        row-gap: 8px;
        padding: 10px 12px;
    }
    .anc-acc-rows .anc-acc-thumb { width: 40px; height: 40px; align-self: start; }
    .anc-acc-rows .anc-acc-option { justify-self: stretch; max-width: 100%; }
    .anc-acc-rows .anc-acc-toggle { min-width: min(100%, 108px); justify-self: stretch; }
    /* Quando manca il toggle, l'option occupa tutta la riga */
    .anc-acc-rows .anc-acc-card:has(.anc-acc-thumb):not(:has(.anc-acc-toggle:not([hidden]))) {
        grid-template-areas:
            "thumb name   price"
            "thumb option option";
    }
    /* Card senza icona (legacy) — layout su due righe senza colonna thumb */
    .anc-acc-rows .anc-acc-card:not(:has(.anc-acc-thumb)) {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "name   price"
            "option toggle";
        column-gap: 10px;
        row-gap: 8px;
        padding: 10px 12px;
    }
    .anc-acc-rows .anc-acc-card:not(:has(.anc-acc-thumb)):not(:has(.anc-acc-toggle:not([hidden]))) {
        grid-template-areas:
            "name   price"
            "option option";
    }
    .anc-acc-rows .anc-acc-price {
        min-width: 0;
        align-items: flex-end;
    }
}

@media (max-width: 420px) {
    .anc-acc-rows .anc-acc-card:has(.anc-acc-thumb):has(.anc-acc-option:not([hidden])) {
        grid-template-columns: 36px 1fr;
        grid-template-areas:
            "thumb name"
            "thumb price"
            "option option";
        row-gap: 6px;
        padding: 8px 10px;
    }
    .anc-acc-rows .anc-acc-card:has(.anc-acc-thumb):has(.anc-acc-option:not([hidden])):has(.anc-acc-toggle:not([hidden])) {
        grid-template-columns: 36px 1fr auto;
        grid-template-areas:
            "thumb name   toggle"
            "thumb price  toggle"
            "option option option";
    }
    .anc-acc-rows .anc-acc-card:has(.anc-acc-thumb):not(:has(.anc-acc-option:not([hidden]))):has(.anc-acc-toggle:not([hidden])) {
        grid-template-columns: 36px 1fr auto;
        grid-template-areas:
            "thumb name   toggle"
            "thumb price  price";
    }
    .anc-acc-rows .anc-acc-thumb { width: 36px; height: 36px; }
    .anc-acc-rows .anc-acc-name { font-size: 0.86rem; flex-wrap: wrap; }
    .anc-acc-rows .anc-acc-toggle {
        min-width: 0;
        width: 100%;
        max-width: 100%;
    }
    /* card con option: il bottone full width sotto */
    .anc-acc-rows .anc-acc-card:has(.anc-acc-option:not([hidden])):has(.anc-acc-toggle:not([hidden])) {
        grid-template-columns: 1fr;
        grid-template-areas:
            "name"
            "price"
            "option"
            "toggle";
    }
    .anc-acc-rows .anc-acc-card:has(.anc-acc-option:not([hidden])):has(.anc-acc-toggle:not([hidden])) .anc-acc-thumb {
        display: none;
    }
}

.anc-acc-section { margin-top: 28px; }
.anc-acc-fullwidth {
    margin: 40px 0 16px;
    padding: 32px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
}
.anc-acc-head { margin-bottom: 18px; }
.anc-acc-fullwidth .anc-config-title { font-family: 'Playfair Display', serif; font-size: 1.4rem; }
.anc-acc-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.anc-acc-grid .anc-acc-card {
    position: relative;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    overflow: hidden;
    display: flex; flex-direction: column;
    transition: border-color .15s, transform .15s, box-shadow .15s;
}
.anc-acc-grid .anc-acc-card:hover { border-color: var(--primary); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.anc-acc-grid .anc-acc-card.is-selected { border-color: var(--primary); background: var(--primary-ghost); box-shadow: 0 0 0 3px var(--primary-light); }
.anc-acc-grid .anc-acc-card.is-included { background: var(--primary-ghost); }
.anc-acc-grid .anc-acc-thumb { position: relative; aspect-ratio: 4/3; background: var(--surface-alt); overflow: hidden; }
.anc-acc-grid .anc-acc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.anc-acc-grid .anc-acc-thumb .anc-badge { position: absolute; top: 10px; left: 10px; }
.anc-acc-grid .anc-acc-body { padding: 14px 16px 16px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.anc-acc-grid .anc-acc-name { margin: 0; font-size: .98rem; font-family: 'DM Sans', sans-serif; letter-spacing: -0.01em; line-height: 1.25; }
.anc-acc-grid .anc-acc-desc { margin: 0; font-size: .82rem; color: var(--text-sec); }
.anc-acc-grid .anc-acc-foot { margin-top: auto; padding-top: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid var(--border-light); }
.anc-acc-grid .anc-acc-price { display: flex; flex-direction: column; line-height: 1.2; }
.anc-acc-grid .anc-acc-price strong { font-size: 1rem; color: var(--text); }
.anc-acc-grid .anc-acc-period { font-size: .72rem; color: var(--text-sec); }
.anc-acc-grid .anc-acc-toggle { white-space: nowrap; }
.anc-acc-grid .anc-acc-card.is-selected .anc-acc-toggle-add { display: none; }
.anc-acc-grid .anc-acc-card.is-selected .anc-acc-toggle-added { display: inline-flex !important; align-items: center; gap: 4px; }
.anc-acc-grid .anc-acc-card.is-selected .anc-acc-toggle { background: var(--success-bg); color: var(--success); border-color: var(--success-light); }
.anc-acc-grid .anc-acc-card.is-included .anc-acc-toggle { opacity: .6; pointer-events: none; }
.anc-acc-grid .anc-acc-card.is-included .anc-acc-toggle .anc-acc-toggle-add { display: none; }
.anc-acc-grid .anc-acc-card.is-included .anc-acc-toggle .anc-acc-toggle-added { display: inline-flex !important; align-items: center; gap: 4px; }

/* Sub list per accessori successivi */
.anc-sub-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.anc-sub-card label {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 16px; background: var(--surface);
    border: 1px solid var(--border); border-radius: var(--radius-card);
    cursor: pointer;
}
.anc-sub-card label:has(input:checked) { border-color: var(--primary); background: var(--primary-ghost); box-shadow: 0 0 0 3px var(--primary-light); }
.anc-sub-card input[type="radio"] { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border: 1.5px solid var(--border); border-radius: 50%; cursor: pointer; }
.anc-sub-card input[type="radio"]:checked { border-color: var(--primary); }
.anc-sub-card input[type="radio"]:checked::after { content: ''; display: block; width: 9px; height: 9px; border-radius: 50%; background: var(--primary); margin: 3.5px auto; }
.anc-sub-card-inner { display: flex; flex-direction: column; line-height: 1.2; }
.anc-sub-card small { color: var(--text-sec); font-size: .82rem; }

/* Hide qty input in single product (sold individually still shows .quantity wrapper sometimes) */
.anc-single-product .quantity { display: none !important; }
.anc-single-product form.cart .single_add_to_cart_button { width: 100%; padding: 16px 22px; }

/* Qty static in cart */
.anc-qty-static { display: inline-block; padding: 6px 12px; background: var(--surface-alt); border: 1px solid var(--border-light); border-radius: var(--radius-pill); font-weight: 600; color: var(--text); min-width: 42px; text-align: center; }

/* Loop card — plan features */
.anc-plan-features { list-style: none; padding: 0; margin: 4px 0 8px; display: grid; gap: 4px; font-size: .82rem; color: var(--text-sec); }
.anc-plan-features li { display: flex; align-items: flex-start; gap: 4px; }
.anc-plan-features li::before { content: '·'; color: var(--primary); font-weight: 700; margin-right: 2px; }
.anc-product-price-from { font-size: .78rem; color: var(--text-sec); font-weight: 500; margin-right: 4px; }

/* Loop card — accessori mini-galleria */
.anc-card-accessories {
    margin-top: 12px;
    padding: 8px 14px 14px;
    background: #fff;
    border-bottom: 1px solid var(--border);
}
.anc-card-acc-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.anc-card-acc {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid var(--border-light);
    font-size: .82rem; color: #6B5D4F;
}
.anc-card-acc:last-child { border-bottom: 0; }
.anc-card-acc.is-included { color: #6B5D4F; font-weight: 700; }
.anc-card-acc.is-not-included { color: #6B5D4F; font-weight: 400; }
.anc-card-acc img,
.anc-card-acc-icon { width: 28px; height: 28px; border-radius: 6px; object-fit: contain; flex-shrink: 0; }
.anc-card-acc-icon-fallback {
    width: 28px; height: 28px; border-radius: 6px; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--surface, #f9f5f0); border: 1px dashed var(--border-light);
    font-size: 14px; color: var(--text-muted, #9ca3af);
}
.anc-card-acc-name { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.anc-card-acc-status { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.anc-card-acc-status .anc-icon { stroke-width: 2.4; }
.anc-card-acc.is-included .anc-card-acc-status { color: var(--success, #2e7d32); }
.anc-card-acc.is-not-included .anc-card-acc-status { color: #d32f2f; }
.anc-card-acc.has-option .anc-card-acc-status { color: #6B5D4F; }
.anc-card-acc-option-value {
    display: inline-block;
    padding: 2px 10px;
    background: #F4EFE7;
    border: 1px solid var(--border-light);
    border-radius: var(--radius-pill, 999px);
    font-size: .78rem;
    font-weight: 600;
    color: #6B5D4F;
    white-space: nowrap;
}
.anc-card-acc-more {
    padding: 8px 0;
    font-size: .78rem; font-weight: 600; color: var(--primary-dark);
}

/* ── Sezione Pratiche (pagina prodotto frontend) ── */
.anc-pratiche-section {
    margin: 0 0 24px;
    padding: 18px 20px;
    background: var(--primary-ghost, rgba(79,70,229,.05));
    border: 1.5px solid var(--primary-light, #c7d2fe);
    border-radius: var(--radius-card, 10px);
}
.anc-pratiche-input-row {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}
/* Contatore numero pratiche (#anc_pratiche_qty): nascosto ma presente nel form per POST/JS */
.anc-pratiche-section > .anc-pratiche-input-row {
    display: none !important;
}
.anc-pratiche-section:not(:has(.anc-pratiche-tiers-wrap)) {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}
.anc-pratiche-counter {
    display: inline-flex;
    align-items: center;
    border: 1.5px solid var(--border);
    border-radius: var(--radius-btn, 8px);
    overflow: hidden;
    background: var(--surface);
}
.anc-pratiche-btn {
    width: 36px;
    height: 40px;
    background: none;
    border: none;
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    color: var(--primary);
    transition: background .15s;
}
.anc-pratiche-btn:hover { background: var(--primary-ghost); }
.anc-pratiche-qty-input {
    width: 64px;
    height: 40px;
    border: none;
    border-left: 1px solid var(--border);
    border-right: 1px solid var(--border);
    text-align: center;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
    background: var(--surface);
    -moz-appearance: textfield;
}
.anc-pratiche-qty-input::-webkit-inner-spin-button,
.anc-pratiche-qty-input::-webkit-outer-spin-button { -webkit-appearance: none; }

/* Tabella fasce sconto (collassabile) */
.anc-pratiche-tiers-wrap { margin-top: 16px; }
.anc-pratiche-tiers-wrap summary {
    cursor: pointer;
    font-size: .84rem;
    font-weight: 600;
    color: var(--primary);
    user-select: none;
    padding: 4px 0;
}
.anc-pratiche-tiers-wrap summary:hover { color: var(--primary-dark); }
.anc-pratiche-tiers-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
    font-size: .84rem;
}
.anc-pratiche-tiers-table th,
.anc-pratiche-tiers-table td {
    padding: 6px 10px;
    text-align: left;
    border-bottom: 1px solid var(--border-light);
}
.anc-pratiche-tiers-table th { font-weight: 600; color: var(--text-sec); }
.anc-pratiche-tiers-table tr.is-active td { background: var(--primary-ghost); font-weight: 700; color: var(--primary-dark); }
.anc-pratiche-tiers-table tr.is-active td:first-child { border-left: 3px solid var(--primary); }

/* =========================================================================
 * Responsive
 * ===================================================================== */
@media (max-width: 1100px) {
    .anc-hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .anc-features-grid { grid-template-columns: repeat(2, 1fr); }
    .anc-product-grid { grid-template-columns: 1fr; gap: 28px; }
    .anc-single-product.is-servizio .anc-product-grid {
        /* Servizi: resta orizzontale su tutti i viewport */
        grid-template-columns: minmax(140px, 220px) 1fr;
        gap: 24px;
    }
    .anc-shop-grid { grid-template-columns: 1fr; }
    .anc-checkout-grid { grid-template-columns: 1fr; }
    .anc-page-grid { grid-template-columns: 1fr; }
    .anc-account-grid { grid-template-columns: 1fr; }
    .anc-account-sidebar { position: static; }
    .anc-footer-grid { grid-template-columns: 1fr 1fr; }
    .anc-product-content { padding: 32px 28px; }
}

@media (max-width: 860px) {
    .anc-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--surface); border-bottom: 1px solid var(--border); padding: 18px var(--shell-pad); box-shadow: var(--shadow-md); }
    .anc-nav.is-open { display: block; }
    .anc-menu { flex-direction: column; align-items: stretch; gap: 0; }
    .anc-menu a { padding: 12px 14px; }
    .anc-menu .sub-menu { position: static; box-shadow: none; padding: 0 0 0 14px; opacity: 1; visibility: visible; transform: none; border: 0; }
    .anc-menu-toggle { display: inline-grid; }
    .anc-header-cta { display: none; }
    .anc-features-grid { grid-template-columns: 1fr; }
    .anc-checkout-block { grid-template-columns: 1fr; }
    .anc-footer-grid { grid-template-columns: 1fr; gap: 32px; }
    .anc-footer-bottom { flex-direction: column; gap: 12px; align-items: flex-start; }
    .anc-cta-card { padding: 32px; }
    .anc-topbar-meta { display: none; }
    /* Tabella carrello: nascondi colonna Prezzo su tablet (rimane Subtotale) */
    .anc-cart-table th.product-price,
    .anc-cart-table td.product-price { display: none; }
}

@media (max-width: 760px) {
    .anc-cycle-card label {
        grid-template-columns: auto 1fr auto;
        grid-template-rows: auto auto auto;
        row-gap: 4px;
        padding: 12px 14px;
    }
    .anc-cycle-card input[type="radio"] { grid-row: 1 / span 3; align-self: start; margin-top: 2px; }
    .anc-cycle-name    { grid-column: 2; grid-row: 1; }
    .anc-cycle-disc    { grid-column: 3; grid-row: 1; }
    .anc-cycle-price   { grid-column: 2 / 4; grid-row: 2; font-size: .95rem; }
    .anc-cycle-monthly { grid-column: 2 / 4; grid-row: 3; }
    .anc-config-summary { grid-template-columns: 1fr; gap: 8px; padding: 14px 16px; }
    .anc-acc-grid { grid-template-columns: repeat(auto-fill, minmax(180px,1fr)); gap: 12px; }
}

@media (max-width: 540px) {
    :root { --shell-pad: 18px; }
    .anc-hero { padding: 32px 0 28px; }
    .anc-hero-mock { padding: 18px; }
    .anc-mock-stats { grid-template-columns: 1fr 1fr; }
    /* Riepilogo ordine: full width su mobile */
    .anc-cart-collaterals .cart_totals { max-width: 100%; margin-left: 0; }
    /* ── Tabella carrello: layout card su mobile ── */
    .anc-cart-table { border-radius: 0; border-left: 0; border-right: 0; }
    .anc-cart-table thead { display: none; }
    /* Ogni riga diventa un blocco separato */
    .anc-cart-table tr { display: grid; grid-template-columns: 28px 52px 1fr; grid-template-rows: auto auto; align-items: center; padding: 12px 0; column-gap: 10px; row-gap: 0; }
    /* Rimuovi / thumbnail / nome nella prima riga */
    .anc-cart-table td.product-remove  { grid-column: 1; grid-row: 1 / span 2; align-self: center; padding: 0 0 0 10px; border: 0; }
    .anc-cart-table td.product-thumbnail { grid-column: 2; grid-row: 1 / span 2; padding: 0; border: 0; }
    .anc-cart-table td.product-name    { grid-column: 3; grid-row: 1; padding: 0 10px 4px; border: 0; font-size: .9rem; }
    /* Prezzo/quantità/subtotale in seconda riga */
    .anc-cart-table td.product-price   { display: none; } /* nascosto: visibile nel subtotale */
    .anc-cart-table td.product-quantity { grid-column: 3; grid-row: 2; padding: 0 10px 4px; border: 0; }
    .anc-cart-table td.product-subtotal { grid-column: 3; grid-row: 2; padding: 0 10px 4px; border: 0; text-align: right; }
    /* Riga quantità + subtotale sulla stessa riga */
    .anc-cart-table td.product-quantity,
    .anc-cart-table td.product-subtotal { display: inline-flex; align-items: center; gap: 6px; }
    .anc-cart-table td.product-quantity::before { content: attr(data-title) ": "; font-size: .75rem; color: var(--text-sec); font-weight: 600; }
    .anc-cart-table td.product-subtotal::before { content: attr(data-title) ": "; font-size: .75rem; color: var(--text-sec); font-weight: 600; }
    /* Riga azioni */
    .anc-cart-table tr.actions { display: block; padding: 12px 10px; }
    .anc-cart-table td.actions { display: block; padding: 0; border: 0; }
    /* Righe intestazione gruppi */
    .anc-cart-table .anc-cart-group-row { display: block; padding: 0; }
    .anc-cart-table .anc-cart-group-row td { display: block; padding: 8px 10px; border-bottom: 1px solid var(--border-light); }
    /* Tree su mobile: bordo sinistro visibile */
    .anc-cart-table tr.anc-cart-item--linked-accessory { border-left: 3px solid var(--primary); background: var(--surface-alt, #f8f6f3); }
    .anc-cart-table tr.anc-cart-item--linked-accessory td { border-left: none !important; }
    /* Accessorio senza thumbnail: griglia a 2 colonne (rimuovi + nome) */
    .anc-cart-table tr.anc-cart-item--linked-accessory { grid-template-columns: 28px 1fr; }
    .anc-cart-table tr.anc-cart-item--linked-accessory td.product-thumbnail { display: none; }
    .anc-cart-table tr.anc-cart-item--linked-accessory td.product-name { grid-column: 2; }
    .anc-cycle-card label { padding: 10px 12px; }
    .anc-acc-fullwidth { padding: 18px; }
    .anc-acc-fullwidth .anc-config-title { font-size: 1.2rem; }
    .anc-acc-grid { grid-template-columns: 1fr 1fr; }
    .anc-product-content { padding: 22px 18px; border-radius: var(--radius-btn); }
    .anc-single-product.is-servizio .anc-product-grid {
        grid-template-columns: 96px 1fr;
        gap: 16px;
    }
    .anc-single-product.is-servizio .anc-product-descriptions { grid-column: 1 / -1; margin-top: 18px; }
    .anc-product-short-desc { padding: 12px 14px; font-size: .95rem; }
    .anc-acc-body { padding: 12px 12px 14px; gap: 6px; }
    .anc-acc-name { font-size: .9rem; }
    .anc-acc-desc { display: none; }
    .anc-acc-foot { flex-direction: column; align-items: stretch; gap: 8px; }
    .anc-acc-toggle { width: 100%; justify-content: center; }
    .anc-features-grid { grid-template-columns: 1fr; gap: 12px; }
    .anc-feature-card { padding: 20px; }
    .anc-section-title { font-size: 1.5rem; }
    .anc-cta-card { padding: 24px; border-radius: 14px; }
    .anc-cta-title { font-size: 1.4rem; }
    .anc-shop-toolbar { flex-direction: column; align-items: stretch; }
    .woocommerce-ordering select { width: 100%; }
    .anc-product-grid { gap: 24px; }
    .anc-product-summary .product_title { font-size: 1.5rem; }
    .anc-product-summary .price { font-size: 1.3rem; }
    .anc-stats-grid { grid-template-columns: 1fr 1fr; }
    .anc-account-content, .woocommerce-MyAccount-content { padding: 18px; }
}

/* ============================================================
   BANNER ABBONAMENTO ATTIVO (pagina prodotto servizio)
   ============================================================ */
.anc-active-sub-notice {
    display: flex;
    align-items: center;
    gap: 20px;
    background: var(--surface-alt, #f0f4ff);
    border: 1.5px solid var(--primary, #4f46e5);
    border-radius: var(--radius-lg, 16px);
    padding: 24px 28px;
    margin: 24px 0;
}
.anc-active-sub-notice > svg,
.anc-active-sub-notice > .anc-icon {
    flex-shrink: 0;
    color: var(--primary, #4f46e5);
}
.anc-active-sub-notice-text {
    flex: 1;
}
.anc-active-sub-notice-text strong {
    display: block;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--primary-dark, #3730a3);
    margin-bottom: 4px;
}
.anc-active-sub-notice-text p {
    margin: 0;
    font-size: .9rem;
    color: var(--text-sec, #6b7280);
    line-height: 1.5;
}
@media (max-width: 600px) {
    .anc-active-sub-notice {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
    }
}

/* ============================================================
   MODAL
   ============================================================ */
.anc-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(44, 36, 25, .48);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    backdrop-filter: blur(2px);
}
.anc-modal[hidden] { display: none; }
.anc-modal-box {
    position: relative;
    background: var(--surface);
    border-radius: var(--radius-card);
    padding: 36px 32px 32px;
    max-width: 420px;
    width: 100%;
    box-shadow: 0 20px 60px rgba(44,36,25,.18);
    text-align: center;
}
.anc-modal-close {
    position: absolute;
    top: 14px;
    right: 16px;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 22px;
    color: var(--text-muted);
    line-height: 1;
    padding: 4px 6px;
    border-radius: 4px;
}
.anc-modal-close:hover { color: var(--text); background: var(--surface-alt); }
.anc-modal-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--primary-ghost);
    color: var(--primary);
    margin: 0 auto 16px;
}
.anc-modal-title {
    font-size: 1.15rem;
    font-family: 'DM Sans', sans-serif;
    font-weight: 700;
    color: var(--heading);
    margin: 0 0 10px;
}
.anc-modal-text {
    font-size: .95rem;
    color: var(--text-sec);
    margin: 0 0 24px;
    line-height: 1.55;
}
.anc-modal-actions {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ============================================================
   CART — struttura ad albero Servizi → Accessori
   ============================================================ */

/* Riga servizio (nodo padre) — bordo superiore evidenziato */
.anc-cart-table tr.anc-cart-item-group--main td {
    background: var(--surface);
    border-top: 2px solid var(--primary);
}
.anc-cart-table tr.anc-cart-item-group--main:first-child td {
    border-top: 2px solid var(--primary);
}
.anc-cart-table tr.anc-cart-item-group--main .product-name a,
.anc-cart-table tr.anc-cart-item-group--main .product-name {
    font-weight: 700;
    color: var(--heading);
}

/* Riga accessorio figlio — sfondo alternato + linea connessione sinistra */
.anc-cart-table tr.anc-cart-item--linked-accessory td {
    background: var(--surface-alt, #f8f6f3);
    border-top: 1px dashed var(--border-light, #e5e0d8);
    padding-top: 8px;
    padding-bottom: 8px;
}
.anc-cart-table tr.anc-cart-item--linked-accessory td:first-child {
    border-left: 3px solid var(--primary);
}

/* Nome accessorio: non cliccabile, stile attenuato */
.anc-cart-table tr.anc-cart-item--linked-accessory .product-name {
    padding-left: 0;
    pointer-events: none;
    cursor: default;
    user-select: none;
    font-size: .88rem;
    color: var(--text-sec);
}
.anc-cart-table tr.anc-cart-item--linked-accessory .product-thumbnail {
    pointer-events: none;
    cursor: default;
}
.anc-cart-table tr.anc-cart-item--linked-accessory .product-thumbnail img {
    width: 40px;
    height: 40px;
    opacity: .85;
    border-radius: 6px;
}

/* Marker ↳ inline */
.anc-cart-linked-marker {
    display: inline;
    margin-right: 5px;
    color: var(--primary);
    font-size: .85em;
    font-weight: 700;
    opacity: .75;
}

/* Prezzo accessorio — dimensione ridotta */
.anc-cart-table tr.anc-cart-item--linked-accessory .product-price,
.anc-cart-table tr.anc-cart-item--linked-accessory .product-subtotal {
    font-size: .85rem;
    color: var(--text-sec);
}
.anc-cart-table tr.anc-cart-item--linked-accessory .product-price bdi,
.anc-cart-table tr.anc-cart-item--linked-accessory .product-subtotal bdi {
    color: inherit;
}

/* Separatore tra alberi diversi */
.anc-cart-table tr.anc-cart-item-group--main + tr.anc-cart-item-group--main td {
    border-top: 2px solid var(--primary);
}

/* ——— Meta dati carrello (Cadenza, Opzione, Collegato a) su una riga ——— */
/* WooCommerce usa <dl><dt>Label:</dt><dd>Valore</dd>...</dl> nel product-name */
.anc-cart-table .product-name dl {
    margin: 4px 0 0;
    padding: 0;
    font-size: .82rem;
    color: var(--text-sec);
    line-height: 1.5;
}
.anc-cart-table .product-name dl dt {
    display: inline;
    font-weight: 600;
    margin: 0;
    color: var(--text-sec);
}
.anc-cart-table .product-name dl dt::after { content: ' '; }
.anc-cart-table .product-name dl dd {
    display: inline;
    margin: 0;
}
/* Rimuove il <p> inline (WC lo avvolge in <p>) */
.anc-cart-table .product-name dl dd p {
    display: inline;
    margin: 0;
}
/* Manda a capo dopo ogni coppia label:valore */
.anc-cart-table .product-name dl dd::after {
    content: '\A';
    white-space: pre;
}

/* ——— Accessori: nascondi thumbnail (immagine placeholder inutile) ——— */
.anc-cart-table tr.anc-cart-item--linked-accessory .product-thumbnail {
    width: 0;
    padding-left: 0;
    padding-right: 0;
    overflow: hidden;
}
.anc-cart-table tr.anc-cart-item--linked-accessory .product-thumbnail img {
    display: none;
}

/* ============================================================
   CHECKOUT B2B
   ============================================================ */

/* Layout base del checkout */
.woocommerce-checkout .woocommerce {
    max-width: 2060px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Titolo sezione fatturazione */
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text, #1a1a2e);
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--primary, #4f46e5);
}

/* Campo Ragione Sociale in evidenza */
#billing_company_field label {
    font-weight: 700;
    color: var(--primary-dark, #3730a3);
}
#billing_company_field input {
    border-color: var(--primary, #4f46e5);
    background: var(--surface-alt, #f0f4ff);
}

/* Badge "Obbligatorio" per P.IVA */
#billing_vat_number_field label::after,
#billing_company_field label::after {
    content: ' *';
    color: var(--danger, #dc2626);
}

/* Hint sotto il campo SDI/PEC */
#billing_sdi_pec_field .woocommerce-input-wrapper::after {
    content: 'Inserisci il Codice Destinatario a 7 cifre oppure il tuo indirizzo PEC aziendale.';
    display: block;
    font-size: .78rem;
    color: var(--text-sec, #6b7280);
    margin-top: 4px;
    line-height: 1.4;
}

/* Banner informativo B2B sopra il form */
.anc-checkout-b2b-notice {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--surface-alt, #f0f4ff);
    border-left: 4px solid var(--primary, #4f46e5);
    border-radius: 0 var(--radius, 10px) var(--radius, 10px) 0;
    padding: 14px 18px;
    margin-bottom: 28px;
    font-size: .88rem;
    color: var(--text-sec, #374151);
}
.anc-checkout-b2b-notice strong {
    display: block;
    color: var(--primary-dark, #3730a3);
    margin-bottom: 2px;
}

/* Highlight riga P.IVA nel riepilogo ordine admin */
.anc-order-b2b-meta p { margin: 4px 0; font-size: .9rem; }

@media (max-width: 768px) {
    .anc-checkout-grid { grid-template-columns: 1fr; }
    .woocommerce-checkout .col2-set { display: block !important; }
    .woocommerce-checkout .col2-set .col-1,
    .woocommerce-checkout .col2-set .col-2 { width: 100% !important; float: none !important; }
    .woocommerce-checkout .form-row.form-row-first,
    .woocommerce-checkout .form-row.form-row-last { width: 100% !important; float: none !important; margin-left: 0 !important; }
}

/* ============================================================
   CHECKOUT / PAGAMENTO — layout gestionale responsive
   ============================================================ */

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-main {
    padding-top: 28px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-page-article,
body.woocommerce-checkout:not(.woocommerce-order-received) .anc-content,
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce {
    width: 100%;
    max-width: none;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-page-head {
    margin-bottom: 20px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-page-title {
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    letter-spacing: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout {
    width: 100%;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
    gap: 28px;
    align-items: start;
    width: 100%;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-main,
body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-aside {
    min-width: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-block .col-1,
body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-block .col-2,
body.woocommerce-checkout:not(.woocommerce-order-received) #order_review {
    background: var(--surface);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-md);
}

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-block .col-1,
body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-block .col-2 {
    padding: 28px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-block h3,
body.woocommerce-checkout:not(.woocommerce-order-received) #order_review_heading {
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--text);
    margin: 0 0 18px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-shipping-fields__field-wrapper,
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-additional-fields__field-wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .form-row {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .form-row.form-row-wide,
body.woocommerce-checkout:not(.woocommerce-order-received) #billing_company_field,
body.woocommerce-checkout:not(.woocommerce-order-received) #billing_address_1_field,
body.woocommerce-checkout:not(.woocommerce-order-received) #billing_address_2_field,
body.woocommerce-checkout:not(.woocommerce-order-received) #order_comments_field {
    grid-column: 1 / -1;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form .form-row label {
    margin: 0 0 6px;
    color: var(--text-sec);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form .form-row input.input-text,
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form .form-row textarea,
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form .form-row select,
body.woocommerce-checkout:not(.woocommerce-order-received) .select2-container--default .select2-selection--single {
    min-height: 44px;
    border-color: var(--border);
    background: var(--primary-ghost);
}

body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce form .form-row textarea {
    min-height: 110px;
    resize: vertical;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-aside {
    position: sticky;
    top: 96px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) #order_review {
    padding: 22px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) #order_review table.shop_table {
    margin: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) #order_review table.shop_table th,
body.woocommerce-checkout:not(.woocommerce-order-received) #order_review table.shop_table td {
    padding: 12px 0;
    border-bottom: 1px solid var(--border-light);
    vertical-align: top;
    font-size: .9rem;
}

body.woocommerce-checkout:not(.woocommerce-order-received) #order_review table.shop_table td:last-child,
body.woocommerce-checkout:not(.woocommerce-order-received) #order_review table.shop_table th:last-child {
    text-align: right;
}

body.woocommerce-checkout:not(.woocommerce-order-received) #order_review table.shop_table .order-total th,
body.woocommerce-checkout:not(.woocommerce-order-received) #order_review table.shop_table .order-total td {
    border-bottom: 0;
    padding-top: 16px;
    font-size: 1.05rem;
}

body.woocommerce-checkout:not(.woocommerce-order-received) #payment {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--border-light);
}

body.woocommerce-checkout:not(.woocommerce-order-received) #payment ul.payment_methods li {
    background: var(--primary-ghost);
    border-color: var(--border);
}

body.woocommerce-checkout:not(.woocommerce-order-received) #payment .place-order {
    margin-top: 18px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) #payment .place-order .button {
    min-height: 48px;
    border-radius: var(--radius-btn);
    font-size: .95rem;
    font-weight: 800;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-NoticeGroup,
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-error,
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-info,
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-message {
    max-width: 100%;
}

@media (max-width: 1100px) {
    body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-grid {
        grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
        gap: 22px;
    }
}

@media (max-width: 900px) {
    body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-grid {
        grid-template-columns: 1fr;
    }
    body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-aside {
        position: static;
    }
}

@media (max-width: 640px) {
    body.woocommerce-checkout:not(.woocommerce-order-received) .anc-main {
        padding-top: 18px;
    }
    body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-block .col-1,
    body.woocommerce-checkout:not(.woocommerce-order-received) .anc-checkout-block .col-2,
    body.woocommerce-checkout:not(.woocommerce-order-received) #order_review {
        padding: 18px;
        border-radius: var(--radius-btn);
    }
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-billing-fields__field-wrapper,
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-shipping-fields__field-wrapper,
    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-additional-fields__field-wrapper {
        grid-template-columns: 1fr;
    }
    body.woocommerce-checkout:not(.woocommerce-order-received) #order_review table.shop_table th,
    body.woocommerce-checkout:not(.woocommerce-order-received) #order_review table.shop_table td {
        font-size: .84rem;
    }
}

/* Nasconde i banner di notifica dei blocchi WooCommerce */
.wc-block-components-notice-banner,
.wc-block-components-notice-banner__content { display: none !important; }


/* ==========================================================================
   UPGRADE PIANO — Fix tabella riepilogo e card accessori
   ========================================================================== */

/* ---- Tabella riepilogo upgrade ---- */
.anc-product-upgrade-summary .anc-renew-table {
    border-collapse: separate;
    border-spacing: 0;
}
.anc-product-upgrade-summary .anc-renew-table td {
    padding: 9px 4px;
    font-size: .88rem;
    border-bottom: 1px solid var(--db-border, #f0ece6);
    vertical-align: middle;
}
.anc-product-upgrade-summary .anc-renew-table td:first-child {
    color: var(--db-text-sec, #6b7280);
    font-weight: 400;
    padding-right: 12px;
}
.anc-product-upgrade-summary .anc-renew-table td:last-child {
    text-align: right;
    font-weight: 600;
    white-space: nowrap;
    color: var(--db-text, #111827);
}
/* Riga separatore prima del totale */
.anc-product-upgrade-summary .anc-renew-total-row td {
    border-top: 2px solid var(--db-outline, #e5e7eb);
    border-bottom: none;
    padding-top: 12px;
    padding-bottom: 4px;
    font-size: 1rem !important;
    font-weight: 700 !important;
}
.anc-product-upgrade-summary .anc-renew-total-row td:first-child {
    color: var(--db-text, #111827);
    font-weight: 700 !important;
}
.anc-product-upgrade-summary .anc-renew-total {
    color: var(--ancyllar-primary, #8B7355) !important;
    font-size: 1.1rem !important;
}

/* ---- Card accessori nella vista upgrade piano ---- */

/* Layout base card v2 nella sezione upgrade:
   [thumb] [nome] [widget] [prezzo] [toggle]
   La select non deve espandersi oltre il suo contenuto */
.anc-product-upgrade-acc-v2 .anc-acc-card-v2 {
    align-items: center;
}

/* Limita la larghezza della select nella sezione upgrade */
.anc-product-upgrade-acc-v2 .anc-acc-option-select {
    max-width: 200px;
    min-width: 120px;
    flex: 0 1 auto;
}

/* Stack opzioni (quantity_options): allinea verticalmente */
.anc-product-upgrade-acc-v2 .anc-acc-options-stack {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
}
.anc-product-upgrade-acc-v2 .anc-acc-options-stack .anc-acc-option {
    width: 100%;
}

/* Prezzo nella card upgrade: allineato a destra, compatto */
.anc-product-upgrade-acc-v2 .anc-acc-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    min-width: 80px;
    flex-shrink: 0;
}
.anc-product-upgrade-acc-v2 .anc-acc-display {
    font-size: .9rem;
    font-weight: 600;
    white-space: nowrap;
    color: var(--db-text, #111827);
}
.anc-product-upgrade-acc-v2 .anc-acc-period {
    font-size: .72rem;
    color: var(--db-text-sec, #6b7280);
    white-space: nowrap;
}
.anc-product-upgrade-acc-v2 .anc-acc-extra {
    font-size: .78rem;
    font-weight: 600;
    color: var(--success, #2e7d32);
    white-space: nowrap;
}
.anc-product-upgrade-acc-v2 .anc-acc-included-badge {
    font-size: .72rem;
    font-weight: 600;
    color: var(--ancyllar-primary, #8B7355);
    background: var(--primary-ghost, rgba(139,115,85,.1));
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
}

/* Bottone Aggiungi nella sezione upgrade: dimensione fissa */
.anc-product-upgrade-acc-v2 .anc-acc-toggle {
    min-width: 100px;
    flex-shrink: 0;
}

/* Contatore quantità nella sezione upgrade */
.anc-product-upgrade-acc-v2 .anc-acc-qty-wrap {
    flex-wrap: nowrap;
    align-items: center;
}
.anc-product-upgrade-acc-v2 .anc-pratiche-counter {
    display: flex;
    align-items: center;
    height: 32px;
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px;
    overflow: hidden;
    background: var(--surface, #fff);
}
.anc-product-upgrade-acc-v2 .anc-pratiche-btn {
    width: 28px;
    height: 32px;
    border: none;
    background: transparent;
    font-size: 1rem;
    color: var(--primary, #8B7355);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background .12s;
}
.anc-product-upgrade-acc-v2 .anc-pratiche-btn:hover {
    background: var(--primary-ghost, rgba(139,115,85,.1));
}
.anc-product-upgrade-acc-v2 .anc-pratiche-qty-input {
    width: 40px;
    height: 32px;
    border: none;
    border-left: 1px solid var(--border, #e5e7eb);
    border-right: 1px solid var(--border, #e5e7eb);
    text-align: center;
    font-size: .85rem;
    font-weight: 600;
    background: transparent;
    color: var(--text, #111827);
    -moz-appearance: textfield;
}
.anc-product-upgrade-acc-v2 .anc-pratiche-qty-input::-webkit-outer-spin-button,
.anc-product-upgrade-acc-v2 .anc-pratiche-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Grid layout card con select + prezzo + toggle nella sezione upgrade:
   forza la select nella colonna "option" senza espandersi */
.anc-product-upgrade-acc-v2 .anc-acc-rows .anc-acc-card:has(.anc-acc-thumb):has(.anc-acc-option:not([hidden])):has(.anc-acc-toggle:not([hidden])) {
    grid-template-columns: 44px minmax(80px, 1fr) minmax(100px, 180px) auto auto;
}

/* Sezione "Accessori applicati" — lista con due righe per variazione */
.anc-product-upgrade-accessories .anc-product-upgrade-accessory-list li {
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--db-surface, #fff);
    border: 1px solid var(--db-border, #f0ece6);
}
.anc-product-upgrade-accessories .anc-product-upgrade-accessory-list li + li {
    margin-top: 6px;
}
.anc-product-upgrade-accessory-check {
    color: var(--success, #2e7d32);
    flex-shrink: 0;
}

/* Responsive: su mobile la select va sotto il nome */
@media (max-width: 640px) {
    .anc-product-upgrade-acc-v2 .anc-acc-option-select {
        max-width: 100%;
        width: 100%;
    }
    .anc-product-upgrade-acc-v2 .anc-acc-price {
        min-width: 60px;
    }
    .anc-product-upgrade-acc-v2 .anc-acc-toggle {
        min-width: 80px;
        font-size: .78rem;
        padding: 6px 10px;
    }
}


/* Prezzo card upgrade: nascosto finché non selezionata */
.anc-upgrade-acc-list .anc-acc-card__amount,
.anc-upgrade-acc-list .anc-acc-card__period {
    visibility: hidden;
    min-height: 1.2em; /* mantiene lo spazio */
}
.anc-upgrade-acc-list .anc-acc-card.is-selected .anc-acc-card__amount,
.anc-upgrade-acc-list .anc-acc-card.is-selected .anc-acc-card__period {
    visibility: visible;
}

/* Bottone Aggiungi / Aggiunto nelle card upgrade accessori */
.anc-upgrade-acc-list .anc-acc-card__body {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: default;
}
.anc-upgrade-acc-list .anc-acc-card__add-btn {
    flex-shrink: 0;
    white-space: nowrap;
    font-size: .8rem;
    padding: 6px 14px;
    min-width: 90px;
    text-align: center;
}
.anc-upgrade-acc-list .anc-acc-card.is-selected .anc-acc-card__add-btn {
    background: var(--success, #2e7d32);
    color: #fff;
    border-color: var(--success, #2e7d32);
}

/* Fix layout card upgrade: bottone dentro __body */
.anc-upgrade-acc-list .anc-acc-card__body {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: default;
    min-width: 0;
}
.anc-upgrade-acc-list .anc-acc-card__info {
    flex: 1;
    min-width: 0;
}
.anc-upgrade-acc-list .anc-acc-card__add-btn {
    flex-shrink: 0;
    white-space: nowrap;
    font-size: .8rem;
    padding: 6px 14px;
    min-width: 90px;
    text-align: center;
}
.anc-upgrade-acc-list .anc-acc-card.is-selected .anc-acc-card__add-btn {
    background: var(--success, #2e7d32) !important;
    color: #fff !important;
    border-color: var(--success, #2e7d32) !important;
}

/* Fix definitivo: nasconde la checkbox nativa con display:none */
.anc-upgrade-acc-list .anc-acc-card__check {
    display: none !important;
}
/* Assicura che __body occupi tutto lo spazio disponibile in __inner */
.anc-upgrade-acc-list .anc-acc-card__inner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px;
}
.anc-upgrade-acc-list .anc-acc-card__body {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    cursor: default;
}
.anc-upgrade-acc-list .anc-acc-card__info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.anc-upgrade-acc-list .anc-acc-card__name {
    font-size: .9rem;
    font-weight: 600;
    color: #3a3028;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
