/*
Theme Name: Driving School Ottawa Gateway
Theme URI: https://drivingschoolottawa.com
Author: SLM Driving School Inc.
Description: SLM Group of Driving Schools gateway with SLM Driving School, Canada Drivers, Extra Mile Driving School and the SLM G1 Practice Test.
Version: 1.11.0
Text Domain: driving-school-ottawa
*/
:root{--ink:#151515;--muted:#666;--line:#e7e7e7;--paper:#fff;--soft:#f7f7f7;--red:#c91d2e;--blue:#164d87;--shadow:0 16px 45px rgba(0,0,0,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.wrap{width:min(1160px,calc(100% - 36px));margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header-inner{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-weight:900;letter-spacing:-.03em;font-size:1.18rem}.brand span{color:var(--red)}.nav{display:flex;gap:24px;align-items:center;font-size:.94rem;font-weight:700}.nav .cta{background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px}
.hero{overflow:hidden;background:linear-gradient(135deg,#f8f8f8 0%,#fff 55%,#f5f0f1 100%);border-bottom:1px solid var(--line)}.hero-inner{min-height:610px;display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;padding:70px 0}.eyebrow{display:inline-flex;gap:8px;align-items:center;font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}.eyebrow:before{content:"";width:28px;height:2px;background:var(--red)}h1{font-size:clamp(3rem,6vw,5.6rem);line-height:.94;letter-spacing:-.065em;margin:18px 0 24px;max-width:760px}.hero p{font-size:1.16rem;color:#555;max-width:650px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:10px;font-weight:900;border:1px solid var(--ink)}.btn-dark{background:var(--ink);color:#fff}.btn-light{background:#fff}.ottawa-mark{position:relative;min-height:390px;border-radius:28px;background:#171717;box-shadow:var(--shadow);overflow:hidden;padding:34px;color:#fff}.ottawa-mark:before{content:"";position:absolute;inset:auto -10% 0 -10%;height:55%;background:linear-gradient(160deg,transparent 0 25%,rgba(201,29,46,.9) 26% 28%,transparent 29% 42%,rgba(255,255,255,.14) 43% 45%,transparent 46%);transform:skewY(-5deg)}.ottawa-mark:after{content:"OTTAWA";position:absolute;right:-12px;bottom:-38px;font-size:8.5rem;font-weight:1000;letter-spacing:-.08em;color:rgba(255,255,255,.055)}.maple{font-size:4rem;color:var(--red);line-height:1}.mark-copy{position:relative;z-index:2;margin-top:120px}.mark-copy strong{display:block;font-size:2.2rem;line-height:1.02;letter-spacing:-.04em}.mark-copy span{display:block;margin-top:14px;color:#cfcfcf}
.section{padding:86px 0}.section.soft{background:var(--soft)}.section-head{max-width:760px;margin-bottom:38px}.section-head h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1;letter-spacing:-.05em;margin:10px 0 16px}.section-head p{color:var(--muted);font-size:1.05rem}.school-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.school-grid.three-schools{grid-template-columns:repeat(3,1fr)}.school-card{border:1px solid var(--line);border-radius:24px;background:#fff;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.05);display:flex;flex-direction:column}.school-top{padding:32px 32px 18px;display:flex;align-items:center;gap:20px;min-height:170px}.school-logo{width:120px;height:120px;object-fit:contain;flex:0 0 auto}.school-top h3{font-size:1.65rem;line-height:1.1;margin:0 0 8px}.school-top p{margin:0;color:var(--muted)}.school-body{padding:0 32px 32px;display:flex;flex-direction:column;flex:1}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 26px}.chip{font-size:.82rem;font-weight:800;background:#f3f3f3;padding:7px 10px;border-radius:999px}.school-card .btn{margin-top:auto}.slm-card{border-top:5px solid var(--blue)}.cd-card{border-top:5px solid var(--red)}.em-card{border-top:5px solid #f3c400}.em-wordmark{width:120px;height:120px;flex:0 0 auto;background:#111;color:#fff;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:.9;box-shadow:inset 0 -10px 0 #f3c400}.em-wordmark span{font-size:.72rem;font-weight:900;letter-spacing:.12em}.em-wordmark b{font-size:1.7rem;letter-spacing:-.04em;color:#f3c400}.em-wordmark small{font-size:.52rem;font-weight:900;letter-spacing:.08em;margin-top:8px}.g1-section{background:#fff}.g1-section>.wrap>.section-head{margin-bottom:24px}.g1-section .slm-g1-hero{display:none}
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.service{padding:24px;border:1px solid var(--line);border-radius:18px;background:#fff}.service .num{font-size:.76rem;font-weight:900;color:var(--red);letter-spacing:.1em}.service h3{font-size:1.08rem;margin:8px 0}.service p{font-size:.92rem;color:var(--muted);margin:0}.why{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:start}.why h2{font-size:clamp(2.2rem,4vw,3.7rem);line-height:1;letter-spacing:-.055em;margin:0}.why-list{display:grid;gap:0;border-top:1px solid var(--line)}.why-item{padding:22px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:44px 1fr;gap:12px}.why-item b{font-size:1.04rem}.why-item p{margin:4px 0 0;color:var(--muted)}.dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-weight:900}
.route{background:#171717;color:#fff}.route-inner{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.route h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.03;letter-spacing:-.045em;margin:0 0 14px}.route p{color:#c8c8c8;margin:0;max-width:720px}.route .btn{background:var(--red);border-color:var(--red);color:#fff;white-space:nowrap}
.site-footer{padding:44px 0;background:#0d0d0d;color:#bbb}.footer-inner{display:grid;grid-template-columns:1.35fr .9fr 1fr;gap:48px;align-items:start}.footer-inner strong{display:block;color:#fff;margin-bottom:10px}.footer-about p{margin:0;max-width:440px}.footer-group{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.footer-group strong{margin-bottom:4px}.footer-group a{font-size:.92rem}.footer-group a:hover{text-decoration:underline}.footer-heading{display:block;width:100%}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%}.footer-links a{display:block;width:100%}
@media(max-width:1050px){.school-grid.three-schools{grid-template-columns:1fr 1fr}.em-card{grid-column:1/-1}}
@media(max-width:850px){.nav a:not(.cta){display:none}.hero-inner{grid-template-columns:1fr;min-height:auto;padding:52px 0}.ottawa-mark{min-height:310px}.mark-copy{margin-top:75px}.school-grid,.school-grid.three-schools,.why{grid-template-columns:1fr}.em-card{grid-column:auto}.services{grid-template-columns:1fr 1fr}.route-inner{grid-template-columns:1fr}.route .btn{justify-self:start}.footer-inner{grid-template-columns:1fr 1fr}.footer-about{grid-column:1/-1}}
@media(max-width:560px){.wrap{width:min(100% - 28px,1160px)}.header-inner{min-height:64px}.brand{font-size:1rem}.nav .cta{padding:9px 12px;font-size:.84rem}h1{font-size:3.35rem}.hero-inner{padding:42px 0;gap:30px}.hero p{font-size:1.02rem}.ottawa-mark{min-height:250px;padding:24px}.mark-copy{margin-top:42px}.mark-copy strong{font-size:1.75rem}.section{padding:62px 0}.school-top{padding:24px 24px 12px;min-height:0;align-items:flex-start}.school-logo{width:88px;height:88px}.em-wordmark{width:88px;height:88px;border-radius:14px}.em-wordmark b{font-size:1.3rem}.em-wordmark small{font-size:.43rem}.school-body{padding:0 24px 24px}.services{grid-template-columns:1fr}.why{gap:28px}.route{padding:58px 0}.site-footer{padding:36px 0}.footer-inner{grid-template-columns:1fr;gap:26px}.footer-about{grid-column:auto}.footer-about p{max-width:none}.footer-group{display:block;width:100%;gap:0}.footer-heading{display:block;width:100%;margin:0 0 8px}.footer-links{display:block;width:100%}.footer-links a{display:block;width:100%;margin:0 0 8px}}

/* v1.8.3 — SLM Group branding */
.group-brand-mark{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:28px;padding:18px;box-shadow:0 22px 55px rgba(0,0,0,.10);overflow:hidden}
.group-brand-mark img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain}
@media(max-width:780px){.group-brand-mark{padding:10px;border-radius:20px}.group-brand-mark img{max-height:none}}

/* v1.8.5 — larger primary SLM Group header logo */
.brand-logo{display:flex;align-items:center;flex:0 1 500px;line-height:0}
.brand-logo img{display:block;width:100%;height:auto;max-width:500px;max-height:118px;object-fit:contain}
.header-inner{min-height:132px}
.hero-inner{grid-template-columns:1fr}
.hero-inner>div:first-child{max-width:850px}
@media(max-width:850px){.header-inner{min-height:108px}.brand-logo{flex-basis:390px}.brand-logo img{max-width:390px;max-height:92px}}
@media(max-width:560px){.header-inner{min-height:94px;gap:10px}.brand-logo{flex-basis:255px}.brand-logo img{max-width:255px;max-height:76px}.nav .cta{padding:8px 10px;font-size:.78rem}}

/* v1.8.6 — SLM Group logo moved into homepage hero */
.hero-group-logo{width:min(620px,78vw);margin:0 0 26px;line-height:0}
.hero-group-logo img{display:block;width:100%;height:auto;object-fit:contain}
@media(max-width:560px){.hero-group-logo{width:min(100%,640px);margin:0 auto 24px}.hero-inner{padding-top:26px}.hero .eyebrow{margin-top:0}}

.header-inner .brand:not(.brand-logo){flex:0 1 auto;line-height:1.2}
@media(max-width:560px){.header-inner{min-height:74px}.header-inner .brand:not(.brand-logo){font-size:.92rem}}

/* v1.8.7 — G1 Practice Test page logo */
.slm-g1-brand-logo{display:block;width:min(360px,72vw);height:auto;margin:0 auto 22px;}
@media(max-width:600px){.slm-g1-brand-logo{width:min(280px,70vw);margin-bottom:16px;}}

/* v1.8.9 — three-part header */
.header-three{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;min-height:82px}
.header-action{display:inline-flex;align-items:center;justify-content:center;padding:11px 18px;border-radius:999px;font-size:.92rem;font-weight:900;white-space:nowrap}
.header-g1{justify-self:start;background:var(--blue);color:#fff}
.header-school{justify-self:end;background:var(--ink);color:#fff}
.brand-tricolor{justify-self:center;font-size:clamp(1.12rem,2.2vw,1.65rem);font-weight:950;letter-spacing:-.045em;white-space:nowrap}
.brand-tricolor .brand-driving{color:#164d87}
.brand-tricolor .brand-school{color:#c91d2e}
.brand-tricolor .brand-ottawa{color:#e5b800}
.brand-tricolor .brand-com{color:#151515}
@media(max-width:680px){.header-three{grid-template-columns:auto 1fr auto;gap:7px;min-height:70px}.header-action{padding:8px 9px;font-size:.68rem}.brand-tricolor{font-size:clamp(.78rem,3.45vw,1rem);letter-spacing:-.05em}}
@media(max-width:390px){.header-three{gap:5px}.header-action{padding:7px 7px;font-size:.62rem}.brand-tricolor{font-size:.74rem}}

/* v1.8.10 — eliminate actual mobile overflow source */
html,body{width:100%;max-width:100%;overflow-x:clip}
.site-header,.header-inner,.header-three{max-width:100%;min-width:0}
.header-three>*{min-width:0;max-width:100%}
@media(max-width:680px){
  .header-three{width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1.38fr) minmax(0,1fr);gap:4px}
  .header-action{width:100%;min-width:0;padding:8px 3px;font-size:clamp(.54rem,2.25vw,.68rem);line-height:1.1;white-space:normal;text-align:center}
  .brand-tricolor{min-width:0;max-width:100%;font-size:clamp(.64rem,3.05vw,.92rem);white-space:nowrap;overflow:hidden;text-align:center;letter-spacing:-.055em}
  .wrap{max-width:100%}
  .slm-g1,.slm-g1-hero,.slm-mode-grid,.slm-test,.slm-results,.slm-card,.slm-disclaimer,.slm-test-top,.slm-answers,.slm-answer{min-width:0;max-width:100%}
}
@media(max-width:360px){
  .header-three{gap:2px}
  .header-action{padding:7px 2px;font-size:.52rem}
  .brand-tricolor{font-size:.62rem}
}

/* v1.8.11 — mobile header containment / no horizontal page movement */
html,body{overflow-x:hidden!important}
.site-header{overflow:hidden!important}
@media(max-width:680px){
  .site-header .wrap.header-three{
    width:calc(100% - 12px)!important;
    max-width:calc(100% - 12px)!important;
    margin-left:6px!important;
    margin-right:6px!important;
    grid-template-columns:29% 42% 29%!important;
    gap:0!important;
    padding:0!important;
  }
  .header-three>*{box-sizing:border-box!important;min-width:0!important;max-width:100%!important}
  .header-action{
    width:auto!important;
    max-width:calc(100% - 6px)!important;
    padding:8px 7px!important;
    font-size:clamp(.60rem,2.55vw,.72rem)!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
  .header-g1{justify-self:start!important}
  .header-school{justify-self:end!important}
  .brand-tricolor{
    justify-self:center!important;
    width:100%!important;
    max-width:100%!important;
    padding:0 2px!important;
    font-size:clamp(.68rem,3.15vw,.88rem)!important;
    line-height:1!important;
    letter-spacing:-.06em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-align:center!important;
  }
}
@media(max-width:380px){
  .header-action{padding:7px 5px!important;font-size:.58rem!important}
  .brand-tricolor{font-size:.67rem!important}
}

/* v1.10.2 — extra safety so long words never push cards wider than a phone screen */
.services{grid-template-columns:repeat(4,minmax(0,1fr))}.service{min-width:0;overflow-wrap:break-word}
@media(max-width:850px){.services{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.services{grid-template-columns:minmax(0,1fr)}}
.why{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.why h2{overflow-wrap:break-word}
@media(max-width:850px){.why{grid-template-columns:minmax(0,1fr)}}
.footer-inner>*{min-width:0}.footer-links a{overflow-wrap:anywhere}
.school-grid>*,.why-list>*,.why-item>*{min-width:0}
.school-top>div{min-width:0;overflow-wrap:break-word}

/* v1.11.0 — service-area map */
.map-section{border-top:1px solid var(--line)}
.area-map{margin:0;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.06);background:#fff}
.area-map img{display:block;width:100%;height:auto}
.area-map figcaption{padding:10px 16px;font-size:.85rem;color:var(--muted);text-align:center;border-top:1px solid var(--line)}
.area-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
@media(max-width:560px){.area-map{border-radius:14px}.area-links{flex-direction:column}.area-links .btn{width:100%}}
