/* Brewingleads SEO corrections - Oct 2026 */
/* Home page: section titles moved from h1 to h2 so the page has a single h1; keep the original look. */
h2.sec-h1-style{
    position: relative;
    color:#222222;
    font-weight: 700;
    line-height: 1.3em;
    margin-top:5px;
    font-size: 32px;
}
.sec-title.light h2.sec-h1-style{ color:#ffffff; }
@media (max-width: 767px){ h2.sec-h1-style{ font-size: 28px; } }

/* Home page main heading (replaces the "About Us" label above the introduction). */
h1.home-h1{
    font-size: 30px;
    line-height: 1.3em;
    font-weight: 700;
    color: #1c63b8;
    margin-bottom: 15px;
}
@media (max-width: 576px){ h1.home-h1{ font-size: 24px; } }

/* ---------- Landing pages (drawing-sheet design) ---------- */
.lp{ --navy:#3e4095; --action:#1c63b8; --cyan:#00aff0; --ink:#1e2129; --steel:#59606b; --rule:#d5dae1; --paper:#ffffff; --plate:#f2f4f7;
     color:var(--ink); font-size:17px; line-height:1.7; }
.lp h1, .lp h2, .lp .tb-title{ font-family:'Barlow Condensed', 'Arial Narrow', sans-serif; color:var(--navy); letter-spacing:.005em; }
.lp h1{ font-size:56px; line-height:1.02; font-weight:700; margin:0 0 20px; }
.lp h2{ font-size:36px; line-height:1.1; font-weight:600; margin:0 0 18px; }
.lp p{ max-width:62ch; color:var(--ink); }
.lp .muted{ color:var(--steel); }
.lp-wrap{ max-width:1200px; margin:0 auto; padding:0 20px; }
.lp-block{ padding:72px 0; }
.lp-block + .lp-block{ border-top:1px solid var(--rule); }

/* Hero */
.lp-hero{ padding:56px 0 64px; }
.lp-hero-grid{ display:grid; grid-template-columns: 5fr 7fr; gap:48px; align-items:center; }
.lp-hero .lead{ font-size:19px; color:var(--steel); margin-bottom:28px; }
.lp-actions{ display:flex; flex-wrap:wrap; gap:12px; }
.lp-btn{ display:inline-block; padding:13px 24px; font-weight:600; font-size:16px; border-radius:4px; border:2px solid var(--action); line-height:1.2; cursor:pointer; text-decoration:none; }
.lp-btn.solid{ background:var(--action); color:#fff; }
.lp-btn.line{ background:transparent; color:var(--action); }
.lp-btn:hover{ text-decoration:none; filter:brightness(.92); }
.lp-btn.solid:hover{ color:#fff; } .lp-btn.line:hover{ color:var(--action); }
.lp-btn:focus-visible, .lp summary:focus-visible, .lp a:focus-visible{ outline:3px solid var(--cyan); outline-offset:3px; }

/* Drawing sheet: photo inside a framed sheet, title block below the photo (no text over the image) */
.sheet{ position:relative; border:2px solid var(--navy); padding:10px; background:var(--paper); }
.sheet:before{ content:""; position:absolute; inset:4px; border:1px solid var(--cyan); pointer-events:none; }
.sheet img{ display:block; width:100%; height:auto; aspect-ratio: 16 / 10; object-fit:cover; object-position:center; }
.titleblock{ width:100%; margin-top:10px; background:#fff; border:2px solid var(--navy); border-collapse:collapse; font-size:14px; line-height:1.35; table-layout:fixed; }
.titleblock th, .titleblock td{ border:1px solid var(--navy); padding:7px 10px; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.titleblock th{ width:30%; font-weight:600; color:var(--steel); background:var(--plate); }
.titleblock td{ color:var(--ink); font-weight:600; }
.titleblock .tb-title{ font-size:20px; font-weight:700; color:var(--navy); background:#fff; }

/* Spec table */
.lp-spec-grid{ display:grid; grid-template-columns: 4fr 8fr; gap:48px; }
.spec{ width:100%; border-collapse:collapse; font-size:16px; }
.spec th{ white-space:nowrap; text-align:left; font-weight:600; color:var(--steel); padding:10px 12px; border-bottom:2px solid var(--navy); }
.spec td{ padding:14px 12px; border-bottom:1px solid var(--rule); vertical-align:top; }
.spec td:first-child{ font-weight:700; color:var(--navy); width:30%; }
.spec td:last-child{ color:var(--steel); white-space:nowrap; }

/* Work photos: captions sit below each photo */
.contact-sheet{ display:grid; grid-template-columns: 2fr 1fr 1fr; gap:16px; margin-top:8px; align-items:start; }
.contact-sheet figure{ margin:0; }
.contact-sheet img{ width:100%; aspect-ratio: 4 / 3; object-fit:cover; display:block; background:var(--plate); }
.contact-sheet.n5 figure:first-child{ grid-row: span 2; align-self:stretch; display:flex; flex-direction:column; }
.contact-sheet.n5 figure:first-child img{ aspect-ratio:auto; flex:1 1 0; min-height:0; height:auto; }
.contact-sheet.n3{ grid-template-columns: repeat(3, 1fr); }
.contact-sheet figcaption{ font-size:15px; font-weight:600; color:var(--ink); padding:8px 2px 0; line-height:1.3; }

/* Order sequence */
.sequence{ list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:0; counter-reset:seq; }
.sequence li{ counter-increment:seq; position:relative; padding:34px 18px 0 0; border-top:2px solid var(--navy); font-size:16px; color:var(--ink); }
.sequence li:before{ content:counter(seq); position:absolute; top:-15px; left:0; width:28px; height:28px; border-radius:50%; background:var(--navy); color:#fff; font-size:14px; font-weight:700; text-align:center; line-height:28px; }

/* Areas + proof */
.lp-two{ display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.plain-list{ list-style:none; padding:0; margin:0; }
.plain-list li{ padding:10px 0; border-bottom:1px solid var(--rule); }
.plain-list li strong{ color:var(--navy); }

/* FAQ */
.faq details{ border-bottom:1px solid var(--rule); }
.faq details:first-of-type{ border-top:1px solid var(--rule); }
.faq summary{ list-style:none; cursor:pointer; padding:18px 40px 18px 0; font-weight:600; font-size:18px; color:var(--ink); position:relative; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:after{ content:"+"; position:absolute; right:6px; top:14px; font-size:26px; color:var(--action); font-weight:400; }
.faq details[open] summary:after{ content:"\2212"; }
.faq details p{ margin:0 0 18px; color:var(--steel); }

/* Quote block: same drawing-sheet frame as the hero */
.quote-sheet{ padding:44px 48px; }
.quote-grid{ display:grid; grid-template-columns: 7fr 5fr; gap:40px; align-items:center; }
.quote-sheet p{ margin:0; }
.lp-call{ margin:16px 0 0; font-size:16px; color:var(--steel); }
.lp-call a{ color:var(--action); font-weight:600; text-decoration:underline; text-underline-offset:3px; }

@media (max-width: 991px){
  .lp h1{ font-size:42px; } .lp h2{ font-size:30px; }
  .lp-hero-grid, .lp-spec-grid, .lp-two, .quote-grid{ grid-template-columns:1fr; gap:28px; }
  .sequence{ grid-template-columns:1fr; } .sequence li{ border-top:0; border-left:2px solid var(--navy); padding:0 0 24px 32px; }
  .sequence li:before{ left:-15px; top:-2px; }
  .quote-sheet{ padding:28px 22px; }
}
@media (max-width: 600px){
  .lp{ font-size:16px; } .lp h1{ font-size:34px; } .lp h2{ font-size:26px; }
  .lp-block{ padding:48px 0; }
  .contact-sheet, .contact-sheet.n3{ grid-template-columns:1fr 1fr; gap:12px; }
  .contact-sheet.n5 figure:first-child{ grid-column: span 2; grid-row:auto; }
  .contact-sheet.n5 figure:first-child img{ aspect-ratio:4 / 3; flex:none; }
  .contact-sheet.n3 figure:first-child{ grid-column: span 2; }
  .contact-sheet figcaption{ font-size:14px; }
  .spec td:last-child{ white-space:normal; }
  .spec th:nth-child(2), .spec td:nth-child(2){ display:none; }
  .spec td:first-child{ width:62%; }
}

/* ---------- Accessibility fixes for the shared header/footer (Oct 2026) ---------- */
.footer-bottom .copyright, .footer-bottom .copyright a{ color:#ffffff !important; }
.footer-bottom .copyright a{ text-decoration:underline; }
input::placeholder, textarea::placeholder{ color:#6b7079; opacity:1; }
a:focus-visible, button:focus-visible{ outline:3px solid #00aff0; outline-offset:2px; }
.contact-page-section input, .contact-page-section textarea, .contact-page-section select{ color:#2b2f36 !important; }
.brochure-btn{ text-transform:none !important; font-size:15px; }

/* =====================================================================
   Site-wide components (Brewingleads, Oct 2026 photo & polish pass)
   Brand: navy #3e4095, action blue #1c63b8, cyan #00aff0 (from the TPEA card)
   ===================================================================== */
:root{ --tp-navy:#3e4095; --tp-navy-d:#22245e; --tp-action:#1c63b8; --tp-cyan:#00aff0; --tp-ink:#1e2129; --tp-steel:#59606b; --tp-rule:#dde2e8; --tp-plate:#f3f5f8; }
.tp-wrap{ max-width:1200px; margin:0 auto; padding:0 20px; }
.tp-kicker, .tp-eyebrow{ font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--tp-action); margin:0 0 10px; }
.tp-h2{ font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:42px; line-height:1.08; font-weight:700; color:var(--tp-navy); margin:0 0 16px; }
.tp-h3{ font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:30px; line-height:1.15; font-weight:700; color:var(--tp-navy); margin:48px 0 18px; scroll-margin-top:110px; }
.tp-count{ font-family:inherit; font-size:15px; font-weight:600; color:var(--tp-steel); margin-left:8px; letter-spacing:0; }
.tp-head{ text-align:center; margin-bottom:36px; }
.tp-center{ text-align:center; margin-top:36px; }
.tp-lead{ font-size:18px; color:var(--tp-steel); max-width:70ch; }

/* Buttons */
.tp-btn{ display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 26px; font-size:16px; font-weight:600; line-height:1.2; border-radius:4px; border:2px solid var(--tp-action); cursor:pointer; text-decoration:none; transition:background-color .15s, color .15s, border-color .15s; }
.tp-btn--solid{ background:var(--tp-action); color:#fff; }
.tp-btn--solid:hover{ background:#164f94; border-color:#164f94; color:#fff; text-decoration:none; }
.tp-btn--line{ background:#fff; color:var(--tp-action); }
.tp-btn--line:hover{ background:var(--tp-action); color:#fff; text-decoration:none; }
.tp-btn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.85); }
.tp-btn--ghost:hover{ background:#fff; color:var(--tp-navy-d); text-decoration:none; }
.tp-btn:focus-visible, .tp-hero__dot:focus-visible, .tp-card a:focus-visible, .tp-gallery a:focus-visible, .tp-filter a:focus-visible{ outline:3px solid var(--tp-cyan); outline-offset:3px; }

/* Hero */
.tp-hero{ position:relative; min-height:clamp(520px, 72vh, 720px); display:flex; align-items:center; overflow:hidden; background:var(--tp-navy-d); color:#fff; isolation:isolate; }
.tp-hero__media, .tp-hero__slide{ position:absolute; inset:0; margin:0; }
.tp-hero__slide{ opacity:0; transition:opacity 1s ease; }
.tp-hero__slide.is-active{ opacity:1; }
.tp-hero__slide img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.tp-hero__shade{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(19,21,58,.92) 0%, rgba(19,21,58,.80) 38%, rgba(19,21,58,.35) 68%, rgba(19,21,58,.10) 100%); }
.tp-hero__inner{ position:relative; z-index:1; width:100%; padding-top:64px; padding-bottom:96px; }
.tp-hero .tp-eyebrow{ color:#7fd8ff; }
.tp-hero__title{ font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:clamp(38px, 5.2vw, 64px); line-height:1.02; font-weight:700; color:#fff; max-width:15ch; margin:0 0 18px; text-shadow:0 1px 2px rgba(0,0,0,.25); }
.tp-hero__lead{ font-size:19px; line-height:1.6; color:#e8eaf6; max-width:52ch; margin:0 0 30px; }
.tp-hero__actions{ display:flex; flex-wrap:wrap; gap:12px; }
.tp-hero__caption{ position:absolute; z-index:1; right:20px; bottom:22px; margin:0; max-width:46%; font-size:13px; color:#fff; text-align:right; }
.tp-hero__caption span{ display:inline-block; background:rgba(19,21,58,.72); padding:6px 10px; border-left:3px solid var(--tp-cyan); }
.tp-hero__dots{ position:absolute; z-index:1; left:50%; transform:translateX(-50%); bottom:24px; display:flex; gap:6px; }
.tp-hero__dot{ width:44px; height:24px; padding:0; border:0; background:transparent; cursor:pointer; position:relative; }
.tp-hero__dot:before{ content:""; position:absolute; left:6px; right:6px; top:10px; height:4px; border-radius:2px; background:rgba(255,255,255,.45); }
.tp-hero__dot.is-active:before{ background:var(--tp-cyan); }
@media (prefers-reduced-motion: reduce){ .tp-hero__slide{ transition:none; } }
@media (max-width: 991px){ .tp-hero__dots{ left:20px; transform:none; } }
@media (max-width: 767px){
  .tp-hero{ min-height:600px; align-items:flex-end; }
  .tp-hero__shade{ background:linear-gradient(180deg, rgba(19,21,58,.20) 0%, rgba(19,21,58,.55) 35%, rgba(19,21,58,.93) 62%, rgba(19,21,58,.96) 100%); }
  .tp-hero__inner{ padding-top:180px; padding-bottom:84px; }
  .tp-hero__lead{ font-size:17px; margin-bottom:24px; }
  .tp-hero__actions .tp-btn{ flex:1 1 100%; }
  .tp-hero__caption{ display:none; }
  .tp-hero__dots{ bottom:20px; }
}

/* About (home) */
.tp-about{ padding:88px 0; }
.tp-about__grid{ display:grid; grid-template-columns: 1fr 1fr; gap:56px; align-items:center; }
.tp-about__photo{ margin:0; }
.tp-about__photo img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block; border-radius:4px; }
.tp-about__photo figcaption, .tp-gallery__item figcaption{ font-size:14px; color:var(--tp-steel); margin-top:10px; line-height:1.4; }
.tp-about__text p{ font-size:17px; line-height:1.7; color:var(--tp-ink); max-width:60ch; }
.tp-ticks{ list-style:none; padding:0; margin:20px 0 28px; }
.tp-ticks li{ position:relative; padding-left:30px; margin-bottom:10px; font-weight:600; color:var(--tp-ink); }
.tp-ticks li:before{ content:""; position:absolute; left:2px; top:5px; width:16px; height:9px; border-left:3px solid var(--tp-action); border-bottom:3px solid var(--tp-action); transform:rotate(-45deg); }
@media (max-width: 991px){ .tp-about{ padding:64px 0; } .tp-about__grid{ grid-template-columns:1fr; gap:32px; } .tp-h2{ font-size:34px; } }

/* Services (home) */
.tp-services{ padding:88px 0; background:var(--tp-plate); }
.tp-services__grid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px; }
.tp-card{ background:#fff; border:1px solid var(--tp-rule); border-radius:6px; overflow:hidden; display:flex; flex-direction:column; transition:box-shadow .2s, transform .2s; }
.tp-card:hover{ box-shadow:0 10px 30px rgba(30,33,41,.12); transform:translateY(-2px); }
.tp-card__img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block; }
.tp-card__body{ padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.tp-card__title{ font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:25px; line-height:1.12; font-weight:700; color:var(--tp-navy); margin:0 0 8px; }
.tp-card__desc{ font-size:15px; line-height:1.55; color:var(--tp-steel); margin:0 0 14px; }
.tp-card__links{ list-style:none; padding:0; margin:0 0 16px; border-top:1px solid var(--tp-rule); }
.tp-card__links li{ border-bottom:1px solid var(--tp-rule); }
.tp-card__links a{ display:block; padding:9px 0; font-size:15px; color:var(--tp-ink); text-decoration:none; }
.tp-card__links a:hover{ color:var(--tp-action); padding-left:4px; transition:padding .15s; }
.tp-card__more{ margin-top:auto; font-weight:700; color:var(--tp-action); text-decoration:none; }
.tp-card__more:hover{ text-decoration:underline; color:var(--tp-action); }
@media (max-width: 1199px){ .tp-services__grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width: 575px){ .tp-services{ padding:64px 0; } .tp-services__grid{ grid-template-columns:1fr; } }

/* Gallery (home + gallery page) */
.tp-gallery{ padding:88px 0; }
.tp-gallery--page{ padding:56px 0 88px; }
.tp-gallery__grid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:20px; }
.tp-gallery__grid--3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.tp-gallery__item{ margin:0; }
.tp-gallery__item img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block; border-radius:4px; background:var(--tp-plate); }
.tp-gallery__item a{ display:block; overflow:hidden; border-radius:4px; }
.tp-gallery__item a img{ transition:transform .3s; }
.tp-gallery__item a:hover img{ transform:scale(1.03); }
.tp-filter{ display:flex; flex-wrap:wrap; gap:10px; margin:20px 0 8px; }
.tp-filter a{ display:inline-block; padding:9px 16px; border:1px solid var(--tp-rule); border-radius:4px; color:var(--tp-navy); font-weight:600; text-decoration:none; background:#fff; }
.tp-filter a:hover{ border-color:var(--tp-action); color:var(--tp-action); }
.tp-cta-band{ margin-top:56px; padding:28px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; border:2px solid var(--tp-navy); border-radius:6px; background:var(--tp-plate); }
.tp-cta-band p{ margin:0; font-size:18px; color:var(--tp-ink); max-width:60ch; }
@media (max-width: 991px){ .tp-gallery__grid, .tp-gallery__grid--3{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width: 575px){ .tp-gallery{ padding:64px 0; } .tp-gallery__grid, .tp-gallery__grid--3{ gap:14px; } }
@media (max-width: 420px){ .tp-gallery__grid--3{ grid-template-columns:1fr; } }

/* Inner page title band: real workshop photo under a navy wash (the theme pointed at a missing stock image) */
.page-title{ background-image:url(../images/web/page-title-1920.webp) !important; background-attachment:scroll !important; background-size:cover; background-position:center; padding:64px 0 60px !important; }
.page-title:before{ background-color:rgba(30,32,84,.86) !important; }

/* Client logo strip: keep logos a sensible size on phones */
.clients-section .image-box img{ max-height:64px; width:auto !important; max-width:100%; margin:0 auto; object-fit:contain; }

/* Hero heading width tuned after review (3-4 lines on desktop) */
.tp-hero__title{ max-width:19ch; }
@media (max-width: 767px){
  .tp-hero__shade{ background:linear-gradient(180deg, rgba(19,21,58,.30) 0%, rgba(19,21,58,.78) 24%, rgba(19,21,58,.93) 42%, rgba(19,21,58,.96) 100%); }
  .tp-hero .tp-eyebrow{ font-size:12px; letter-spacing:.08em; }
}
/* Floating contact buttons: bottom-right, out of the way of page content */
.fixed-whatsapp{ left:auto !important; right:16px; bottom:16px !important; }
.fixed-whatsapp .fa-whatsapp{ padding:12px 13px; font-size:30px; box-shadow:0 4px 12px rgba(0,0,0,.25); }
.fixed-phone{ bottom:88px !important; right:21px !important; }
/* Breadcrumb on the dark title band: readable current-page text */
.page-title .page-breadcrumb li, .page-title .page-breadcrumb li a{ color:#fff; }
.page-title .page-breadcrumb li:last-child{ color:#9fdcff; }
/* Counter labels changed from h5 to p (heading order); keep the same look */
.fact-counter .column p.counter-title{ display:table; margin-left:auto; margin-right:auto; font-size:18px; line-height:1.4; font-family:'Poppins',sans-serif; margin-bottom:0; }

/* Service-page sidebar: show the full list (the theme clipped it in an 800px scroll box) */
.categories-widget{ height:auto !important; overflow:visible !important; }
.blog-cat-two li{ margin-bottom:6px !important; }
.blog-cat-two li a{ border-radius:4px !important; border:1px solid var(--tp-rule) !important; padding:10px 14px 10px 16px !important; font-size:15px !important; font-weight:600 !important; line-height:1.35; }
.blog-cat-two li a:before{ display:none !important; }
.blog-cat-two li a:hover, .blog-cat-two li a[aria-current="page"]{ background:var(--tp-action) !important; border-color:var(--tp-action) !important; color:#fff !important; }
@media (max-width: 991px){
  .blog-cat-two{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; }
  .blog-cat-two li{ margin:0 !important; }
  .blog-cat-two li a{ height:100%; font-size:14px !important; }
}
/* Justified body text leaves gaps between words on phones; align left there */
@media (max-width: 767px){ .lower-content .text, .inner-content .text, .about-section .text{ text-align:left !important; } }
/* Mobile call button (icon class was missing, so it showed as a small dot) */
.fixed-phone{ padding:0 !important; background:var(--tp-action) !important; right:16px !important; bottom:84px !important; border-radius:50% !important; box-shadow:0 4px 12px rgba(0,0,0,.25) !important; }
.fixed-phone a{ display:flex; width:54px; height:54px; align-items:center; justify-content:center; color:#fff; text-decoration:none; }
.fixed-phone .fa{ font-size:24px !important; padding:0 !important; margin:0 !important; }
/* Gallery: two columns on phones (one column only on very narrow screens) */
@media (max-width: 420px){ .tp-gallery__grid--3{ grid-template-columns:repeat(2, minmax(0,1fr)); } .tp-gallery__item figcaption{ font-size:13px; } }
@media (max-width: 340px){ .tp-gallery__grid--3{ grid-template-columns:1fr; } }

/* =====================================================================
   Header (rebuilt Oct 2026): logo | Home About Services Clients Contact | Get a Quote
   One row, every item on the same centre line. Gallery sits inside Services.
   ===================================================================== */
.main-header .header-lower{ background:#fff; border-bottom:1px solid var(--tp-rule); }
.main-header .nav-outer{ border-bottom:0 !important; padding:0 !important; }
.main-header .side-curve, .main-header .header-lower .outer-box{ display:none !important; }
.main-menu .navigation > li > a:after{ display:none !important; }

/* Desktop + tablet landscape/portrait (768px and up) */
@media (min-width: 768px){
  .main-header .header-lower .auto-container-fluid{ max-width:1230px; margin:0 auto; padding:0 15px; }
  .main-header .header-lower .nav-outer, .sticky-header .auto-container{ display:flex; align-items:center; justify-content:space-between; gap:32px; }
  .main-header .header-lower .nav-outer:before, .main-header .header-lower .nav-outer:after,
  .sticky-header .auto-container:before, .sticky-header .auto-container:after{ display:none; }
  .main-header .header-lower .logo-box, .sticky-header .logo, .sticky-header .right-col{ float:none !important; padding:0 !important; margin:0 !important; }
  .main-header .header-lower .logo img{ display:block; width:248px; height:auto; margin:0 !important; }
  .main-header .main-menu, .sticky-header .main-menu{ float:none; margin:0; }
  .main-header .main-menu .navbar-collapse, .sticky-header .main-menu .navbar-collapse{ float:none; display:block !important; margin:0 !important; }
  .main-menu .navigation{ display:flex !important; align-items:center; gap:34px; float:none; }
  .main-menu .navigation > li, .sticky-header .main-menu .navigation > li{ float:none; margin:0 !important; padding:0; }
  .main-menu .navigation > li > a{ padding:30px 0 !important; font-size:16px !important; font-weight:500; line-height:20px; color:var(--tp-ink) !important; white-space:nowrap; }
  .sticky-header .main-menu .navigation > li > a{ padding:22px 0 !important; color:var(--tp-ink) !important; }
  .main-menu .navigation > li.dropdown > a{ padding-right:16px !important; }
  .main-menu .navigation > li.dropdown > a:before{ line-height:20px; top:50%; transform:translateY(-50%); font-size:13px; color:var(--tp-steel); }
  /* underline marks the hovered / current page */
  .main-menu .navigation > li:not(.nav-enquiry) > a{ background-image:linear-gradient(var(--tp-action), var(--tp-action)); background-repeat:no-repeat; background-size:0 2px; background-position:0 calc(100% - 22px); transition:background-size .25s ease, color .2s ease !important; }
  .sticky-header .main-menu .navigation > li:not(.nav-enquiry) > a{ background-position:0 calc(100% - 15px); }
  .main-menu .navigation > li:not(.nav-enquiry):hover > a, .main-menu .navigation > li.current > a{ color:var(--tp-navy) !important; background-size:100% 2px; }
  .main-menu .navigation > li.dropdown:hover > a{ background-size:calc(100% - 16px) 2px; }
  .main-menu .navigation > li.nav-enquiry{ margin-left:6px !important; }
  .sticky-header .logo img{ display:block; width:200px; max-width:none; height:auto; }
  .sticky-header{ border-bottom:0; box-shadow:0 2px 14px rgba(30,33,41,.10); }
  .sticky-header .auto-container{ max-width:1230px; padding:0 15px; }
}
/* Laptops 992-1199 and tablets 768-991: tighter spacing, same single row */
@media (min-width: 992px) and (max-width: 1199px){
  .main-header .header-lower .logo img{ width:214px; }
  .main-menu .navigation{ gap:24px; }
}
@media (min-width: 768px) and (max-width: 991px){
  .main-header .header-lower .auto-container-fluid, .sticky-header .auto-container{ padding:0 20px; }
  .main-header .header-lower .nav-outer, .sticky-header .auto-container{ gap:16px; }
  .main-header .header-lower .logo img{ width:176px; }
  .sticky-header .logo img{ width:160px; }
  .main-menu .navigation{ gap:16px; }
  .main-menu .navigation > li > a{ font-size:15px !important; }
  .main-menu .navigation > li.nav-enquiry{ margin-left:0 !important; }
  .tp-quote-btn{ padding:0 14px !important; font-size:14px !important; }
}

/* Get a Quote button */
.tp-quote-btn{ display:inline-flex; align-items:center; justify-content:center; height:42px; padding:0 20px; margin:0; border:0; border-radius:4px; background:var(--tp-action); color:#fff; font-size:15px; font-weight:600; letter-spacing:.01em; line-height:1; white-space:nowrap; cursor:pointer; transition:background-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.tp-quote-btn:hover{ background:#164f94; box-shadow:0 6px 16px rgba(28,99,184,.28); transform:translateY(-1px); }
.tp-quote-btn:active{ transform:none; box-shadow:none; }

/* Services dropdown (desktop) */
@media (min-width: 768px){
  .main-menu .navigation > li > ul, .main-menu .navigation > li > ul > li > ul{ border:1px solid var(--tp-rule) !important; border-top:3px solid var(--tp-action) !important; box-shadow:0 14px 34px rgba(30,33,41,.14); border-radius:0 0 4px 4px; height:auto !important; overflow:visible !important; padding:6px 0; background:#fff; }
  .main-menu .navigation > li > ul{ width:300px; left:-20px; }
  .main-menu .navigation > li > ul > li > ul{ width:270px; top:-9px; }
  .main-menu .navigation > li > ul > li, .main-menu .navigation > li > ul > li > ul > li{ border-bottom:0 !important; }
  .main-menu .navigation > li > ul > li > a, .main-menu .navigation > li > ul > li > ul > li > a{ padding:10px 20px !important; font-size:15px !important; line-height:1.35 !important; color:var(--tp-ink) !important; font-weight:500; background:#fff; transition:background-color .15s, color .15s, padding .15s; }
  .main-menu .navigation > li > ul > li:hover > a, .main-menu .navigation > li > ul > li > ul > li:hover > a{ background:var(--tp-plate) !important; color:var(--tp-action) !important; padding-left:24px !important; }
  .main-menu .navigation > li > ul > li.dropdown > a:after{ display:block !important; right:16px; color:var(--tp-steel); }
  .main-menu .navigation > li > ul > li.nav-gallery-link{ margin-top:6px; padding-top:6px; border-top:1px solid var(--tp-rule); }
  .main-menu .navigation > li > ul > li.nav-gallery-link > a{ color:var(--tp-action) !important; font-weight:600; }
  /* on laptops the second-level flyout opens to the left when there is no room */
  .main-menu .navigation > li > ul > li > ul{ left:100%; }
}

/* Phone menu (under 768px): white panel, clear rows */
@media (max-width: 767px){
  .main-header .header-lower .auto-container-fluid{ padding:0 16px; }
  .main-header .header-lower .nav-outer{ position:relative; }
  .main-header .header-lower .logo-box{ float:none !important; display:flex; align-items:center; height:72px; padding:0 !important; }
  .main-header .header-lower .logo img{ display:block; width:196px; height:auto; margin:0 !important; }
  .main-header .header-lower .main-menu{ position:static; float:none; }
  .main-header .header-lower .main-menu .navbar-header{ position:absolute; top:14px; right:0; width:auto; padding:0; }
  .main-header .header-lower .main-menu .navbar-collapse{ margin:0 0 14px !important; }
  .main-header .navbar-collapse{ max-height:calc(100vh - 96px) !important; max-height:calc(100dvh - 96px) !important; height:auto !important; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .main-header .main-menu .navbar-collapse > .navigation{ background:#fff !important; border:1px solid var(--tp-rule); border-radius:6px; overflow:hidden; box-shadow:0 12px 30px rgba(30,33,41,.12); }
  .main-header .main-menu .navbar-collapse > .navigation > li{ border-top:1px solid var(--tp-rule) !important; border-bottom:0 !important; background:#fff !important; }
  .main-header .main-menu .navbar-collapse > .navigation > li:first-child{ border-top:0 !important; }
  .main-header .main-menu .navbar-collapse > .navigation > li > a,
  .main-header .main-menu .navbar-collapse > .navigation > li > ul > li > a,
  .main-header .main-menu .navbar-collapse > .navigation > li > ul > li > ul > li > a{ color:var(--tp-ink) !important; background:transparent !important; font-size:17px !important; font-weight:500; padding:14px 18px !important; line-height:22px !important; }
  .main-header .main-menu .navbar-collapse > .navigation > li > ul > li > a{ font-size:16px !important; padding-left:30px !important; }
  .main-header .main-menu .navbar-collapse > .navigation > li > ul > li > ul > li > a{ font-size:15px !important; padding-left:42px !important; color:var(--tp-steel) !important; }
  .main-header .main-menu .navbar-collapse > .navigation > li > ul,
  .main-header .main-menu .navbar-collapse > .navigation > li > ul > li > ul{ background:var(--tp-plate) !important; border:0 !important; height:auto !important; overflow:visible !important; }
  .main-header .main-menu .navbar-collapse > .navigation > li > ul > li,
  .main-header .main-menu .navbar-collapse > .navigation > li > ul > li > ul > li{ border-top:1px solid var(--tp-rule) !important; border-bottom:0 !important; background:transparent !important; }
  .main-header .main-menu .navbar-collapse > .navigation > li.current > a{ color:var(--tp-action) !important; font-weight:600; }
  .main-header .main-menu .navigation li .dropdown-btn{ top:4px; right:8px; width:44px; height:44px; line-height:44px; border:0 !important; background:transparent !important; color:var(--tp-navy) !important; font-size:20px; }
  .main-header .main-menu .navigation li li .dropdown-btn{ top:2px; }
  .main-header .main-menu .navbar-collapse > .navigation > li.nav-enquiry{ padding:14px 18px 16px !important; }
  .main-header .main-menu .navbar-collapse > .navigation > li.nav-enquiry .tp-quote-btn{ width:100%; height:48px; font-size:16px; }
  .main-header .main-menu .navbar-header .navbar-toggler{ border:1px solid var(--tp-rule) !important; border-radius:4px; width:46px; height:44px; margin:0 !important; padding:0 !important; display:flex !important; flex-direction:column; align-items:center; justify-content:center; gap:5px; background:#fff; }
  .main-header .main-menu .navbar-header .navbar-toggler .icon-bar{ display:block; width:22px !important; height:2px !important; margin:0 !important; border-radius:1px; background:var(--tp-navy) !important; }
}
/* Tablets and phones: the theme hides its scrolled header below 1024px, so keep the main header pinned instead */
@media (max-width: 1023px){
  .main-header{ position:-webkit-sticky; position:sticky; top:0; z-index:1000; background:#fff; transition:box-shadow .25s ease; }
  .main-header.fixed-header{ box-shadow:0 2px 14px rgba(30,33,41,.12); }
}
/* scrolled (desktop) header: show the Services arrow like the main header */
.sticky-header .main-menu .navigation > li.dropdown > a:before{ display:block !important; }
/* The theme's overflow:hidden on .page-wrapper stops the pinned header from sticking; clip does the same job without that side effect */
@media (max-width: 1023px){
  .page-wrapper{ overflow:visible !important; }
  @supports (overflow: clip){ .page-wrapper{ overflow-x:clip !important; } }
  @supports not (overflow: clip){ html, body{ overflow-x:hidden; } }
}

/* =====================================================================
   Site-wide polish (Oct 2026, second pass)
   ===================================================================== */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body{ color:var(--tp-ink) !important; text-rendering:optimizeLegibility; }
a, button{ -webkit-tap-highlight-color:rgba(28,99,184,.15); }
img{ max-width:100%; }
::selection{ background:#cfe2ff; color:var(--tp-ink); }
/* No justified paragraphs anywhere (uneven word gaps) */
[style*="text-align:justify"], [style*="text-align: justify"]{ text-align:left !important; }
.tp-head--left{ text-align:left; max-width:760px; }
.tp-head--left .tp-lead{ margin:0; }
.tp-lead{ margin-left:auto; margin-right:auto; }
.tp-head .tp-lead{ margin-top:4px; }

/* Inner page title band: left aligned, breadcrumb above the title */
.page-title{ text-align:left !important; padding:56px 0 52px !important; }
.page-title .auto-container{ display:flex; flex-direction:column-reverse; align-items:flex-start; gap:10px; position:relative; z-index:1; }
.page-title h1{ font-family:'Barlow Condensed','Arial Narrow',sans-serif !important; font-size:clamp(34px, 4.4vw, 52px) !important; font-weight:700 !important; line-height:1.05 !important; letter-spacing:.005em; padding:0 !important; margin:0 !important; max-width:24ch; text-transform:none; }
.page-title h1:before, .page-title h1:after{ display:none !important; }
.page-title .page-breadcrumb{ margin:0; padding:0; font-size:14px; letter-spacing:.02em; }
.page-title .page-breadcrumb li{ text-transform:none !important; }
.page-title .page-breadcrumb li{ font-size:14px; }
@media (max-width: 767px){ .page-title{ padding:36px 0 34px !important; } }

/* Sections spacing rhythm */
.tp-about, .tp-services, .tp-gallery, .tp-quotes, .tp-industries, .tp-clients-page, .tp-contact{ padding:96px 0; }
.tp-about--cta{ padding:0 0 96px; }
.tp-about + .tp-industries{ padding-top:0; }
@media (max-width: 991px){ .tp-about, .tp-services, .tp-gallery, .tp-quotes, .tp-industries, .tp-clients-page, .tp-contact{ padding:64px 0; } .tp-about--cta{ padding:0 0 64px; } }

/* Client logos: slow strip (home) */
.tp-clients-strip{ padding:44px 0 40px; border-bottom:1px solid var(--tp-rule); background:#fff; }
.tp-clients-strip__label{ margin:0 0 22px; text-align:center; font-size:13px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--tp-steel); }
.tp-logos-marquee{ overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.tp-logos-marquee__track{ display:flex; width:max-content; margin:0; padding:0; list-style:none; animation:tp-marquee 90s linear infinite; }
.tp-logos-marquee:hover .tp-logos-marquee__track{ animation-play-state:paused; }
.tp-logos-marquee__track li{ flex:0 0 auto; width:200px; margin:0 12px; }
.tp-logos-marquee__track img, .tp-logos-grid img{ display:block; width:100%; height:auto; mix-blend-mode:multiply; opacity:.9; transition:opacity .3s ease, transform .3s ease; }
.tp-logos-marquee__track li:hover img, .tp-logos-grid li:hover img{ opacity:1; transform:scale(1.04); }
@keyframes tp-marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (max-width: 767px){ .tp-logos-marquee__track li{ width:132px; margin:0 8px; } .tp-logos-marquee__track{ animation-duration:70s; } .tp-clients-strip{ padding:32px 0 28px; } }
@media (prefers-reduced-motion: reduce){ .tp-logos-marquee__track{ animation:none; flex-wrap:wrap; width:auto; justify-content:center; } .tp-logos-marquee__track li[aria-hidden="true"], .tp-logos-marquee__track li:nth-child(n+13){ display:none; } .tp-logos-marquee__track li{ width:150px; } .tp-logos-marquee{ -webkit-mask-image:none; mask-image:none; } }
/* Client logos: full grid (clients page) */
.tp-logos-grid{ list-style:none; margin:40px 0 56px; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); border-top:1px solid var(--tp-rule); border-left:1px solid var(--tp-rule); }
.tp-logos-grid li{ border-right:1px solid var(--tp-rule); border-bottom:1px solid var(--tp-rule); padding:22px 26px; display:flex; align-items:center; justify-content:center; background:#fff; }
.tp-logos-grid img{ opacity:1; max-width:220px; }
@media (max-width: 991px){ .tp-logos-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width: 575px){ .tp-logos-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } .tp-logos-grid li{ padding:14px 12px; } }

/* Numbers band */
.tp-facts{ background:var(--tp-navy-d); color:#fff; padding:56px 0; position:relative; overflow:hidden; }
.tp-facts:before{ content:""; position:absolute; inset:0; background:url(../images/web/page-title-1920.webp) center/cover no-repeat; opacity:.10; pointer-events:none; }
.tp-facts__list{ position:relative; list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); }
.tp-facts__list li{ padding:4px 28px; border-left:1px solid rgba(255,255,255,.18); }
.tp-facts__list li:first-child{ border-left:0; padding-left:0; }
.tp-facts__num{ display:block; font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:56px; line-height:1; font-weight:700; color:#fff; font-variant-numeric:tabular-nums; }
.tp-facts__label{ display:block; margin-top:8px; font-size:15px; letter-spacing:.04em; color:#c9cdf0; }
@media (max-width: 991px){ .tp-facts__list{ grid-template-columns:repeat(2, minmax(0,1fr)); row-gap:28px; } .tp-facts__list li:nth-child(3){ border-left:0; padding-left:0; } }
@media (max-width: 575px){ .tp-facts{ padding:40px 0; } .tp-facts__num{ font-size:44px; } .tp-facts__list li{ padding:0 0 0 18px; } .tp-facts__list li:nth-child(odd){ padding-left:0; border-left:0; } }

/* Testimonials */
.tp-quotes{ background:var(--tp-plate); }
.tp-quotes__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.tp-quotes__head .tp-h2{ margin:0; }
.tp-quotes__nav{ display:flex; gap:10px; }
.tp-quotes__btn{ width:46px; height:46px; border-radius:50%; border:1px solid #c9d0da; background:#fff; color:var(--tp-navy); font-size:22px; line-height:1; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:background-color .2s, color .2s, border-color .2s; }
.tp-quotes__btn:hover:not(:disabled){ background:var(--tp-navy); border-color:var(--tp-navy); color:#fff; }
.tp-quotes__btn:disabled{ opacity:.35; cursor:default; }
.tp-quotes__track{ list-style:none; margin:0; padding:4px 2px 18px; display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 48px) / 3); gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding:0 2px; -webkit-overflow-scrolling:touch; scrollbar-width:none; overscroll-behavior-x:contain; }
.tp-quotes__track::-webkit-scrollbar{ display:none; }
.tp-quotes__track:focus-visible{ outline:3px solid var(--tp-cyan); outline-offset:4px; }
.tp-quotes__item{ scroll-snap-align:start; display:flex; }
.tp-quote{ margin:0; background:#fff; border:1px solid var(--tp-rule); border-radius:6px; padding:30px 28px 26px; display:flex; flex-direction:column; width:100%; position:relative; }
.tp-quote:before{ content:"\201C"; display:block; height:30px; margin:-6px 0 6px; font-family:Georgia,serif; font-size:64px; line-height:1; color:var(--tp-action); opacity:.35; }
.tp-quote blockquote{ margin:0 0 22px; padding:0; border:0; }
.tp-quote blockquote p{ margin:0; font-size:16px; line-height:1.7; color:var(--tp-ink); }
.tp-quote figcaption{ margin-top:auto; padding-top:18px; border-top:1px solid var(--tp-rule); }
.tp-quote figcaption strong{ display:block; font-size:16px; color:var(--tp-navy); }
.tp-quote figcaption span{ display:block; font-size:14px; color:var(--tp-steel); margin-top:2px; }
@media (max-width: 991px){ .tp-quotes__track{ grid-auto-columns:calc((100% - 24px) / 2); } }
@media (max-width: 575px){ .tp-quotes__track{ grid-auto-columns:86%; gap:14px; margin:0 -20px; padding-left:20px; padding-right:20px; scroll-padding:0 20px; align-items:start; } .tp-quotes__head{ align-items:center; } .tp-quote{ padding:22px 20px 20px; } }

/* About page: industries */
.tp-industries__grid{ display:grid; grid-template-columns:5fr 7fr; gap:56px; align-items:center; }
.tp-industries .tp-lead{ margin:0; font-size:17px; }
.tp-chips{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.tp-chips li{ padding:10px 16px; border:1px solid var(--tp-rule); border-radius:999px; background:#fff; font-size:15px; font-weight:600; color:var(--tp-navy); }
@media (max-width: 991px){ .tp-industries__grid{ grid-template-columns:1fr; gap:24px; } }

/* Service detail pages */
.sidebar-page-container{ padding:72px 0 88px !important; }
.sidebar-page-container .row{ align-items:flex-start; }
.news-block-two .inner-box{ background:none !important; box-shadow:none !important; padding:0 !important; border:0 !important; }
.news-block-two .image{ border-radius:6px; overflow:hidden; background:var(--tp-plate); margin-bottom:28px; }
.news-block-two .image img{ width:100% !important; height:auto !important; aspect-ratio:4/3; object-fit:cover; display:block; }
.news-block-two .lower-content{ padding:0 !important; }
.news-block-two .lower-content h2{ font-family:'Barlow Condensed','Arial Narrow',sans-serif !important; font-size:32px !important; font-weight:700 !important; color:var(--tp-navy) !important; margin:0 0 14px !important; line-height:1.1 !important; }
.news-block-two .lower-content .text{ font-size:17px !important; line-height:1.75 !important; color:var(--tp-ink) !important; }
.news-block-two .lower-content .text p{ margin:0 0 14px; }
.news-block-two .lower-content ul{ margin:10px 0 16px; padding-left:0; }
.news-block-two .lower-content ul li{ position:relative; padding-left:22px; margin-bottom:6px; list-style:none; }
.news-block-two .lower-content ul li:before{ content:""; position:absolute; left:4px; top:.7em; width:7px; height:7px; background:var(--tp-action); border-radius:1px; }
.tp-svc-cta{ margin-top:32px; padding:24px 26px; border:1px solid var(--tp-rule); border-left:4px solid var(--tp-action); border-radius:4px; background:var(--tp-plate); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px 24px; }
.tp-svc-cta__title{ margin:0 0 4px; font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:24px; font-weight:700; color:var(--tp-navy); line-height:1.15; }
.tp-svc-cta p{ margin:0; font-size:15px; color:var(--tp-steel); line-height:1.5; }
.tp-svc-cta__text{ flex:1 1 300px; }
.tp-svc-cta__actions{ display:flex; flex-wrap:wrap; gap:10px; }
.tp-svc-cta .tp-btn{ min-height:44px; padding:10px 20px; font-size:15px; }
@media (max-width: 575px){ .tp-svc-cta{ padding:20px 18px; } .tp-svc-cta__actions, .tp-svc-cta__actions .tp-btn{ width:100%; } }
/* grouped service list */
.sidebar-side .sidebar{ margin:0; }
.tp-side{ border:1px solid var(--tp-rule); border-radius:6px; background:#fff; padding:22px 0 10px; }
@media (min-width: 992px){ .tp-side{ position:sticky; top:100px; max-height:calc(100vh - 120px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; } }
.tp-side__title{ margin:0 22px 10px; font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:24px; font-weight:700; color:var(--tp-navy); }
.tp-side__group{ border-top:1px solid var(--tp-rule); padding:14px 0 8px; }
.tp-side__head{ margin:0 22px 6px; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--tp-steel); }
.tp-side ul{ list-style:none; margin:0; padding:0; }
.tp-side li a{ display:block; padding:7px 22px 7px 22px; font-size:15px; line-height:1.4; color:var(--tp-ink); text-decoration:none; border-left:3px solid transparent; transition:background-color .15s, color .15s, border-color .15s; }
.tp-side li a:hover{ background:var(--tp-plate); color:var(--tp-action); }
.tp-side li a[aria-current="page"]{ border-left-color:var(--tp-action); background:#eaf2fc; color:var(--tp-action); font-weight:600; }
@media (max-width: 991px){
  .sidebar-side{ margin-top:48px; }
  .tp-side{ padding-top:18px; }
  .tp-side__group ul{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width: 575px){ .tp-side__group ul{ grid-template-columns:1fr; } .sidebar-page-container{ padding:44px 0 64px !important; } }

/* Contact page */
.tp-contact__grid{ display:grid; grid-template-columns:7fr 5fr; gap:56px; align-items:start; }
.tp-contact__intro{ font-size:17px; color:var(--tp-steel); margin:0 0 26px; max-width:56ch; }
.tp-info-card{ border:1px solid var(--tp-rule); border-radius:6px; padding:28px 26px; background:var(--tp-plate); }
.tp-info-card__title{ margin:0 0 16px; font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:26px; font-weight:700; color:var(--tp-navy); }
.tp-info-list{ list-style:none; margin:0; padding:0; }
.tp-info-list li{ display:flex; gap:14px; padding:13px 0; border-top:1px solid var(--tp-rule); font-size:16px; line-height:1.5; color:var(--tp-ink); }
.tp-info-list li:first-child{ border-top:0; padding-top:0; }
.tp-info-list .fa{ flex:0 0 36px; width:36px; height:36px; border-radius:50%; background:#fff; border:1px solid var(--tp-rule); color:var(--tp-action); display:inline-flex; align-items:center; justify-content:center; font-size:16px; }
.tp-info-list span{ display:block; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--tp-steel); }
.tp-info-list a{ color:var(--tp-ink); font-weight:600; }
.tp-info-list a:hover{ color:var(--tp-action); }
.tp-map{ padding:0 0 96px; }
.tp-map iframe{ display:block; width:100%; height:420px; border-radius:6px; border:1px solid var(--tp-rule) !important; background:var(--tp-plate); }
@media (max-width: 991px){ .tp-contact__grid{ grid-template-columns:1fr; gap:36px; } .tp-map{ padding-bottom:64px; } .tp-map iframe{ height:320px; } }

/* Forms (contact page + quote modal) */
.tp-form__row{ display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.tp-field{ margin-bottom:16px; }
.tp-field label{ display:block; margin:0 0 6px; font-size:14px; font-weight:600; color:var(--tp-ink); letter-spacing:.01em; }
.tp-field label span{ color:#c0392b; }
.tp-form input[type=text], .tp-form input[type=email], .tp-form input[type=tel], .tp-form textarea{ display:block; width:100%; height:auto; min-height:48px; padding:11px 14px; font-size:16px !important; line-height:1.4; color:var(--tp-ink) !important; background:#fff !important; border:1px solid #c5ccd6 !important; border-radius:4px; box-shadow:none; -webkit-appearance:none; appearance:none; transition:border-color .15s, box-shadow .15s; }
.tp-form textarea{ min-height:120px; resize:vertical; }
.tp-form input:focus, .tp-form textarea:focus{ outline:0; border-color:var(--tp-action) !important; box-shadow:0 0 0 3px rgba(28,99,184,.18); }
.tp-form input::placeholder, .tp-form textarea::placeholder{ color:#8a919c; }
.tp-form label.error, .tp-form .error:not(input):not(textarea){ display:block; margin-top:6px; font-size:13px; color:#c0392b; font-weight:500; }
.tp-form input.error, .tp-form textarea.error{ border-color:#c0392b !important; }
.tp-form .recaptcha-error{ color:#c0392b; font-size:14px; margin-top:6px; }
.tp-form__submit{ min-width:200px; }
.tp-form__note{ margin:12px 0 0; font-size:14px; color:var(--tp-steel); }
@media (max-width: 575px){ .tp-form__row{ grid-template-columns:1fr; } .tp-form__submit{ width:100%; } }

/* Quote modal */
.tp-modal .modal-dialog{ max-width:620px; }
.tp-modal .modal-content{ border:0; border-radius:8px; overflow:hidden; box-shadow:0 24px 60px rgba(15,18,40,.35); background:#fff; color:var(--tp-ink); }
.tp-modal__head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:22px 26px 18px; background:var(--tp-navy-d); color:#fff; }
.tp-modal__title{ margin:0 0 4px; font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:30px; line-height:1.05; font-weight:700; color:#fff; }
.tp-modal__sub{ margin:0; font-size:15px; line-height:1.5; color:#c9cdf0; }
.tp-modal__close{ flex:0 0 40px; width:40px; height:40px; margin:-4px -8px 0 0; border:0; background:transparent; color:#fff; font-size:30px; line-height:1; cursor:pointer; border-radius:50%; opacity:.85; }
.tp-modal__close:hover{ background:rgba(255,255,255,.12); opacity:1; }
.tp-modal__body{ padding:22px 26px 4px; }
.tp-modal__foot{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; padding:6px 26px 24px; }
.tp-modal__alt{ font-size:15px; font-weight:600; color:var(--tp-action); }
.tp-modal.fade .modal-dialog{ transform:translateY(16px) scale(.98); transition:transform .25s ease-out; }
.tp-modal.show .modal-dialog{ transform:none; }
.modal-backdrop.show{ opacity:.6; }
@media (max-width: 575px){
  .tp-modal .modal-dialog{ margin:12px; min-height:calc(100% - 24px); }
  .tp-modal__head{ padding:18px 18px 14px; } .tp-modal__title{ font-size:26px; }
  .tp-modal__body{ padding:18px 18px 2px; } .tp-modal__foot{ padding:4px 18px 20px; }
  .tp-modal__foot .tp-btn{ width:100%; } .tp-modal__alt{ width:100%; text-align:center; }
}

/* Footer */
.tp-footer{ background:var(--tp-navy-d); color:#c9cdf0; font-size:15px; line-height:1.6; }
.tp-footer__grid{ display:grid; grid-template-columns:4fr 2fr 3fr 3fr; gap:40px; padding-top:72px; padding-bottom:56px; }
.tp-footer__brand img{ display:block; width:236px; height:auto; margin-bottom:18px; }
.tp-footer__brand p{ margin:0 0 12px; max-width:36ch; color:#c9cdf0; }
.tp-footer__iso{ font-size:13px; letter-spacing:.06em; color:#9ea4d6 !important; }
.tp-footer__head{ margin:4px 0 16px; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#fff; }
.tp-footer ul{ list-style:none; margin:0; padding:0; }
.tp-footer li{ margin:0 0 10px; }
.tp-footer a{ color:#e6e8f8; text-decoration:none; transition:color .15s; }
.tp-footer a:hover{ color:#7fd8ff; text-decoration:underline; text-underline-offset:3px; }
.tp-footer__contact li{ display:flex; gap:12px; align-items:flex-start; }
.tp-footer__contact .fa{ flex:0 0 18px; margin-top:4px; color:#7fd8ff; text-align:center; }
.tp-footer__bottom{ border-top:1px solid rgba(255,255,255,.12); }
.tp-footer__bottom p{ margin:0; padding:20px 0; font-size:14px; color:#9ea4d6; }
@media (max-width: 991px){ .tp-footer__grid{ grid-template-columns:1fr 1fr; gap:36px 28px; padding-top:56px; } }
@media (max-width: 575px){ .tp-footer__grid{ grid-template-columns:1fr; gap:30px; padding-top:48px; padding-bottom:40px; } .tp-footer__bottom p{ padding-bottom:calc(20px + 72px + env(safe-area-inset-bottom)); } }

/* Floating WhatsApp / call buttons: clear of the iPhone home bar; scroll-to-top removed (it sat under WhatsApp) */
.scroll-to-top{ display:none !important; }
.fixed-whatsapp{ bottom:calc(16px + env(safe-area-inset-bottom)) !important; right:calc(16px + env(safe-area-inset-right)) !important; z-index:900; }
.fixed-phone{ bottom:calc(88px + env(safe-area-inset-bottom)) !important; right:calc(21px + env(safe-area-inset-right)) !important; z-index:900; }
.fixed-whatsapp a, .fixed-phone a{ transition:transform .2s ease; }
.fixed-whatsapp a:hover, .fixed-phone a:hover{ transform:translateY(-2px); }

/* Home: services cards — equal heights, link pinned to the bottom */
.tp-card__more{ display:inline-flex; align-items:center; gap:6px; }
.tp-card__more span{ transition:transform .2s ease; }
.tp-card:hover .tp-card__more span{ transform:translateX(3px); }
.tp-card__img{ transition:transform .5s ease; }
.tp-card{ isolation:isolate; }
.tp-card > img{ will-change:transform; }
.tp-card:hover .tp-card__img{ transform:scale(1.03); }
.tp-card{ position:relative; }
.tp-card .tp-card__body{ background:#fff; position:relative; z-index:1; }

/* Motion: reveal on scroll (only when JS is on and motion is allowed) */
.tp-anim .tp-reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); transition-delay:var(--tp-d, 0ms); }
.tp-anim .tp-reveal.is-in{ opacity:1; transform:none; }
.tp-anim .tp-reveal.tp-reveal--now{ transition:none; }
/* Hero: text settles in on load, photo drifts slowly */
@media (prefers-reduced-motion: no-preference){
  .tp-hero__inner > *{ animation:tp-rise .8s cubic-bezier(.2,.7,.2,1) both; }
  .tp-hero__inner > *:nth-child(2){ animation-delay:.08s; }
  .tp-hero__inner > *:nth-child(3){ animation-delay:.16s; }
  .tp-hero__inner > *:nth-child(4){ animation-delay:.24s; }
  .tp-hero__slide img{ transform:scale(1.001); transition:transform 7s ease-out; }
  .tp-hero__slide.is-active img{ transform:scale(1.05); }
}
@keyframes tp-rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ *, *:before, *:after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; } }

/* Service list on tablets/phones: groups fold, the current one stays open */
@media (max-width: 991px){
  .tp-js .tp-side__head{ position:relative; cursor:pointer; padding:6px 40px 6px 0; margin-bottom:0; }
  .tp-js .tp-side__head:after{ content:"\f107"; font-family:FontAwesome; position:absolute; right:-18px; top:50%; transform:translateY(-50%); font-size:18px; color:var(--tp-navy); transition:transform .2s; }
  .tp-js .tp-side__group.is-open .tp-side__head:after{ transform:translateY(-50%) rotate(180deg); }
  .tp-js .tp-side__group:not(.is-open) ul{ display:none; }
  .tp-js .tp-side__group.is-open ul{ margin-top:6px; }
  .tp-side__group{ padding:10px 0; }
}
