/* Sofia Cooltech — final layout normalization */
html, body { margin:0 !important; padding:0 !important; width:100%; max-width:100%; overflow-x:hidden; }
*, *::before, *::after { box-sizing:border-box; }
body { font-family:Arial, Helvetica, sans-serif !important; color:#1c1a30; }
body, body p, body a, body li, body span, body div, body button, body input, body textarea, body select, body label, body h1, body h2, body h3, body h4, body h5, body h6 { font-family:Arial, Helvetica, sans-serif !important; }
body i, body i::before, body i::after, .fas, .far, .fab, .fa { font-family:"Font Awesome 5 Free","Font Awesome 5 Brands" !important; }

/* Never let legacy floats/positioning move the footer above content. */
#page, main, header, footer, section { float:none !important; clear:both; }
main { display:block !important; position:relative !important; margin:0 !important; padding:0 !important; }
.breadcrumb-header, .sec-hero, .header, .header-carousel { float:none !important; clear:both !important; position:relative !important; margin-top:0 !important; }
.breadcrumb-header { margin-bottom:0 !important; }

/* Stable content containers. */
.container, .container-fluid, .row, [class*="col-"] { min-width:0 !important; }
.row { width:auto !important; }
img, svg, video, iframe { max-width:100% !important; }
img { height:auto; }
h1, h2, h3, h4, h5, h6, p, a, li, span, button, label { max-width:100%; overflow-wrap:anywhere; word-break:normal; }

/* Cards and content boxes must never force horizontal overflow on desktop. */
.card, .box, article, .faq-box, .faq-item, [class*="-card"], [class*="-box"], [class*="-item"] { min-width:0 !important; max-width:100% !important; overflow-wrap:anywhere; }
.card *, .box *, article *, .faq-box *, .faq-item *, [class*="-card"] *, [class*="-box"] *, [class*="-item"] * { max-width:100%; }
.card p, .box p, article p, .faq-box p, .faq-item p { overflow-wrap:anywhere; }

/* Inner-page banner: identical geometry everywhere. */
.breadcrumb-header { min-height:235px !important; display:flex !important; align-items:center !important; overflow:hidden !important; background-size:cover !important; background-position:center !important; }
.breadcrumb-header .container { width:100%; }
.breadcrumb-header .banner { max-width:100%; min-width:0; }
.breadcrumb-header .banner h1 { margin:0 0 14px !important; max-width:900px !important; font-size:clamp(31px,3.5vw,46px) !important; line-height:1.15 !important; }
.breadcrumb-header .banner ul { display:flex !important; flex-wrap:wrap !important; align-items:center; gap:6px 9px; margin:0; padding:0; list-style:none; }
.breadcrumb-header .banner li { max-width:100%; white-space:normal; line-height:1.45; }

/* Location pages. */
.sc-region-wrap { width:100%; margin:0 !important; padding:0 !important; overflow:hidden; }
.sc-region-section { margin:0 !important; }
.sc-region-section .inner { max-width:1180px; margin-left:auto; margin-right:auto; padding-left:15px; padding-right:15px; }
.sc-region-grid { width:100%; min-width:0; }

/* FAQ intentionally follows the service-page FAQ language, not a separate card style. */
.sc-region-faq { padding:70px 0 55px !important; background:#fff !important; }
.sc-region-faq .container { max-width:1180px; }
.sc-region-faq .section-heading { text-align:left !important; margin:0 0 28px !important; }
.sc-region-faq .section-heading h2 { color:#1c1a30 !important; font-size:32px !important; font-weight:600 !important; line-height:1.3 !important; margin:0 0 10px !important; }
.sc-region-faq .section-heading p { color:#555 !important; max-width:900px; margin:0 !important; }
.sc-region-faq .faq-item { position:relative; margin:0 0 20px !important; padding:0 20px !important; background:#fff !important; border:2px solid #ddd !important; border-radius:5px !important; box-shadow:none !important; overflow:hidden !important; }
.sc-region-faq .faq-item h3 { margin:0 !important; padding:18px 42px 18px 0 !important; color:#1c1a30 !important; font-size:17px !important; font-weight:500 !important; line-height:1.45 !important; }
.sc-region-faq .faq-item h3::after { content:'+'; position:absolute; right:20px; top:16px; font-size:20px; line-height:1; color:#1c1a30; }
.sc-region-faq .faq-item p { margin:0 !important; padding:17px 0 18px !important; border-top:2px solid #ddd !important; color:#555 !important; font-size:14px !important; line-height:1.75 !important; }

/* Footer is always the final block; no accidental top spacing/floats. */
.sct-footer { display:block !important; position:relative !important; top:auto !important; right:auto !important; bottom:auto !important; left:auto !important; float:none !important; clear:both !important; width:100% !important; margin:0 !important; padding:0 !important; transform:none !important; }
.sct-footer-main { max-width:1240px; margin:0 auto !important; padding:32px 22px 22px !important; }
.sct-footer-grid { display:grid !important; grid-template-columns:1.5fr 1fr 1fr 1.2fr !important; gap:28px !important; align-items:start !important; }
.sct-footer-grid > * { min-width:0 !important; }
.sct-footer-brand p { max-width:390px !important; margin:0 !important; }
.sct-footer-links, .sct-contact-list { margin:0 !important; padding:0 !important; list-style:none !important; }
.sct-footer-links li, .sct-contact-list li { margin:0 0 5px !important; padding:0 !important; }
.sct-footer-links a, .sct-contact-list a { max-width:100%; overflow-wrap:anywhere; }
.sct-footer-bottom { margin:0 !important; }
.sct-footer-bottom-inner { max-width:1240px; margin:0 auto !important; }

/* Existing service-page FAQ blocks: keep text inside their boxes. */
.faq .faq-box { width:100%; max-width:100%; overflow:hidden; }
.faq .faq-box .click { max-width:100%; white-space:normal; overflow-wrap:anywhere; padding-right:48px; }
.faq .faq-box .about-text { max-width:calc(100% - 40px); overflow-wrap:anywhere; }

@media (max-width:1199px){
  .sc-header-inner { max-width:calc(100% - 16px) !important; }
  .sc-footer-grid { grid-template-columns:1.4fr 1fr 1fr !important; }
  .sct-footer-brand { grid-column:span 3; }
}
@media (max-width:991px){
  .breadcrumb-header { min-height:215px !important; }
  .sc-region-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sc-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .sct-footer-brand { grid-column:span 2; }
}
@media (max-width:767px){
  .breadcrumb-header { min-height:190px !important; }
  .breadcrumb-header .banner h1 { font-size:30px !important; }
  .sc-region-grid { grid-template-columns:1fr !important; }
  .sc-region-faq { padding:52px 0 42px !important; }
  .sc-region-faq .section-heading h2 { font-size:27px !important; }
  .sct-footer-main { padding:28px 16px 20px !important; }
  .sc-footer-grid, .sct-footer-grid { grid-template-columns:1fr !important; gap:22px !important; }
  .sct-footer-brand { grid-column:auto; }
}

/* Exact service-page FAQ visual language */
.sc-region-faq .faq-item{border:2px solid #ddd!important;border-radius:5px!important;background:#fff!important;padding:0 20px!important;margin-bottom:30px!important;box-shadow:none!important}
.sc-region-faq .faq-item h3{position:relative;color:#1C1A30!important;background:transparent!important;border:0!important;padding:18px 40px 18px 0!important;margin:0!important;font-size:17px!important;font-weight:500!important;line-height:1.45!important}
.sc-region-faq .faq-item h3:after{content:'+';right:0;top:16px;position:absolute;color:#1C1A30;font-size:16px;font-weight:600;line-height:20px}
.sc-region-faq .faq-item p{border:0!important;border-top:2px solid #DDD!important;border-radius:0!important;padding:18px 0 0!important;margin:0 0 20px!important;font-size:14px!important;line-height:1.7!important;color:#555!important}
.sc-region-faq .section-heading{text-align:left!important;margin-bottom:30px!important}
.sc-region-faq .section-heading h2{font-size:32px!important;color:#1C1A30!important;font-weight:600!important;margin:0 0 10px!important}
@media(max-width:767px){.sc-region-faq .section-heading h2{font-size:27px!important}.sc-region-faq .faq-item{margin-bottom:22px!important}.sc-region-faq .faq-item h3{padding-right:34px!important}}
