/*
Theme Name:        Passione.Casa
Theme URI:         https://passione.casa
Author:            Passione.Casa
Author URI:        https://passione.casa
Description:       Tema white-label stile Airbnb/Habito per l'ecosistema casa. Legge colori, font e logo dal plugin Passione.Casa Portal. Funziona anche standalone.
Version:           4.3.0
Requires at least: 5.8
Requires PHP:      7.4
License:           GPL-2.0+
Text Domain:       passione-casa
*/

/* ═══ DESIGN TOKENS ═══ */
:root {
    --pc-primary: var(--pcp-primary, #4F46E5);
    --pc-primary-h: var(--pcp-primary-hover, #4338CA);
    --pc-dark: var(--pcp-dark, #111827);
    --pc-bg: var(--pcp-bg, #FFFFFF);
    --pc-bg-warm: var(--pcp-bg-warm, #F9FAFB);
    --pc-surface: var(--pcp-surface, #FFFFFF);
    --pc-text: var(--pcp-text, #111827);
    --pc-text-2: var(--pcp-text-muted, #6B7280);
    --pc-border: var(--pcp-border, #E5E7EB);
    --pc-font: var(--pcp-font-body, 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif);
    --pc-display: var(--pcp-font-display, 'Outfit', Georgia, serif);
    --pc-r: 12px;
    --pc-r-lg: 16px;
    --pc-r-xl: 24px;
    --pc-r-full: 9999px;
    --pc-shadow-sm: 0 1px 2px rgba(0,0,0,.05);
    --pc-shadow: 0 4px 16px rgba(0,0,0,.08);
    --pc-shadow-lg: 0 12px 40px rgba(0,0,0,.12);
    --pc-shadow-xl: 0 24px 64px rgba(0,0,0,.16);
    --pc-tr: .25s cubic-bezier(.4,0,.2,1);
}

/* ═══ RESET ═══ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
    font-family:var(--pc-font);
    font-size:16px;line-height:1.6;
    color:var(--pc-text);
    background:var(--pc-bg);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;
}
img,video,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;border:none;outline:none;background:none}
ul,ol{list-style:none}
::selection{background:var(--pc-primary);color:#fff}

/* ═══ TYPOGRAPHY ═══ */
h1,h2,h3,h4,h5,h6{font-family:var(--pc-display);font-weight:800;line-height:1.1;color:var(--pc-text);letter-spacing:-.03em}
h1{font-size:clamp(2.2rem,5vw,3.2rem)}
h2{font-size:clamp(1.6rem,3.5vw,2.4rem)}
h3{font-size:clamp(1.1rem,2vw,1.4rem)}
h4{font-size:1rem;font-weight:700}
p{margin-bottom:1rem}
.text-muted{color:var(--pc-text-2)}
.text-center{text-align:center}
.accent{color:var(--pc-primary)}

/* ═══ LAYOUT ═══ */
.container{max-width:1280px;margin:0 auto;padding:0 1rem}
@media(min-width:640px){.container{padding:0 1.5rem}}
@media(min-width:1024px){.container{padding:0 2rem}}
.section{padding:5rem 0}
.grid{display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}
.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}
.flex{display:flex}.flex-wrap{flex-wrap:wrap}.gap-2{gap:.5rem}
.justify-center{justify-content:center}.justify-between{justify-content:space-between}
.items-center{align-items:center}
.text-center{text-align:center}
.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-16{margin-bottom:4rem}
.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}

/* ═══ BUTTONS ═══ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.75rem;border-radius:var(--pc-r-full);font-weight:700;font-size:.9375rem;cursor:pointer;transition:all var(--pc-tr);text-decoration:none;border:none;white-space:nowrap;line-height:1.4;font-family:var(--pc-font)}
.btn-primary{background:var(--pc-primary);color:#fff}
.btn-primary:hover{background:var(--pc-primary-h);transform:translateY(-2px);box-shadow:var(--pc-shadow-lg)}
.btn-outline{background:transparent;color:var(--pc-text);border:1.5px solid var(--pc-border)}
.btn-outline:hover{border-color:var(--pc-text);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--pc-text-2);padding:.75rem 1rem}
.btn-ghost:hover{color:var(--pc-text);background:var(--pc-bg-warm)}
.btn-lg{padding:1rem 2.5rem;font-size:1.0625rem}
.btn:focus-visible{outline:2px solid var(--pc-primary);outline-offset:2px}

/* ═══════════════════════════════════════════════════
   HEADER — Fixed, Airbnb style
   ═══════════════════════════════════════════════════ */
body{--pc-admin-offset:0px}
body.admin-bar{--pc-admin-offset:32px}
@media(max-width:782px){body.admin-bar{--pc-admin-offset:46px}}

.site-header{
    position:fixed;top:var(--pc-admin-offset);left:0;right:0;z-index:1000;
    background:#fff;
    padding:1.25rem 0;
    transition:all .2s ease;
}
.site-header.scrolled{
    box-shadow:var(--pc-shadow-sm);
    border-bottom:1px solid var(--pc-border);
    padding:.875rem 0;
}
.header-inner{
    display:flex;justify-content:space-between;align-items:center;
    max-width:1280px;margin:0 auto;padding:0 1.5rem;
}

/* Logo */
.site-logo{display:flex;align-items:center;gap:.75rem;text-decoration:none;position:relative;z-index:1001}
.site-logo-mark{
    display:flex;align-items:center;justify-content:center;
    width:48px;height:48px;min-width:48px;
    border-radius:var(--pc-r);
    background:var(--pc-primary);color:#fff;
    font-size:1.1rem;overflow:hidden;
}
.site-logo-mark img{width:100%;height:100%;object-fit:cover}
.site-logo-copy{display:flex;flex-direction:column}
.site-logo-name{font-size:1.25rem;font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--pc-text)}
.site-logo-name .dot{color:var(--pc-primary)}
.site-logo-sub{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--pc-primary);margin-top:2px}

/* Nav */
.main-nav{display:flex;align-items:center;gap:.25rem}
.main-nav a{
    display:inline-flex;align-items:center;
    padding:.5rem .875rem;border-radius:var(--pc-r-full);
    font-size:.875rem;font-weight:600;color:var(--pc-text-2);
    transition:all var(--pc-tr);white-space:nowrap;
}
.main-nav a:hover,.main-nav a.current{background:var(--pc-bg-warm);color:var(--pc-text)}

/* Header actions */
.header-actions{display:flex;align-items:center;gap:.75rem}
.header-pro-link{font-size:.875rem;font-weight:600;color:var(--pc-text-2);padding:.5rem 1rem;border-radius:var(--pc-r-full);transition:all var(--pc-tr)}
.header-pro-link:hover{background:var(--pc-bg-warm)}
.header-user-btn{
    display:flex;align-items:center;gap:.5rem;
    border:1px solid var(--pc-border);padding:.5rem .5rem .5rem .75rem;
    border-radius:var(--pc-r-full);background:#fff;cursor:pointer;
    transition:box-shadow var(--pc-tr);
}
.header-user-btn:hover{box-shadow:var(--pc-shadow)}
.header-user-btn .bars{display:flex;flex-direction:column;gap:3px}
.header-user-btn .bars span{display:block;width:16px;height:2px;background:var(--pc-text-2);border-radius:2px}
.header-user-btn .avatar{
    width:32px;height:32px;border-radius:50%;
    background:var(--pc-dark);color:#fff;
    display:flex;align-items:center;justify-content:center;
    font-size:.75rem;font-weight:700;
}

.site-main{padding-top:calc(80px + var(--pc-admin-offset))}
body.is-home .site-main{padding-top:calc(80px + var(--pc-admin-offset))}

/* ═══ MOBILE DRAWER ═══ */
.mobile-toggle{display:none;cursor:pointer}
.mobile-overlay{position:fixed;inset:0;z-index:1100;background:rgba(0,0,0,.3);opacity:0;visibility:hidden;transition:all .24s}
.mobile-overlay.open{opacity:1;visibility:visible}
.mobile-overlay[hidden]{display:none!important}
.mobile-drawer{
    position:fixed;top:calc(var(--pc-admin-offset) + 10px);right:10px;bottom:10px;
    width:min(380px,calc(100vw - 20px));z-index:1110;
    background:#fff;border:1px solid var(--pc-border);border-radius:var(--pc-r-xl);
    box-shadow:var(--pc-shadow-xl);
    transform:translate3d(112%,0,0);visibility:hidden;
    transition:transform .24s ease,visibility .24s ease;
    display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain;
}
.mobile-drawer[hidden]{display:none!important}
.mobile-drawer.open{transform:translate3d(0,0,0);visibility:visible}
.mobile-drawer-head{
    position:sticky;top:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
    padding:1.25rem;background:#fff;border-bottom:1px solid var(--pc-border);z-index:2;
}
.mobile-drawer-brand{display:flex;flex-direction:column;gap:4px}
.mobile-close{
    display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    min-width:48px;min-height:48px;border-radius:var(--pc-r);
    background:#fff;border:1px solid var(--pc-border);cursor:pointer;
    transition:all var(--pc-tr);
}
.mobile-close:hover{border-color:var(--pc-primary);background:rgba(79,70,229,.04)}
.mobile-close span{font-size:1.5rem;line-height:1}
.mobile-close small{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.mobile-nav{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.25rem;flex:1}
.mobile-nav a{
    display:flex;align-items:center;min-height:50px;padding:0 1rem;
    border-radius:var(--pc-r);font-size:.9375rem;font-weight:700;
    color:var(--pc-text);background:#fff;border:1px solid var(--pc-border);
}
.mobile-nav a:hover{border-color:var(--pc-primary);color:var(--pc-primary)}
.mobile-drawer-cta{display:grid;gap:.5rem;padding:0 1.25rem 1.25rem;margin-top:auto}
.mobile-drawer-cta .btn{width:100%;justify-content:center}
html.menu-open,body.menu-open{overflow:hidden}

@media(max-width:960px){
    .main-nav,.header-pro-link{display:none}
    .mobile-toggle{display:flex}
    .mobile-drawer-cta .btn{display:inline-flex!important}
}
@media(max-width:640px){
    .site-header{padding:1rem 0}
    .site-header.scrolled{padding:.75rem 0}
    .header-inner{padding:0 1rem}
    .site-logo-mark{width:42px;height:42px;min-width:42px}
    .site-logo-name{font-size:1.1rem}
    .mobile-drawer{top:var(--pc-admin-offset);right:0;bottom:0;width:100vw;border-radius:0}
}

/* ═══ HERO ═══ */
.hero-section{
    padding:3rem 0 2rem;text-align:center;
}
.hero-section h1{margin-bottom:1rem}
.hero-section p{font-size:1.125rem;color:var(--pc-text-2);max-width:36rem;margin:0 auto 2.5rem;line-height:1.7}

/* Search pill — Airbnb style */
.search-pill{
    max-width:48rem;margin:0 auto;background:#fff;
    border-radius:var(--pc-r-full);border:1px solid var(--pc-border);
    box-shadow:var(--pc-shadow);
    display:flex;align-items:center;
    transition:box-shadow var(--pc-tr);
}
.search-pill:hover,.search-pill:focus-within{box-shadow:var(--pc-shadow-lg)}
.search-pill-field{flex:1;padding:1rem 1.5rem}
.search-pill-field+.search-pill-field{border-left:1px solid var(--pc-border)}
.search-pill-field label{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--pc-text);margin-bottom:2px}
.search-pill-field input{width:100%;font-size:.9375rem;color:var(--pc-text-2);background:transparent;font-weight:500}
.search-pill-field input::placeholder{color:#9CA3AF}
.search-pill-btn{
    margin:.375rem;padding:1rem;border-radius:50%;
    background:var(--pc-primary);color:#fff;cursor:pointer;
    transition:all var(--pc-tr);flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
}
.search-pill-btn:hover{background:var(--pc-primary-h);transform:scale(1.05)}
.search-pill-btn svg{width:20px;height:20px}

@media(max-width:640px){
    .search-pill{flex-direction:column;border-radius:var(--pc-r-lg)}
    .search-pill-field+.search-pill-field{border-left:none;border-top:1px solid var(--pc-border)}
    .search-pill-btn{width:calc(100% - .75rem);margin:.375rem;border-radius:var(--pc-r);padding:.875rem}
}

/* ═══ CATEGORY BAR — Airbnb sticky ═══ */
.category-bar{
    position:sticky;top:calc(80px + var(--pc-admin-offset));z-index:40;
    background:#fff;border-bottom:1px solid var(--pc-border);
    box-shadow:var(--pc-shadow-sm);
}
.site-header.scrolled ~ .site-main .category-bar,
.site-header.scrolled + .site-main .category-bar{top:calc(66px + var(--pc-admin-offset))}
.category-bar-inner{
    display:flex;gap:2rem;overflow-x:auto;padding:1rem 0;
    scrollbar-width:none;-ms-overflow-style:none;
    max-width:1280px;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem;
}
.category-bar-inner::-webkit-scrollbar{display:none}
.cat-tab{
    display:flex;flex-direction:column;align-items:center;gap:.375rem;
    min-width:max-content;cursor:pointer;padding:0 .25rem .5rem;
    border-bottom:2px solid transparent;
    transition:all var(--pc-tr);opacity:.65;
}
.cat-tab:hover{opacity:1}
.cat-tab.active{opacity:1;border-bottom-color:var(--pc-text);color:var(--pc-text)}
.cat-tab-icon{font-size:1.5rem;transition:transform .2s}
.cat-tab:hover .cat-tab-icon,.cat-tab.active .cat-tab-icon{transform:scale(1.1)}
.cat-tab-label{font-size:.7rem;font-weight:600;white-space:nowrap;color:var(--pc-text-2)}
.cat-tab.active .cat-tab-label{color:var(--pc-text)}

/* ═══ PROFESSIONAL CARDS — Airbnb grid ═══ */
.pro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;gap-y:2.5rem}
.pro-card{display:flex;flex-direction:column;cursor:pointer}
.pro-card-img{
    position:relative;aspect-ratio:4/3;overflow:hidden;
    border-radius:var(--pc-r-lg);margin-bottom:1rem;
    background:var(--pc-bg-warm);border:1px solid var(--pc-border);
}
.pro-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pro-card:hover .pro-card-img img{transform:scale(1.05)}
.pro-card-badge{
    position:absolute;top:.75rem;left:.75rem;
    background:rgba(255,255,255,.95);backdrop-filter:blur(8px);
    padding:.375rem .75rem;border-radius:var(--pc-r-full);
    font-size:.6875rem;font-weight:700;color:var(--pc-text);
    display:flex;align-items:center;gap:.375rem;
    box-shadow:var(--pc-shadow-sm);
}
.pro-card-fav{
    position:absolute;top:.75rem;right:.75rem;
    color:rgba(255,255,255,.8);cursor:pointer;
    transition:all var(--pc-tr);filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));
}
.pro-card-fav:hover{color:#EF4444;transform:scale(1.1)}
.pro-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.25rem}
.pro-card-name{font-size:.9375rem;font-weight:700;display:flex;align-items:center;gap:.375rem;padding-right:.5rem}
.pro-card-verified{color:#3B82F6;flex-shrink:0}
.pro-card-rating{display:flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:700;flex-shrink:0}
.pro-card-rating svg{fill:currentColor}
.pro-card-location{font-size:.875rem;color:var(--pc-text-2);display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}
.pro-card-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:auto}
.pro-card-tag{
    background:var(--pc-bg-warm);color:var(--pc-text-2);
    font-size:.6875rem;font-weight:600;
    padding:.25rem .5rem;border-radius:.375rem;
}
.pro-card-footer{
    margin-top:1rem;padding-top:1rem;border-top:1px solid var(--pc-border);
    display:flex;justify-content:space-between;align-items:center;
}
.pro-card-price{font-size:.875rem;font-weight:700}
.pro-card-cta{font-size:.875rem;font-weight:600;color:var(--pc-primary)}
.pro-card-cta:hover{text-decoration:underline}

@media(max-width:1024px){.pro-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.pro-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.pro-grid{grid-template-columns:1fr}}

/* ═══ CTA BANNER ═══ */
.cta-banner{
    background:var(--pc-bg-warm);padding:5rem 0;border-top:1px solid var(--pc-border);
    margin-top:3rem;text-align:center;
}
.cta-banner h2{margin-bottom:1rem}
.cta-banner p{font-size:1.125rem;color:var(--pc-text-2);max-width:36rem;margin:0 auto 2rem;line-height:1.7}

/* ═══ SECTION HEADERS ═══ */
.section-label{
    display:inline-flex;align-items:center;gap:.5rem;
    font-size:.6875rem;font-weight:700;text-transform:uppercase;
    letter-spacing:.1em;color:var(--pc-primary);margin-bottom:.5rem;
}
.section-header-row{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem}

/* ═══ CARDS (posts) ═══ */
.card{background:var(--pc-surface);border:1px solid var(--pc-border);border-radius:var(--pc-r-lg);overflow:hidden;transition:all .5s}
.card:hover{border-color:transparent;box-shadow:var(--pc-shadow-xl);transform:translateY(-4px)}
.card-body{padding:1.25rem}
.card-img{aspect-ratio:16/10;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card-img img{transform:scale(1.06)}
.post-meta{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--pc-text-2);margin-bottom:.5rem}
.post-title{font-size:1.05rem;line-height:1.3;margin-bottom:.5rem;font-weight:700}
.post-excerpt{font-size:.85rem;color:var(--pc-text-2);line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ═══ FOOTER ═══ */
.site-footer{background:var(--pc-dark);color:#D1D5DB;padding:4rem 0 1.5rem}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem;margin-bottom:3rem}
.footer-brand-logo{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}
.footer-brand-logo .logo-icon{
    width:2rem;height:2rem;border-radius:.5rem;
    background:var(--pc-primary);color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:.8rem;
}
.footer-brand-name{font-size:1.25rem;font-weight:800;color:#fff}
.footer-brand p{font-size:.875rem;color:#9CA3AF;line-height:1.7;max-width:280px;margin-bottom:1.5rem}
.footer-col h4{font-weight:700;font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;color:#fff;margin-bottom:1rem}
.footer-col a{display:block;font-size:.875rem;color:#9CA3AF;margin-bottom:.5rem;transition:color var(--pc-tr)}
.footer-col a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:1.5rem;text-align:center;font-size:.75rem;color:#6B7280}

@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>:first-child{grid-column:1/-1}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}}

/* ═══ SINGLE POST ═══ */
.single-content{max-width:720px;margin:0 auto;padding:3rem 1.5rem}
.entry-content{line-height:1.85;font-size:1.05rem}
.entry-content p{margin-bottom:1.25rem}
.entry-content h2{margin:2.5rem 0 .75rem}.entry-content h3{margin:2rem 0 .75rem}
.entry-content ul,.entry-content ol{padding-left:1.5rem;margin-bottom:1.25rem}
.entry-content li{margin-bottom:.5rem}
.entry-content blockquote{border-left:3px solid var(--pc-primary);padding-left:1.5rem;margin:2rem 0;font-style:italic;color:var(--pc-text-2)}
.entry-content img{border-radius:var(--pc-r-lg);margin:1.5rem 0}
.entry-content a{color:var(--pc-primary);text-decoration:underline;text-underline-offset:3px}

/* ═══ PAGE ═══ */
.page-hero{padding:4rem 0 2rem;text-align:center}
.page-hero h1{margin-bottom:1rem}
.page-hero .subtitle{font-size:1.05rem;color:var(--pc-text-2);max-width:36rem;margin:0 auto;line-height:1.7}
.page-divider{border:none;border-top:1px solid var(--pc-border);margin:2.5rem 0}

/* ═══ BADGES ═══ */
.badge{display:inline-flex;align-items:center;gap:.25rem;padding:3px 10px;border-radius:var(--pc-r-full);font-size:.6875rem;font-weight:600}
.badge-primary{background:rgba(79,70,229,.06);color:var(--pc-primary)}

/* ═══ SCROLL REVEAL ═══ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .5s ease-out,transform .5s ease-out}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ═══ ACCESSIBILITY ═══ */
a:focus-visible,.btn:focus-visible,button:focus-visible{outline:2px solid var(--pc-primary);outline-offset:2px;border-radius:4px}
.skip-link{position:absolute;top:-100%;left:1rem;z-index:10000;padding:.75rem 1.5rem;background:var(--pc-primary);color:#fff;border-radius:0 0 8px 8px;font-weight:700;transition:top .2s}
.skip-link:focus{top:0}

/* ═══ PRINT ═══ */
@media print{.site-header,.site-footer,.category-bar,.mobile-toggle,.mobile-drawer,.mobile-overlay,.cta-banner{display:none!important}.site-main{padding-top:0!important}}

/* ═══ RESPONSIVE ═══ */
@media(max-width:1024px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.section{padding:3rem 0}}
