/* ============================================================
   ERGABOX — PUBLIC RESPONSIVE
   Shared public layout
   Preserve each service's own card, gallery and page-specific design.
============================================================ */

/* ============================================================
   ROOT / GLOBAL SAFETY
============================================================ */

.public-shell{
    min-height:100vh;
    min-height:100dvh;
    display:flex;
    flex-direction:column;
    overflow-x:hidden;
    background:#f1f5f9;
}

.public-shell > .main-content{
    flex:1 0 auto;
    min-width:0;
    width:100%;
}

.public-shell > footer{
    flex-shrink:0;
    margin-top:auto;
}

.public-shell .navbar-brand{
    flex-shrink:0;
}

.public-shell .navbar-brand img{
    width:44px;
    height:44px;
    flex-shrink:0;
    object-fit:contain;
    border-radius:10px;
}

.public-shell .public-header-actions{
    flex-shrink:0;
}

.public-shell .main-content :where(img,video,iframe,svg){
    max-width:100%;
}

.public-shell :where(
    .card-body,
    .row > *,
    .auto-layout > *,
    .auto-fields > *,
    .public-ad-showcase > *,
    .service-layout > *,
    .search-layout > *
){
    min-width:0;
}

.public-shell :where(
    h1,h2,h3,h4,h5,h6,
    p,dd,address,
    .card-title,
    .auto-price,
    footer a
){
    overflow-wrap:anywhere;
}

.public-shell :where(input,select,textarea){
    min-width:0;
    max-width:100%;
}

.public-shell :where(.pagination,.auto-row){
    flex-wrap:wrap;
}

.public-shell .table-responsive{
    max-width:100%;
}

.public-shell .google-ad-block{
    max-width:100%;
    min-width:0;
}

/* ============================================================
   FAVORITOS — LINK GLOBAL DO HEADER
============================================================ */

.public-favorites-link{
    position:relative;
    width:44px;
    height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 44px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:50%;
    color:#fff;
    background:rgba(255,255,255,.07);
    text-decoration:none;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        transform .18s ease;
}

.public-favorites-link:hover,
.public-favorites-link:focus-visible{
    color:#fff;
    border-color:rgba(255,255,255,.42);
    background:rgba(255,255,255,.14);
    transform:translateY(-1px);
    outline-offset:3px;
}

.public-favorites-count{
    position:absolute;
    top:-5px;
    right:-7px;
    min-width:19px;
    height:19px;
    padding:0 4px;
    border-radius:999px;
    color:#fff;
    background:#be123c;
    font:700 11px/19px Arial,sans-serif;
    text-align:center;
}

/* ============================================================
   PUBLICIDADE
============================================================ */

.public-global-ad:not(:has(.google-ad-block)),
.public-ad-showcase:not(:has(.google-ad-block)){
    display:none;
}

.public-global-ad .google-ad-block{
    margin:0 auto;
}

.public-global-ad--horizontal .google-ad-block{
    max-width:1180px;
}

.public-ad-showcase{
    display:grid;
    grid-template-columns:minmax(0,1fr) 340px;
    gap:24px;
    align-items:start;
}

.public-ad-showcase__main{
    display:grid;
    gap:24px;
}

.public-ad-showcase .ad-vertical{
    max-width:340px;
}

