/* FW Solutions family — shared brand styles (on top of Bootstrap 5) */
:root{
  --fw-navy:#0F2A44; --fw-accent:#C2410C; --fw-accent-dark:#9A3412;
  --fw-teal:#0F766E; --fw-violet:#6D28D9; --fw-blue:#1D4ED8;
  --fw-on-navy:#DCE3EC;
  --bs-body-font-family:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --bs-body-color:#1A2433; --bs-body-bg:#F4F5F7;
  --bs-link-color-rgb:29,78,216; --bs-link-hover-color-rgb:15,42,68;
}
body{font-family:var(--bs-body-font-family)}
.bg-fw-navy{background-color:var(--fw-navy)!important}
.text-fw-on-navy{color:var(--fw-on-navy)!important}
.text-fw-highlight{color:var(--fw-highlight,#FDBA74)!important}
.text-fw-accent{color:var(--fw-site-accent,var(--fw-accent))!important}
.fw-skip{position:absolute;top:8px;left:8px;z-index:2000;background:#fff;padding:10px 14px;border-radius:6px}
:focus-visible{outline:3px solid #FDBA74;outline-offset:2px}

/* Buttons */
.btn-fw{--bs-btn-bg:var(--fw-accent);--bs-btn-border-color:var(--fw-accent);--bs-btn-color:#fff;
  --bs-btn-hover-bg:var(--fw-accent-dark);--bs-btn-hover-border-color:var(--fw-accent-dark);--bs-btn-hover-color:#fff;
  --bs-btn-active-bg:var(--fw-accent-dark);--bs-btn-active-border-color:var(--fw-accent-dark);--bs-btn-active-color:#fff;font-weight:600}
.btn-outline-fw{--bs-btn-color:#fff;--bs-btn-border-color:rgba(255,255,255,.55);--bs-btn-hover-bg:rgba(255,255,255,.1);
  --bs-btn-hover-color:#fff;--bs-btn-hover-border-color:#fff;--bs-btn-active-color:#fff;font-weight:600}
.btn-outline-navy{--bs-btn-color:var(--fw-navy);--bs-btn-border-color:var(--fw-navy);--bs-btn-hover-bg:var(--fw-navy);
  --bs-btn-hover-color:#fff;--bs-btn-hover-border-color:var(--fw-navy);font-weight:600}

/* Header */
.fw-logo{width:44px;height:44px;border-radius:10px;background:var(--fw-accent);color:#fff;font-weight:700;font-size:17px;display:inline-flex;align-items:center;justify-content:center}
.fw-brand-sub{font-size:12px}
.navbar-dark .nav-link{color:var(--fw-on-navy);--bs-nav-link-hover-color:#fff}
.navbar-dark .nav-link.active{color:#fff;font-weight:600;box-shadow:inset 0 -3px 0 var(--fw-highlight)}
.fw-adminbar{background:#1A2433;color:#DCE3EC;font-size:14px;padding:8px 16px;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}
.fw-adminbar a{color:#FDBA74}

/* Hero */
.fw-eyebrow{font-size:.875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.fw-hero{padding-top:4rem;padding-bottom:4.5rem}
.fw-hero-overlap{padding-bottom:7.5rem}
.fw-hero h1{font-size:clamp(2.3rem,4.5vw,3.5rem);line-height:1.08;font-weight:700;max-width:860px}
.fw-hero .lead{color:var(--fw-on-navy);max-width:700px;font-size:1.25rem}

/* Sections */
.fw-h2{font-size:clamp(1.75rem,3vw,2.25rem);font-weight:700;line-height:1.15;margin-bottom:.75rem}
.fw-section-head{max-width:760px;margin-bottom:2rem}
.fw-prose p{margin-bottom:1rem}

/* Cards */
.fw-cards-overlap{margin-top:-4.5rem}
.fw-card{border:1px solid #E2E6EB;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px rgba(15,42,68,.10);transition:transform .15s ease,box-shadow .15s ease;color:inherit;text-decoration:none}
a.fw-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(15,42,68,.16);color:inherit}
.fw-card-top{height:112px;display:flex;align-items:flex-end;padding:20px}
.fw-card-icon{width:56px;height:56px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center}
.fw-card .card-text{color:#4B5563;font-size:.95rem}
.fw-card .fw-cta{font-weight:600}
.fw-teal .fw-card-top{background:var(--fw-teal)}.fw-teal .fw-cta{color:var(--fw-teal)}
.fw-violet .fw-card-top{background:var(--fw-violet)}.fw-violet .fw-cta{color:var(--fw-violet)}
.fw-orange .fw-card-top{background:var(--fw-accent)}.fw-orange .fw-cta{color:var(--fw-accent)}
.fw-blue .fw-card-top{background:var(--fw-blue)}.fw-blue .fw-cta{color:var(--fw-blue)}
.fw-navy .fw-card-top{background:var(--fw-navy)}.fw-navy .fw-cta{color:var(--fw-navy)}

/* Pricing */
.fw-price{border:1px solid #E2E6EB;border-radius:16px}
.fw-price-featured{border:2px solid var(--fw-accent);box-shadow:0 12px 32px rgba(194,65,12,.12)}
.fw-price-amount{font-size:2rem;font-weight:700;color:var(--fw-navy)}
.fw-badge{background:#FFEDD5;color:#9A3412;font-weight:600}

/* Steps, panels, checks */
.fw-step,.fw-panel{border:1px solid #E2E6EB;border-radius:16px}
.fw-step-num{width:40px;height:40px;border-radius:50%;background:var(--fw-navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.fw-check{border:1px solid #E2E6EB;border-radius:12px}
.fw-check svg{flex:0 0 auto}
.fw-faq .accordion-item{border-color:#E2E6EB}
.fw-faq .accordion-button:not(.collapsed){background:#FFF7ED;color:var(--fw-navy)}
.fw-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Footer */
.fw-footer a{color:var(--fw-on-navy)}
.fw-footer a:hover{color:#fff}
.fw-footer h2{font-size:1rem;color:#fff;font-weight:600}

@media (prefers-reduced-motion:reduce){.fw-card{transition:none}a.fw-card:hover{transform:none}}

/* Card photos */
.fw-card-img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}

/* Hero highlighted line */
.fw-tagline-bar{border-left:3px solid #E5484D;padding-left:14px;font-weight:600;color:#fff}

/* Language switcher */
.fw-lang a{display:inline-block;padding:6px 6px;font-size:13px;font-weight:600;text-decoration:none;color:var(--fw-on-navy);border-radius:4px}
.fw-lang a.active{color:#fff;box-shadow:inset 0 -2px 0 var(--fw-highlight)}

/* ===== Corporate theme (fwsolutions.ca landing) ===== */
.fw-theme-corporate{--fw-corp-blue:#1373BD;--fw-corp-blue-dark:#0E5A94;--fw-corp-red:#D62839;--bs-body-bg:#fff;
  --bs-body-font-family:'Inter','IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;background:#fff}
.fw-theme-corporate .btn-fw{--bs-btn-bg:var(--fw-corp-blue);--bs-btn-border-color:var(--fw-corp-blue);
  --bs-btn-hover-bg:var(--fw-corp-blue-dark);--bs-btn-hover-border-color:var(--fw-corp-blue-dark);
  --bs-btn-active-bg:var(--fw-corp-blue-dark);--bs-btn-active-border-color:var(--fw-corp-blue-dark)}
.fw-header-light{background:#fff;border-top:3px solid #fff;box-shadow:0 1px 0 #E6EAF0}
.fw-wordmark{font-weight:600;font-size:1.45rem;letter-spacing:-.01em;color:var(--fw-navy)!important;line-height:1}
.fw-wm-fw{color:var(--fw-corp-blue);position:relative;display:inline-block}
.fw-wm-fw::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:3px;background:var(--fw-corp-red);border-radius:2px}
.fw-header-light .nav-link{color:#1F3550;font-weight:500;font-size:.95rem}
.fw-header-light .nav-link:hover{color:var(--fw-corp-blue)}
.fw-header-light .nav-link.active{color:var(--fw-navy);font-weight:600;box-shadow:inset 0 -2px 0 var(--fw-corp-red)}
.fw-header-light .fw-lang a{color:var(--fw-corp-blue)}
.fw-header-light .fw-lang a.active{color:var(--fw-navy);box-shadow:inset 0 -2px 0 var(--fw-corp-red)}
.fw-theme-corporate .bg-fw-navy.text-white{background:linear-gradient(110deg,#0D2846 0%,#0F3459 60%,#11406B 100%)!important}
.fw-theme-corporate .fw-hero{padding-top:5.5rem;padding-bottom:5.5rem}
.fw-theme-corporate .fw-hero h1{font-size:clamp(2.4rem,5vw,4rem);line-height:1.08;letter-spacing:-.02em}
.fw-theme-corporate .text-fw-highlight{color:#7CC4F5!important}
.fw-theme-corporate .text-fw-accent{color:var(--fw-corp-blue)!important}
.fw-theme-corporate .fw-card{border-radius:12px;box-shadow:0 6px 24px rgba(15,42,68,.08)}
.fw-theme-corporate .fw-card .fw-cta{color:var(--fw-corp-blue)}
.fw-theme-corporate .fw-card .card-title{font-weight:500!important;font-size:1.2rem}
.fw-theme-corporate .fw-check svg path{stroke:var(--fw-corp-blue)}
.fw-theme-corporate .fw-check,.fw-theme-corporate .fw-step,.fw-theme-corporate .fw-panel{background:#F6F8FB!important}
.fw-theme-corporate .fw-cta-band{background:linear-gradient(110deg,#0D2846 0%,#11406B 100%)!important}
.fw-theme-corporate :focus-visible{outline-color:var(--fw-corp-blue)}

/* Online booking */
.fw-choice{display:block;border:1px solid #D5DAE1;border-radius:12px;padding:16px;cursor:pointer;background:#fff;transition:border-color .15s,box-shadow .15s}
.fw-choice:hover{border-color:#94A3B8}
.btn-check:checked+.fw-choice{border-color:var(--fw-accent);box-shadow:0 0 0 3px rgba(194,65,12,.15)}
.btn-check:focus-visible+.fw-choice{outline:3px solid #FDBA74;outline-offset:2px}
.fw-choice-price{font-weight:700;color:var(--fw-navy);white-space:nowrap}
.fw-choice-price small{font-weight:400;color:#5B6675}
.fw-book .fw-step-num{width:30px;height:30px;font-size:.9rem;vertical-align:middle}
.fw-book legend{float:none}
.fw-slot{min-width:96px;min-height:44px}
.btn-check:checked+.fw-slot,.fw-order .btn-check:checked+.btn-outline-navy{background:var(--fw-navy);color:#fff}
.fw-book-summary{position:sticky;top:20px}
.fw-agent summary{cursor:pointer}

/* Product block (photo + specifications) */
.fw-product + .fw-product { border-top: 1px solid rgba(15, 31, 51, .08); }
.fw-product-img { background: #fff; border-radius: 1rem; padding: 1rem; box-shadow: 0 6px 24px rgba(15, 31, 51, .08); }
.fw-product-img img { display: block; margin: 0 auto; max-height: 460px; object-fit: contain; }
.fw-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .25rem 2rem; }
.fw-specs-title { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fw-navy, #0F1F33); margin: .75rem 0 .35rem; grid-column: auto; }
.fw-specs-list { list-style: none; padding: 0; margin: 0 0 .5rem; }
.fw-specs-list li { position: relative; padding-left: 1.1rem; margin-bottom: .3rem; color: #3b4a5c; }
.fw-specs-list li::before { content: ""; position: absolute; left: 0; top: .6em; width: .45rem; height: .45rem; border-radius: 50%; background: var(--fw-accent); }

/* Online orders (FW Accurate) */
.fw-choice-featured { border-width: 2px; }
.btn-check:disabled + .fw-choice { opacity: .55; cursor: not-allowed; }
.fw-qty { width: 5.5rem; flex: 0 0 auto; text-align: center; }
.fw-order-lines li { padding: .2rem 0; }
