/*
Theme Name:        Smart Driving School
Theme URI:         https://smartdrivingschool.ie
Author:            Excytech Solutions
Author URI:        https://excytech.ie
Description:       A bold, editorial one-page landing theme for Smart Driving School (Maynooth, Co. Kildare). Customizer-driven hero, pricing, contact and stats. Built single-tenant, white-label friendly.
Version:           3.0.2
Requires at least: 6.0
Tested up to:      6.5
Requires PHP:      8.0
License:           GPL v2 or later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       smart-driving-school
Tags:              one-page, landing-page, business, custom-colors, custom-menu, editor-style, featured-images, full-width-template, theme-options, threaded-comments, translation-ready
*/

:root{
  --ink:#0d2620;
  --ink-2:#143a31;
  --cream:#f4ede1;
  --cream-2:#ece2cf;
  --paper:#fbf7ee;
  --red:#df2e2e;
  --red-deep:#a81e1e;
  --amber:#f4c542;
  --line: rgba(13,38,32,.14);
  --shadow: 0 1px 0 rgba(13,38,32,.04), 0 24px 60px -28px rgba(13,38,32,.35);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--cream);color:var(--ink);}
body{
  font-family:'Manrope', system-ui, sans-serif;
  font-size:17px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}

.wrap{max-width:1240px;margin:0 auto;padding:0 28px}
.eyebrow{
  font-family:'Manrope',sans-serif;
  font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  font-size:11.5px; color:var(--ink); opacity:.7;
}
.serif{font-family:'Instrument Serif', serif; font-style:italic; font-weight:400;}
h1,h2,h3,h4{
  font-family:'Bricolage Grotesque', serif;
  font-weight:600; letter-spacing:-.02em; line-height:1.02;
  color:var(--ink);
  font-variation-settings:"opsz" 96;
}

/* ============ NAV ============ */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(244,237,225,.86);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;
}
.logo{
  display:flex;align-items:center;gap:10px;
  font-family:'Bricolage Grotesque'; font-weight:700; font-size:18px;
  letter-spacing:-.01em;
}
.logo .lplate{width:26px;height:26px;border-radius:5px}
.nav-links,
.nav-links ul{display:flex;gap:30px;font-size:14.5px;font-weight:500;list-style:none}
.nav-links a{opacity:.78}
.nav-links a:hover{opacity:1}
.nav-cta{display:flex;align-items:center;gap:14px}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 20px;border-radius:999px;
  font-weight:600;font-size:14.5px; letter-spacing:-.005em;
  transition:transform .2s ease, background .2s ease, color .2s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--ink);color:var(--cream)}
