/*
Theme Name: SD Forwarders
Theme URI: https://sdforwarders.com/
Author: SD Forwarders
Description: Professional responsive WordPress theme for SD Forwarders. The homepage is intentionally not included; create it separately.
Version: 3.1.6
Text Domain: sd-forwarders
*/

:root{
  --sdf-navy:#071a3d;
  --sdf-blue:#0969d8;
  --sdf-cyan:#08a9e8;
  --sdf-red:#e53935;
  --sdf-orange:#ff8a00;
  --sdf-gold:#ffd166;
  --sdf-ink:#152238;
  --sdf-muted:#667085;
  --sdf-soft:#f5f8fc;
  --sdf-white:#fff;
  --sdf-line:#e5eaf1;
  --sdf-shadow:0 14px 40px rgba(7,26,61,.10);
}

*,
*::before,
*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  color:var(--sdf-ink);
  background:#fff;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto}
a{color:inherit}
button,input,textarea,select{font:inherit}

.sdf-site{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.sdf-main{flex:1}

.sdf-wrap{
  width:100%;
  max-width:1440px;
  margin:0 auto;
  padding-left:clamp(18px,3vw,50px);
  padding-right:clamp(18px,3vw,50px);
}

/* Header */
.sdf-header{
  position:relative;
  z-index:1000;
  background:#fff;
  border-bottom:1px solid var(--sdf-line);
  box-shadow:0 5px 20px rgba(7,26,61,.06);
}

.sdf-header-inner{
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
}

.sdf-brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
  text-decoration:none;
}

.sdf-brand-logo{
  width:62px;
  height:62px;
  object-fit:contain;
  flex:0 0 62px;
}

.sdf-brand-copy{
  min-width:0;
}

.sdf-brand-name{
  display:block;
  color:var(--sdf-navy);
  font-size:21px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.02em;
}

.sdf-brand-tagline{
  display:block;
  margin-top:4px;
  color:var(--sdf-muted);
  font-size:11px;
  font-weight:700;
}

.sdf-nav{
  display:flex;
  align-items:center;
}

.sdf-nav ul{
  list-style:none;
  display:flex;
  align-items:center;
  gap:4px;
  margin:0;
  padding:0;
}

.sdf-nav li{
  position:relative;
}

.sdf-nav a{
  display:flex;
  align-items:center;
  gap:6px;
  min-height:44px;
  padding:9px 13px;
  color:var(--sdf-navy);
  text-decoration:none;
  font-size:13px;
  font-weight:800;
  border-radius:10px;
}

.sdf-nav a:hover,
.sdf-nav .current-menu-item>a,
.sdf-nav .current-menu-ancestor>a{
  color:var(--sdf-blue);
  background:#f1f7ff;
}

.sdf-nav .menu-item-has-children>a::after{
  content:"▾";
  font-size:11px;
  transition:.2s ease;
}

.sdf-nav .sub-menu{
  position:absolute;
  left:0;
  top:calc(100% + 8px);
  width:285px;
  display:block;
  padding:9px;
  background:#fff;
  border:1px solid var(--sdf-line);
  border-radius:14px;
  box-shadow:0 18px 45px rgba(7,26,61,.15);
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:.2s ease;
  z-index:1001;
}

.sdf-nav li:hover>.sub-menu,
.sdf-nav li:focus-within>.sub-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.sdf-nav .sub-menu li{width:100%}
.sdf-nav .sub-menu a{
  width:100%;
  min-height:42px;
  padding:10px 12px;
  border-radius:9px;
}

.sdf-mobile-toggle{
  display:none;
  width:45px;
  height:45px;
  border:1px solid var(--sdf-line);
  border-radius:11px;
  background:#fff;
  color:var(--sdf-navy);
  cursor:pointer;
}

.sdf-mobile-toggle span,
.sdf-mobile-toggle span::before,
.sdf-mobile-toggle span::after{
  display:block;
  width:20px;
  height:2px;
  background:currentColor;
  margin:auto;
  position:relative;
}

.sdf-mobile-toggle span::before,
.sdf-mobile-toggle span::after{
  content:"";
  position:absolute;
  left:0;
}

.sdf-mobile-toggle span::before{top:-7px}
.sdf-mobile-toggle span::after{top:7px}