.public-ad-caption{
    margin:0 0 9px;
    color:#64748b;
    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

/* ============================================================
   NAVBAR
============================================================ */

.public-shell .navbar > .container{
    min-width:0;
}

.public-shell .navbar-toggler{
    flex:0 0 auto;
}

.public-shell .navbar-collapse{
    min-width:0;
}

.public-shell .navbar-collapse .navbar-nav{
    min-width:0;
}

.public-shell .navbar-collapse .nav-link{
    white-space:normal;
}

/* ============================================================
   FORMULÁRIOS
============================================================ */

.public-shell input,
.public-shell select,
.public-shell textarea{
    max-width:100%;
}

.public-shell input[type="date"],
.public-shell input[type="datetime-local"],
.public-shell input[type="time"]{
    min-width:0;
}

.public-shell .input-group{
    min-width:0;
}

.public-shell .input-group > .form-control,
.public-shell .input-group > .form-select{
    min-width:0;
}

/* ============================================================
   TABELAS
============================================================ */

.public-shell .table-responsive{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.public-shell .table{
    max-width:100%;
}

/* ============================================================
   IMAGENS / GALERIAS
============================================================ */

.public-shell .swiper,
.public-shell .swiper-wrapper,
.public-shell .swiper-slide{
    min-width:0;
}

.public-shell .swiper img{
    display:block;
    max-width:100%;
}



/* ============================================================
   DESKTOP PEQUENO
============================================================ */

@media(max-width:1199.98px){

    .public-shell .public-header-actions{
        gap:8px;
    }

}

/* ============================================================
   TABLET
============================================================ */

@media(max-width:991.98px){

    .public-shell .navbar > .container{
        gap:12px;
    }

    .public-shell .navbar-brand{
        order:0;
        margin-right:auto;
    }

    .public-shell .public-header-actions{
        order:1;
    }

    .public-shell .navbar-toggler{
        order:2;
        min-width:44px;
        min-height:44px;
        padding:6px;
    }

    .public-shell .navbar-collapse{
        order:3;
        flex-basis:100%;
        width:100%;
    }

    .public-shell .navbar-collapse .nav-link{
        padding:12px;
    }

    .public-shell .navbar-collapse.show{
        max-height:65dvh;
        overflow-y:auto;
        overscroll-behavior:contain;
    }

    .public-shell .auto-layout{
        grid-template-columns:minmax(0,1fr);
    }

    .public-shell .auto-sticky{
        position:static;
    }


}

/* ============================================================
   PUBLICIDADE — TABLET
============================================================ */

@media(max-width:900px){

    .public-ad-showcase{
        grid-template-columns:1fr;
    }

    .public-ad-showcase .ad-vertical{
        max-width:100%;
    }

    .public-ad-showcase .ad-vertical .ad-placeholder,
    .public-ad-showcase .ad-vertical .ad-code-container{
        height:320px;
        min-height:320px;
    }

}

/* ============================================================
   MOBILE / TABLET PEQUENO
============================================================ */

@media(max-width:767.98px){

    .public-global-ad,
    .public-ad-showcase{
        padding-left:12px !important;
        padding-right:12px !important;
    }


}

/* ============================================================
   SMARTPHONE
============================================================ */

@media(max-width:575.98px){

    .public-shell .navbar{
        padding:10px 0;
    }

    .public-shell .navbar > .container{
        gap:8px;
    }

    .public-shell .navbar-brand{
        margin-right:auto;
        gap:6px;
        font-size:1rem;
    }

    .public-shell .navbar-brand img{
        width:32px;
        height:32px;
        border-radius:8px;
    }


}

/* ============================================================
   SMARTPHONE MUITO PEQUENO
============================================================ */

@media(max-width:359.98px){

    .public-shell .navbar-brand{
        flex-basis:calc(100% - 60px);
    }

    .public-shell .navbar-toggler{
        order:0;
    }

    .public-shell .public-header-actions{
        margin-left:auto;
    }


}

/* ============================================================
   REDUCED MOTION
============================================================ */

@media(prefers-reduced-motion:reduce){

    .public-shell *,
    .public-shell *::before,
    .public-shell *::after{
        scroll-behavior:auto !important;
        transition-duration:.01ms !important;
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
    }

}
/* ERGABOX footer — Bootstrap 5 compatible */
.ergabox-footer{
    --footer-bg:#07111f;
    --footer-surface:rgba(255,255,255,.055);
    --footer-border:rgba(255,255,255,.11);
    --footer-text:#aebbd0;
    --footer-heading:#f8fafc;
    --footer-accent:#f7c948;
    position:relative;
    isolation:isolate;
    margin-top:auto;
    padding:72px 0 0;
    overflow:hidden;
    color:var(--footer-text);
    background:linear-gradient(145deg,#050b14 0%,var(--footer-bg) 48%,#102039 100%);
}

.ergabox-footer::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at 8% 5%,rgba(59,130,246,.18),transparent 25%),
        radial-gradient(circle at 92% 45%,rgba(247,201,72,.08),transparent 22%);
}

.footer-main{align-items:flex-start}
.footer-brand{display:inline-flex;align-items:center;gap:13px;color:#fff;text-decoration:none}
.footer-brand:hover{color:#fff}
.footer-brand__mark{width:58px;height:58px;display:grid;place-items:center;border:1px solid var(--footer-border);border-radius:17px;background:rgba(255,255,255,.07);box-shadow:0 12px 30px rgba(0,0,0,.2)}
.footer-brand__mark img{width:46px;height:46px;object-fit:contain}
.footer-brand strong{display:block;font-size:1.25rem;font-weight:850;letter-spacing:.04em;line-height:1.15}
.footer-brand small{display:block;margin-top:4px;color:#8fa2bc;font-size:.74rem;letter-spacing:.05em}
.footer-description{max-width:390px;margin:22px 0 20px;color:var(--footer-text);font-size:.925rem;line-height:1.75}
.footer-trust{display:flex;flex-wrap:wrap;gap:9px}
.footer-trust span{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--footer-border);border-radius:999px;color:#d7e0ed;background:var(--footer-surface);font-size:.75rem;font-weight:600}
.footer-trust i{color:var(--footer-accent);font-size:.9rem}

.footer-heading{position:relative;margin:4px 0 20px;padding-bottom:12px;color:var(--footer-heading);font-size:.84rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.footer-heading::after{content:"";position:absolute;bottom:0;left:0;width:28px;height:2px;border-radius:99px;background:var(--footer-accent)}
.footer-links{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.footer-links a{position:relative;display:inline-flex;padding:7px 0;color:var(--footer-text);font-size:.875rem;text-decoration:none;transition:color .18s ease,transform .18s ease}
.footer-links a::before{content:"";width:0;height:1px;align-self:center;margin-right:0;background:var(--footer-accent);transition:width .18s ease,margin-right .18s ease}
.footer-links a:hover,.footer-links a:focus-visible{color:#fff;transform:translateX(2px)}
.footer-links a:hover::before,.footer-links a:focus-visible::before{width:12px;margin-right:7px}

.footer-contact{display:grid;gap:10px;margin:0;font-style:normal}
.footer-contact>a,.footer-contact>div{display:flex;align-items:center;gap:11px;min-width:0;color:#e4ebf5;text-decoration:none;font-size:.875rem}
.footer-contact__icon{width:40px;height:40px;display:grid;place-items:center;flex:0 0 40px;border:1px solid var(--footer-border);border-radius:12px;color:var(--footer-accent);background:var(--footer-surface)}
.footer-contact small{display:block;margin-bottom:2px;color:#8193ad;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.footer-contact a:hover{color:var(--footer-accent)}
.social-title{margin:20px 0 10px;color:#8193ad;font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.footer-socials{display:flex;flex-wrap:wrap;gap:8px}
.footer-socials a{width:39px;height:39px;display:grid;place-items:center;border:1px solid var(--footer-border);border-radius:11px;color:#dce5f1;background:var(--footer-surface);text-decoration:none;transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease}
.footer-socials a:hover,.footer-socials a:focus-visible{border-color:var(--footer-accent);color:#111827;background:var(--footer-accent);transform:translateY(-2px)}
.footer-socials__disabled{width:39px;height:39px;display:grid;place-items:center;border:1px solid var(--footer-border);border-radius:11px;color:#8193ad;background:var(--footer-surface);cursor:not-allowed;opacity:.65}

.footer-newsletter{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:36px;align-items:center;margin-top:54px;padding:28px;border:1px solid var(--footer-border);border-radius:22px;background:linear-gradient(110deg,rgba(255,255,255,.075),rgba(255,255,255,.035));box-shadow:0 24px 55px rgba(0,0,0,.18);backdrop-filter:blur(8px)}
.footer-newsletter__content{display:flex;align-items:flex-start;gap:16px}
.footer-newsletter__icon{width:50px;height:50px;display:grid;place-items:center;flex:0 0 50px;border-radius:15px;color:#111827;background:var(--footer-accent);font-size:1.3rem}
.footer-eyebrow{display:block;margin-bottom:5px;color:var(--footer-accent);font-size:.67rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.footer-newsletter h2{margin:0;color:#fff;font-size:clamp(1.05rem,2vw,1.3rem);font-weight:780;line-height:1.3}
.footer-newsletter p{margin:7px 0 0;color:#9aabc1;font-size:.82rem;line-height:1.55}
.newsletter-input-group{position:relative;display:flex;align-items:stretch;padding:5px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#fff}
.newsletter-input-icon{display:grid;place-items:center;width:42px;flex:0 0 42px;color:#64748b}
.newsletter-input-group .form-control{min-width:0;border:0;box-shadow:none;padding-left:0;color:#152033;background:transparent;font-size:.9rem}
.newsletter-input-group .form-control::placeholder{color:#94a3b8}
.newsletter-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 17px;border:0;border-radius:10px;color:#111827;background:var(--footer-accent);font-size:.84rem;font-weight:800;white-space:nowrap}
.newsletter-submit:hover,.newsletter-submit:focus-visible{color:#111827;background:#ffd968}
.newsletter-consent{display:flex;align-items:flex-start;gap:9px;margin-top:11px;color:#95a6bb;font-size:.72rem;line-height:1.45;cursor:pointer}
.newsletter-consent .form-check-input{margin-top:2px;flex:0 0 auto;border-color:#7890aa;background-color:transparent}
.newsletter-consent .form-check-input:checked{border-color:var(--footer-accent);background-color:var(--footer-accent)}
.newsletter-consent a{color:#e1e9f4;text-underline-offset:3px}
.newsletter-feedback,.newsletter-error{display:flex;align-items:flex-start;gap:7px;margin:0 0 10px;font-size:.77rem}
.newsletter-feedback--success{padding:9px 11px;border:1px solid rgba(74,222,128,.3);border-radius:9px;color:#bbf7d0;background:rgba(22,163,74,.13)}
.newsletter-error{color:#fde68a}

.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:38px;padding:22px 0;border-top:1px solid var(--footer-border);font-size:.76rem}
.footer-bottom p{margin:0;color:#8092aa}
.footer-bottom nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px 22px}
.footer-bottom a{color:#aebbd0;text-decoration:none}
.footer-bottom a:hover,.footer-bottom a:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:4px}
.ergabox-footer a:focus-visible,.ergabox-footer button:focus-visible,.ergabox-footer input:focus-visible{outline:3px solid rgba(247,201,72,.38);outline-offset:3px}

@media(max-width:991.98px){
    .ergabox-footer{padding-top:56px}
    .footer-newsletter{grid-template-columns:1fr;gap:22px;margin-top:42px}
}

@media(max-width:575.98px){
    .ergabox-footer{padding-top:44px}
    .footer-main{--bs-gutter-y:2.25rem}
    .footer-description{font-size:.875rem}
    .footer-newsletter{margin-top:36px;padding:20px;border-radius:18px}
    .footer-newsletter__content{gap:12px}
    .footer-newsletter__icon{width:44px;height:44px;flex-basis:44px;border-radius:13px}
    .newsletter-input-group{display:grid;grid-template-columns:40px minmax(0,1fr)}
    .newsletter-submit{grid-column:1/-1;width:100%;margin-top:5px}
    .footer-bottom{align-items:flex-start;flex-direction:column;gap:12px;padding:20px 0}
    .footer-bottom nav{justify-content:flex-start}
}

@media(prefers-reduced-motion:reduce){
    .ergabox-footer *{transition:none!important;scroll-behavior:auto!important}
}