.btn-primary:hover{background:var(--red)}
.btn-ghost{border:1px solid var(--line);color:var(--ink)}
.btn-red{background:var(--red);color:#fff;box-shadow:0 8px 22px -10px rgba(223,46,46,.6)}
.btn-red:hover{background:var(--red-deep)}
.phone-pill{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:600;font-size:14px; opacity:.8;
}

@media (max-width:880px){
  .nav-links{display:none}
}

/* ============ HERO ============ */
.hero{
  position:relative;
  padding:70px 0 110px;
  background:
    radial-gradient(1100px 500px at 90% -10%, rgba(244,197,66,.18), transparent 60%),
    radial-gradient(900px 600px at -10% 20%, rgba(223,46,46,.06), transparent 60%),
    var(--cream);
  overflow:hidden;
}
.hero-grid{
  display:grid; grid-template-columns: 1.05fr .95fr; gap:60px; align-items:end;
}
.hero-top-row{
  display:flex;align-items:center;gap:14px;margin-bottom:28px;
}
.tag{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 13px; border-radius:999px;
  background:rgba(13,38,32,.06); font-size:12.5px;font-weight:600;letter-spacing:-.005em;
}
.tag .dot{width:7px;height:7px;border-radius:50%;background:#2d8a3e;box-shadow:0 0 0 4px rgba(45,138,62,.18)}

.hero h1{
  font-size: clamp(48px, 7.2vw, 104px);
  letter-spacing:-.035em;
}
.hero h1 .red{color:var(--red)}
.hero h1 .underline{
  background:linear-gradient(180deg, transparent 64%, var(--amber) 64%, var(--amber) 92%, transparent 92%);
  padding:0 .04em;
}
.hero-sub{
  margin-top:28px; max-width:520px; font-size:18.5px; line-height:1.55; opacity:.78;
}
.hero-cta{
  margin-top:38px; display:flex; gap:14px; flex-wrap:wrap;
}
.hero-meta{
  margin-top:36px; display:flex; gap:28px; flex-wrap:wrap;
  font-size:13.5px; font-weight:500;
}
.hero-meta div{display:flex;align-items:center;gap:9px;opacity:.78}
.hero-meta svg{flex-shrink:0}

.hero-visual{
  position:relative; min-height:520px;
}
.card-photo{
  position:absolute; inset:0;
  border-radius:24px; overflow:hidden;
  background:
    linear-gradient(180deg, transparent 60%, rgba(13,38,32,.55)),
    linear-gradient(135deg,#1f4c40,#0d2620);
  box-shadow:var(--shadow);
  transform:rotate(-1.2deg);
}
.card-photo .road{
  position:absolute; inset:0;
  background:
    radial-gradient(60% 100% at 50% 100%, #2a5a4c, #0d2620 70%),
    #0d2620;
}
.card-photo .road::before{
  content:""; position:absolute; left:50%; bottom:-20%;
  width:200%; height:120%;
  background:
    repeating-linear-gradient(90deg, #f4ede1 0 36px, transparent 36px 84px) center 70% / 100% 6px no-repeat,
    radial-gradient(120% 80% at 50% 100%, #1d4a3e, transparent 60%);
  transform: translateX(-50%) perspective(380px) rotateX(60deg);
  transform-origin: 50% 100%;
  opacity:.85;
}
.card-photo .car{
  position:absolute; left:50%; bottom:9%; transform:translateX(-50%);
  width:74%; max-width:420px;
  filter: drop-shadow(0 24px 30px rgba(0,0,0,.35));
}
.card-photo .lplate-float{
  position:absolute; top:18%; left:50%; transform:translateX(-50%) rotate(-6deg);
  width:74px;height:74px; border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:#fff; color:var(--red);
  font-family:'Bricolage Grotesque'; font-weight:800; font-size:54px; line-height:1;
  box-shadow: 0 18px 30px -12px rgba(0,0,0,.45);
}
.card-photo .caption{
  position:absolute; left:24px; bottom:22px;
  color:var(--cream); font-size:13px; opacity:.85;
}
.card-photo .caption .serif{font-size:20px; opacity:1; display:block; margin-bottom:2px}

.chip{
  position:absolute; padding:14px 18px;
  background:var(--paper); border:1px solid var(--line);
  border-radius:18px; box-shadow:var(--shadow);
  font-size:13px; line-height:1.3;
}
.chip strong{
  display:block; font-family:'Bricolage Grotesque'; font-weight:700;
  font-size:28px; letter-spacing:-.02em; color:var(--ink);
}
.chip-1{top:-18px; right:-12px; transform:rotate(3deg)}
.chip-2{bottom:60px; left:-22px; transform:rotate(-2deg)}
.chip-2 strong{color:var(--red)}

@media (max-width:980px){
  .hero{padding:48px 0 80px}
  .hero-grid{grid-template-columns:1fr; gap:40px}
  .hero-visual{min-height:430px}
  .chip-1{right:8px}
  .chip-2{left:8px}
}

/* ============ TRUST STRIP ============ */
.trust{
  background:var(--ink); color:var(--cream);
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.trust-inner{
  display:grid; grid-template-columns: repeat(4, 1fr); gap:24px;
  padding:36px 0;
}
.trust-item{display:flex;align-items:center;gap:14px}
.trust-item .icon{
  width:42px;height:42px;border-radius:12px;
  background:rgba(244,237,225,.08); display:grid;place-items:center;
  flex-shrink:0;
}
.trust-item .label{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.6}
.trust-item .value{font-family:'Bricolage Grotesque'; font-weight:600; font-size:17px; letter-spacing:-.01em; margin-top:2px}
@media (max-width:880px){
  .trust-inner{grid-template-columns:repeat(2,1fr)}
}

/* ============ SECTION ============ */
section{padding:110px 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:60px;flex-wrap:wrap}
.section-head h2{font-size: clamp(38px, 4.6vw, 62px); letter-spacing:-.03em; max-width:680px}
.section-head p{max-width:380px;opacity:.74;font-size:16px}

/* WHY US */
.why{background:var(--cream);}
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.why-card{
  background:var(--paper); border:1px solid var(--line);
  border-radius:24px; padding:32px 28px 30px;
  position:relative; overflow:hidden;
  transition:transform .25s ease, border-color .25s ease;
}
.why-card:hover{transform:translateY(-4px); border-color:rgba(13,38,32,.28)}
.why-card .num{
  font-family:'Instrument Serif'; font-style:italic;
  font-size:22px; color:var(--red); margin-bottom:24px;
  display:flex; align-items:center; gap:10px;
}
.why-card .num::after{content:""; flex:1; height:1px; background:var(--line)}
.why-card h3{font-size:24px; margin-bottom:12px; letter-spacing:-.015em}
.why-card p{font-size:15px; opacity:.78; line-height:1.55}
@media (max-width:880px){
  .why-grid{grid-template-columns:1fr}
}

/* HOW IT WORKS */
.how{background:var(--ink); color:var(--cream); position:relative; overflow:hidden;}
.how h2,.how h3,.how h4{color:var(--cream)}
.how::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(800px 400px at 110% -10%, rgba(244,197,66,.10), transparent 60%),
    radial-gradient(600px 300px at -10% 100%, rgba(223,46,46,.10), transparent 60%);
  pointer-events:none;
}
.how-inner{position:relative;z-index:1}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:20px}
.step{
  border-top:1px solid rgba(244,237,225,.18); padding-top:22px;
  position:relative;
}
.step .step-num{
  font-family:'Bricolage Grotesque'; font-weight:600; font-size:13px;
  letter-spacing:.14em; opacity:.65; margin-bottom:14px;
}
.step h3{font-size:22px; margin-bottom:10px;letter-spacing:-.01em}
.step p{font-size:14.5px; opacity:.75; line-height:1.55}
.step .marker{
  position:absolute; top:-7px; left:0;
  width:13px;height:13px;border-radius:50%;background:var(--amber);
  box-shadow:0 0 0 4px rgba(244,197,66,.18);
}
@media (max-width:880px){
  .steps{grid-template-columns:1fr 1fr; gap:34px}
}
@media (max-width:520px){
  .steps{grid-template-columns:1fr}
}

/* PRICING */
.pricing{background:var(--cream-2);}
.price-grid{
  display:grid; grid-template-columns: 1.15fr .85fr; gap:28px;
}
.price-list{
  background:var(--paper); border:1px solid var(--line);
  border-radius:28px; padding:14px 30px; position:relative;
}
.price-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 0; border-bottom:1px dashed var(--line);
  gap:20px;
}
.price-row:last-child{border-bottom:0}
.price-row .pname{
  display:flex; align-items:baseline; gap:14px; flex-wrap:wrap;
}
.price-row .pname h4{font-family:'Bricolage Grotesque'; font-weight:600; font-size:19px;letter-spacing:-.01em}
.price-row .pname .meta{font-size:13px; opacity:.6}
.price-row .pcost{
  font-family:'Bricolage Grotesque'; font-weight:700; font-size:26px;
  letter-spacing:-.025em; color:var(--ink); white-space:nowrap;
}
.price-row.feat-amber{
  background:linear-gradient(180deg, rgba(244,197,66,.18), transparent);
  margin: 8px -16px; padding: 22px 16px; border-radius:14px;
  border-bottom:1px dashed transparent;
}
.price-row.feat-red{
  background:linear-gradient(180deg, rgba(223,46,46,.12), transparent);
  margin: 8px -16px; padding: 22px 16px; border-radius:14px;
  border-bottom:1px dashed transparent;
}
.price-row .badge{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 10px; border-radius:999px;
  background:var(--red); color:#fff; font-size:11px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
}
.price-row .badge.dark{background:var(--ink)}

.price-side{
  background:var(--ink); color:var(--cream);
  border-radius:28px; padding:38px 32px;
  display:flex; flex-direction:column; justify-content:space-between;
  position:relative; overflow:hidden;
}
.price-side::before{
  content:""; position:absolute; top:-60px; right:-60px;
  width:240px;height:240px;border-radius:50%;
  background:radial-gradient(closest-side, rgba(244,197,66,.25), transparent 70%);
}
.price-side h3{color:var(--cream); font-size:28px; letter-spacing:-.02em; margin-bottom:14px}
.price-side p{opacity:.8; font-size:15px; margin-bottom:28px}
.price-side ul{list-style:none; margin-bottom:32px}
.price-side li{
  display:flex;align-items:flex-start;gap:10px;
  padding:9px 0; font-size:14.5px; opacity:.92;
  border-bottom:1px solid rgba(244,237,225,.08);
}
.price-side li:last-child{border-bottom:0}
.price-side li svg{flex-shrink:0; margin-top:3px; color:var(--amber)}

@media (max-width:980px){
  .price-grid{grid-template-columns:1fr}
}

/* TESTIMONIAL */
.testimonial{background:var(--cream)}
.tcard{
  background:var(--paper); border:1px solid var(--line);
  border-radius:30px; padding:64px 60px; position:relative; overflow:hidden;
  display:grid; grid-template-columns: 1fr auto; gap:40px; align-items:center;
}
.tcard::before{
  content:"\201C"; position:absolute; top:-30px; left:30px;
  font-family:'Instrument Serif'; font-size:280px; line-height:1;
  color:var(--red); opacity:.16;
}
.tcard blockquote{
  font-family:'Instrument Serif'; font-style:italic;
  font-size: clamp(24px, 3vw, 36px); line-height:1.25; letter-spacing:-.01em;
  position:relative; z-index:1;
}
.tcard cite{
  display:block; margin-top:24px; font-style:normal;
  font-family:'Manrope'; font-weight:600; font-size:14px; opacity:.78;
  letter-spacing:-.005em;
}
.tstars{
  display:flex; gap:6px; align-items:center; flex-direction:column;
  text-align:center;
}
.tstars .num{
  font-family:'Bricolage Grotesque'; font-weight:700; font-size:64px;
  letter-spacing:-.03em; line-height:1; color:var(--red);
}
.tstars .label{font-size:12px; opacity:.7; letter-spacing:.1em; text-transform:uppercase; font-weight:600}
.tstars .row{display:flex;gap:3px;margin-top:6px}

@media (max-width:880px){
  .tcard{grid-template-columns:1fr; padding:48px 32px; text-align:left}
}

/* FAQ */
.faq{background:var(--cream-2)}
.faq-list{display:grid; gap:14px}
details.q{
  background:var(--paper); border:1px solid var(--line);
  border-radius:18px; padding:22px 26px;
  transition:background .2s ease;
}
details.q[open]{background:#fff;border-color:rgba(13,38,32,.28)}
details.q summary{
  list-style:none; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center;
  font-family:'Bricolage Grotesque'; font-weight:600; font-size:19px;
  letter-spacing:-.01em;
}
details.q summary::-webkit-details-marker{display:none}
details.q summary::after{
  content:"+"; font-size:26px; font-weight:300;
  transition:transform .2s ease;
}
details.q[open] summary::after{transform:rotate(45deg)}
details.q .a{margin-top:14px; font-size:15.5px; opacity:.8; line-height:1.6}

/* FINAL CTA */
.cta{
  background:var(--red); color:#fff; position:relative; overflow:hidden;
  padding:120px 0;
}
.cta::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(700px 400px at 90% 50%, rgba(255,255,255,.10), transparent 70%),
    repeating-linear-gradient(45deg, rgba(255,255,255,.04) 0 10px, transparent 10px 30px);
  pointer-events:none;
}
.cta-inner{position:relative; z-index:1; display:grid; grid-template-columns: 1.3fr .7fr; gap:50px; align-items:center}
.cta h2{font-size: clamp(44px, 5.6vw, 78px); color:#fff; letter-spacing:-.03em; line-height:1}
.cta p{margin-top:22px; font-size:18px; opacity:.9; max-width:480px}
.cta-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:36px}
.cta .btn-primary{background:#fff; color:var(--red); font-weight:700}
.cta .btn-primary:hover{background:var(--ink); color:#fff}
.cta .btn-ghost{border-color:rgba(255,255,255,.4); color:#fff}
.cta .btn-ghost:hover{background:rgba(255,255,255,.1)}

.contact-card{
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
  border-radius:24px; padding:36px 30px;
  backdrop-filter:blur(8px);
}
.contact-card h4{color:#fff; font-size:14px; letter-spacing:.14em; text-transform:uppercase; opacity:.8; margin-bottom:24px; font-family:'Manrope'; font-weight:700}
.contact-card .row{
  display:flex;align-items:center;gap:14px;
  padding:14px 0; border-top:1px solid rgba(255,255,255,.16);
  font-size:15.5px;
}
.contact-card .row:first-of-type{border-top:0}
.contact-card .row .ico{
  width:38px;height:38px;border-radius:10px;
  background:rgba(255,255,255,.12); display:grid;place-items:center; flex-shrink:0;
}
.contact-card .row strong{display:block;font-weight:600}
.contact-card .row span{display:block; font-size:12.5px; opacity:.75; margin-top:2px}

@media (max-width:880px){
  .cta-inner{grid-template-columns:1fr}
  .cta{padding:80px 0}
}

/* FOOTER */
footer.site-footer{
  background:var(--ink); color:var(--cream);
  padding:48px 0 32px; font-size:14px;
}
.foot{display:flex; justify-content:space-between; align-items:center; gap:30px; flex-wrap:wrap}
.foot .lite{opacity:.55}
.foot a{opacity:.75}
.foot a:hover{opacity:1}
.foot .links{display:flex; gap:24px; list-style:none}

::selection{background:var(--red); color:#fff}

/* WP-specific basic blog fallback (index.php) */
.wp-blog{padding:80px 0; max-width:760px; margin:0 auto}
.wp-blog article{margin-bottom:48px;padding-bottom:48px;border-bottom:1px solid var(--line)}
.wp-blog h2{font-size:32px;margin-bottom:12px}
.wp-blog .meta{font-size:13px;opacity:.6;margin-bottom:16px}
.wp-blog .more{display:inline-block;margin-top:14px;color:var(--red);font-weight:600}
.alignwide,.alignfull{margin-left:auto;margin-right:auto}
.screen-reader-text{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