/* Page hero for inner pages only */
.sdf-page-hero{
  padding:65px 0;
  color:#fff;
  background:
    radial-gradient(circle at 85% 15%,rgba(8,169,232,.32),transparent 30%),
    linear-gradient(135deg,#061634 0%,#092f70 58%,#087dbb 100%);
}

.sdf-page-hero h1{
  max-width:900px;
  margin:0 0 10px;
  font-size:clamp(34px,5vw,58px);
  line-height:1.08;
  letter-spacing:-1.5px;
}

.sdf-page-hero p{
  max-width:850px;
  margin:0;
  color:rgba(255,255,255,.86);
  font-size:17px;
}

/* Generic WordPress content */
.sdf-content{
  padding:70px 0;
}

.sdf-content-inner{
  max-width:1050px;
}

.sdf-content h1,
.sdf-content h2,
.sdf-content h3,
.sdf-content h4{
  color:var(--sdf-navy);
  line-height:1.2;
}

.sdf-content h1{font-size:clamp(34px,4vw,52px)}
.sdf-content h2{font-size:clamp(28px,3.5vw,40px);margin-top:45px}
.sdf-content h3{font-size:23px;margin-top:32px}

.sdf-content p,
.sdf-content li{
  color:#46556b;
}

.sdf-content a{
  color:var(--sdf-blue);
  font-weight:700;
}

.sdf-content table{
  width:100%;
  border-collapse:collapse;
  margin:25px 0;
}

.sdf-content th,
.sdf-content td{
  padding:12px;
  border:1px solid var(--sdf-line);
  text-align:left;
}

/* Footer */
.sdf-footer{
  color:#dbe8fb;
  background:#071a3d;
}

.sdf-footer-main{
  padding:55px 0 35px;
}

.sdf-footer-grid{
  display:grid;
  grid-template-columns:1.25fr 1fr 1.15fr 1fr;
  gap:45px;
}

.sdf-footer h2,
.sdf-footer h3{
  margin:0 0 14px;
  color:#fff;
}

.sdf-footer p{
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:14px;
}

.sdf-footer a{
  color:#dbe8fb;
  text-decoration:none;
}

.sdf-footer a:hover{color:#fff}

.sdf-footer-menu{
  list-style:none;
  padding:0;
  margin:0;
}

.sdf-footer-menu li{margin:7px 0;font-size:13px}

.sdf-important-footer-menu li{margin:6px 0;font-size:12px}

.sdf-footer-contact{
  display:grid;
  gap:8px;
  font-size:13px;
}

.sdf-footer-bottom{
  padding:18px 0;
  border-top:1px solid rgba(255,255,255,.12);
}

.sdf-footer-bottom-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.sdf-footer-bottom small{
  color:rgba(255,255,255,.58);
}

/* Floating actions */
.sdf-floating{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:9999;
  display:flex;
  flex-direction:column;
  gap:9px;
}

.sdf-float-btn{
  width:52px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:#fff !important;
  text-decoration:none !important;
  box-shadow:0 10px 25px rgba(0,0,0,.20);
  transition:.2s ease;
}

.sdf-float-btn:hover{transform:translateY(-3px)}
.sdf-float-wa{background:#25D366}
.sdf-float-call{background:var(--sdf-red);font-size:20px}

.sdf-whatsapp-icon{
  width:20px;
  height:20px;
  display:block;
}

/* Accessibility */
.screen-reader-text{
  border:0;
  clip:rect(1px,1px,1px,1px);
  clip-path:inset(50%);
  height:1px;
  width:1px;
  margin:-1px;
  overflow:hidden;
  padding:0;
  position:absolute !important;
  word-wrap:normal !important;
}

:focus-visible{
  outline:3px solid rgba(8,169,232,.45);
  outline-offset:3px;
}

/* Responsive */
@media(max-width:1050px){
  .sdf-mobile-toggle{display:flex;align-items:center;justify-content:center}
  .sdf-nav{
    position:absolute;
    left:0;
    right:0;
    top:100%;
    display:none;
    padding:12px 18px 18px;
    background:#fff;
    border-bottom:1px solid var(--sdf-line);
    box-shadow:0 15px 35px rgba(7,26,61,.12);
  }

  .sdf-nav.is-open{display:block}

  .sdf-nav>ul{
    display:block;
  }

  .sdf-nav li{margin:2px 0}

  .sdf-nav a{
    width:100%;
    justify-content:space-between;
  }

  .sdf-nav .sub-menu{
    position:static;
    width:100%;
    max-height:0;
    overflow:hidden;
    padding:0;
    border:0;
    border-radius:0;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
    transition:max-height .25s ease,padding .25s ease;
  }

  .sdf-nav li.is-expanded>.sub-menu{
    max-height:400px;
    padding:5px 0 5px 15px;
  }

  .sdf-nav li:hover>.sub-menu,
  .sdf-nav li:focus-within>.sub-menu{
    max-height:0;
    padding:0;
  }

  .sdf-nav li.is-expanded:hover>.sub-menu,
  .sdf-nav li.is-expanded:focus-within>.sub-menu{
    max-height:400px;
    padding:5px 0 5px 15px;
  }

  .sdf-footer-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:650px){
  .sdf-header-inner{min-height:76px}
  .sdf-brand-logo{width:54px;height:54px;flex-basis:54px}
  .sdf-brand-name{font-size:18px}
  .sdf-brand-tagline{font-size:9px}
  .sdf-page-hero{padding:50px 0}
  .sdf-content{padding:50px 0}
  .sdf-footer-grid{grid-template-columns:1fr}
  .sdf-footer-bottom-inner{display:block}
  .sdf-footer-bottom small{display:block;margin:4px 0}
}


/* ===== v3.1 Homepage + Contrast Fix ===== */

/* Remove the extra hero area on the homepage */
.home .sdf-page-hero,
.front-page .sdf-page-hero{
    display:none !important;
    padding:0 !important;
    min-height:0 !important;
}

/* Let homepage content start immediately below the header */
.home .sdf-content,
.front-page .sdf-content{
    padding-top:0 !important;
    padding-bottom:0 !important;
}

/* Bright text inside blue sections */
.sdf-why-panel h3,
.sdf-why-panel p,
.sdf-why-panel .sdf-kicker,
.sdf-why-panel .sdf-badge{
    color:#ffffff !important;
}

.sdf-why-panel .sdf-kicker{
    color:#7FE7FF !important;
}

.sdf-coverage-card h2,
.sdf-coverage-card p,
.sdf-coverage-card .sdf-kicker,
.sdf-coverage-pills span{
    color:#ffffff !important;
}

.sdf-coverage-card .sdf-kicker{
    color:#7FE7FF !important;
}

/* ===== v3.1.2 Inner Page Hero + Home-Style Typography Fix ===== */

/* Hide the theme-generated page-title hero on every inner page.
   Custom page heroes/content should be the first visible section below the header. */
.sdf-page-hero{
  display:none !important;
}

/* When a page contains a custom full-width homepage-style layout,
   remove the theme wrapper spacing so the custom hero touches the header cleanly. */
.sdf-content:has(.sdf-home),
.sdf-content-inner:has(.sdf-home){
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

/* Keep inner-page typography consistent with the homepage design. */
.sdf-content,
.sdf-content-inner,
.sdf-content p,
.sdf-content li,
.sdf-content label,
.sdf-content input,
.sdf-content textarea,
.sdf-content select,
.sdf-content button{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}

.sdf-content h1,
.sdf-content h2,
.sdf-content h3,
.sdf-content h4,
.sdf-content h5,
.sdf-content h6{
  color:var(--sdf-navy);
}

.sdf-content p,
.sdf-content li{
  color:#46556b;
}

.sdf-content a{
  color:var(--sdf-blue);
}

/* Preserve bright, high-contrast typography inside dark/blue sections. */
.sdf-content .sdf-home [style*="color:#fff"],
.sdf-content .sdf-home [style*="color: #fff"],
.sdf-content .sdf-home [style*="color:#ffffff"],
.sdf-content .sdf-home [style*="color: #ffffff"]{
  color:#fff !important;
}

@media(max-width:650px){
  .sdf-page-hero{display:none !important;}
  .sdf-content:has(.sdf-home),
  .sdf-content-inner:has(.sdf-home){
    padding:0 !important;
  }
}


/* =========================================================
   v3.1.3 — GLOBAL HOMEPAGE-STYLE TEXT CONTRAST FIX
   =========================================================
   The custom SD Forwarders pages are inserted inside the
   theme's .sdf-content wrapper. The wrapper's generic
   paragraph rule was overriding the homepage-style colors.
   These rules restore bright, high-contrast typography on
   dark/blue custom sections across all inner pages.
   ========================================================= */

/* Keep the same typography family used by the homepage. */
.sdf-content .sdf-home,
.sdf-content .sdf-home button,
.sdf-content .sdf-home input,
.sdf-content .sdf-home textarea,
.sdf-content .sdf-home select{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}

/* HERO — bright readable supporting text */
.sdf-content .sdf-home .sdf-hero,
.sdf-content .sdf-home .sdf-hero p,
.sdf-content .sdf-home .sdf-hero-lead,
.sdf-content .sdf-home .sdf-hero .sdf-eyebrow{
  color:#e8f5ff !important;
}

.sdf-content .sdf-home .sdf-hero h2{
  color:#fff !important;
}

.sdf-content .sdf-home .sdf-hero h2 span{
  color:var(--sdf-gold) !important;
}

/* Dark/blue WHY section */
.sdf-content .sdf-home .sdf-why-panel,
.sdf-content .sdf-home .sdf-why-panel h3,
.sdf-content .sdf-home .sdf-why-panel p,
.sdf-content .sdf-home .sdf-why-panel .sdf-badge{
  color:#fff !important;
}

.sdf-content .sdf-home .sdf-why-panel .sdf-kicker{
  color:#8fe7ff !important;
}

/* Blue COVERAGE card */
.sdf-content .sdf-home .sdf-coverage-card,
.sdf-content .sdf-home .sdf-coverage-card h2,
.sdf-content .sdf-home .sdf-coverage-card p,
.sdf-content .sdf-home .sdf-coverage-card .sdf-coverage-pills span{
  color:#fff !important;
}

.sdf-content .sdf-home .sdf-coverage-card .sdf-kicker{
  color:#8fe7ff !important;
}

/* Ensure the custom full-width hero is not dimmed by theme rules. */
.sdf-content .sdf-home .sdf-hero .sdf-hero-lead{
  color:#e8f5ff !important;
  opacity:1 !important;
}

/* Bright text for any custom dark/blue panel using these common
   homepage section patterns. */
.sdf-content .sdf-home [class*="blue"] p,
.sdf-content .sdf-home [class*="navy"] p,
.sdf-content .sdf-home [class*="dark"] p{
  color:#e8f5ff !important;
}

/* Preserve white text explicitly used by the custom page HTML. */
.sdf-content .sdf-home [style*="color:#fff"],
.sdf-content .sdf-home [style*="color: #fff"],
.sdf-content .sdf-home [style*="color:#ffffff"],
.sdf-content .sdf-home [style*="color: #ffffff"]{
  color:#fff !important;
}

/* Inner-page generic content remains dark on white backgrounds. */
.sdf-content > .sdf-content-inner p,
.sdf-content > .sdf-content-inner li{
  color:#46556b;
}

/* Mobile: keep contrast strong on all custom hero text. */
@media(max-width:650px){
  .sdf-content .sdf-home .sdf-hero p,
  .sdf-content .sdf-home .sdf-hero-lead{
    color:#e8f5ff !important;
    opacity:1 !important;
  }

  .sdf-content .sdf-home .sdf-why-panel p,
  .sdf-content .sdf-home .sdf-coverage-card p{
    color:#fff !important;
  }
}


/* =========================================================
   v3.1.4 — Editable Header Menu + Plain Get in Touch
   ========================================================= */

/* Header navigation remains fully controlled by WordPress:
   Appearance > Menus supports pages, custom links, dropdowns,
   ordering and additional navigation items. */

.sdf-footer-contact{
  display:grid;
  gap:7px;
  font-size:13px;
}

.sdf-contact-btn{
  min-height:0;
  display:flex !important;
  align-items:center;
  gap:8px;
  padding:3px 0;
  border:0;
  border-radius:0;
  background:transparent !important;
  color:#fff !important;
  text-decoration:none !important;
  font-weight:700;
  font-size:13px;
  line-height:1.35;
  box-shadow:none;
  transition:color .2s ease, transform .2s ease;
}

.sdf-contact-btn:hover{
  color:#7dd3fc !important;
  transform:none;
  box-shadow:none;
  filter:none;
}

.sdf-contact-icon{
  width:20px;
  height:20px;
  flex:0 0 20px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:0;
  background:transparent;
  color:#7dd3fc;
  font-size:14px;
  font-weight:900;
}

.sdf-contact-icon svg{
  width:15px;
  height:15px;
  display:block;
  fill:currentColor;
}

.sdf-contact-btn > span:nth-child(2){
  min-width:0;
  flex:1;
}

.sdf-contact-arrow{
  flex:0 0 auto;
  font-size:13px;
  opacity:.9;
}

.sdf-contact-address{
  cursor:default;
}

.sdf-contact-address:hover{
  color:#fff !important;
  transform:none;
}

@media(max-width:650px){
  .sdf-contact-btn{
    min-height:0;
    padding:3px 0;
  }
}


/* ===== Important Links dropdown ===== */
.sdf-nav .sdf-important-links > .sub-menu{
  max-height:70vh;
  overflow-y:auto;
}

@media(max-width:1050px){
  .sdf-nav .sdf-important-links.is-expanded > .sub-menu{
    max-height:70vh;
    overflow-y:auto;
  }
}
