/* ═══════════════════════════════════════════════════════════
   GLOBAL DESIGN POLISH — Boutique LF Immo v27
   Applied to all pages for consistent, premium feel
   ═══════════════════════════════════════════════════════════ */

/* ─── SMOOTH EVERYTHING ─── */
*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{transition:opacity .3s}
img[loading="lazy"]{opacity:0}
img.loaded,img:not([loading="lazy"]){opacity:1}
a{transition:color .2s,background .2s,transform .2s,box-shadow .2s,border-color .2s}

/* ─── SELECTION ─── */
::selection{background:rgba(228,29,93,.12);color:#1A1A1A}

/* ─── FOCUS RING ─── */
:focus-visible{outline:2px solid #E41D5D;outline-offset:3px;border-radius:6px}
:focus:not(:focus-visible){outline:none}

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(190,174,137,.3);border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:rgba(190,174,137,.5)}

/* ─── BUTTONS GLOBAL POLISH ─── */
button,a.btn,a.btn-primary,.btn-submit,.btn-link,.step-action-btn{
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation
}
button:active,a.btn:active,.btn-submit:active{transform:scale(.97)!important}

/* ─── CARDS GLOBAL ─── */
.card,.form-card,.profile-card{
    border:1px solid rgba(0,0,0,.04);
    box-shadow:0 1px 3px rgba(0,0,0,.02),0 4px 16px rgba(0,0,0,.03);
    transition:box-shadow .2s,transform .2s
}

/* ─── INPUTS GLOBAL ─── */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
textarea,select,.form-input,.inp{
    transition:border-color .2s,box-shadow .2s;
    -webkit-appearance:none
}
input:focus,textarea:focus,select:focus,.form-input:focus,.inp:focus{
    box-shadow:0 0 0 3px rgba(228,29,93,.08)
}

/* ─── PAGE TRANSITIONS ─── */
.form-section,.pg,.card{animation:fadeUp .4s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* ─── BADGES/PILLS ─── */
.sb,.pan-c-badge,.cat-c-badge,.fly-c-badge,.sc-tag,.pcard-badge{
    letter-spacing:.5px;
    text-shadow:0 1px 2px rgba(0,0,0,.1)
}

/* ─── TOAST IMPROVE ─── */
.toast{
    font-family:'League Spartan',sans-serif;
    letter-spacing:.3px;
    box-shadow:0 8px 32px rgba(0,0,0,.2);
    backdrop-filter:blur(12px)
}

/* ─── FOOTER POLISH ─── */
.site-footer .sf-links a{position:relative;display:inline-block}
.site-footer .sf-links a::after{
    content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;
    background:#BEae89;transition:width .3s
}
.site-footer .sf-links a:hover::after{width:100%}

/* ─── LOADING STATES ─── */
.spinner,
[class*="spinner"]{
    border-radius:50%;
    animation:spin .8s linear infinite
}
@keyframes spin{to{transform:rotate(360deg)}}

/* ─── LAZY IMAGE OBSERVER ─── */
@media(prefers-reduced-motion:no-preference){
    .reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
    .reveal.visible{opacity:1;transform:translateY(0)}
}

/* ─── RESPONSIVE TOUCH TARGETS ─── */
@media(max-width:768px){
    button,.btn,a.btn,a.btn-primary,.nav-links a,.sf-links a{
        min-height:44px;
        display:inline-flex;
        align-items:center
    }
    .sf-links a{min-height:36px}
}

/* ─── PRINT ─── */
@media print{
    .navbar,.bottom-nav,.mobile-menu,.cb-fab,.cb-win,.toast,footer{display:none!important}
    body{padding-top:0!important;background:#fff!important}
    .card{box-shadow:none!important;border:1px solid #ddd!important}
}

/* ─── PAGE LOAD ANIMATION ─── */
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.skeleton-load{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}

/* ─── MOBILE OPTIMIZATIONS (phones only) ─── */
@media(max-width:480px){
    body{-webkit-text-size-adjust:100%;overflow-x:hidden}
    /* Prevent horizontal overflow */
    .ctn,.container,main,.card,.invoice,.profile-card,.form-card{max-width:100vw;overflow-x:hidden}
    /* Better touch targets */
    button,.btn,a.btn,.step-action-btn,.btn-link{min-height:48px;font-size:14px!important}
    /* Forms full width */
    .form-input,.inp,input:not([type="checkbox"]):not([type="radio"]),textarea,select{font-size:16px!important;padding:12px 14px!important}
    .form-row{flex-direction:column!important;gap:8px!important}
    .form-group{width:100%!important}
    /* Cards breathing room */
    .card{padding:16px!important;border-radius:12px!important}
    /* Tables scroll */
    table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
    thead,tbody,tr{min-width:400px}
    /* Meta grids stack */
    .meta-grid{grid-template-columns:1fr!important;gap:10px!important}
    /* Totals stack */
    .totals{flex-direction:column!important;align-items:stretch!important}
    .tot-box{text-align:center!important}
    /* Invoice */
    .inv-header{flex-direction:column!important;gap:12px!important}
    .inv-num{font-size:22px!important}
    .actions{flex-direction:column!important}
    .actions .btn{width:100%!important;justify-content:center!important}
}

@media(max-width:768px){
    /* Footer compact */
    .site-footer{padding:48px 0 24px!important}
    .sf-grid{gap:24px!important}
    .sf-desc{max-width:100%!important}
    /* Navbar logo */
    .navbar .nav-logo-img{height:40px!important}
    .navbar .logo-name{font-size:16px!important}
    /* Bottom nav spacing */
    .bottom-nav~.site-footer{padding-bottom:80px!important}
}
