/*
Theme Name: Pathfinder Driving School
Theme URI: https://pathfinderdrivingschool.com.au
Author: Sam — Pathfinder Driving School
Description: Premium custom theme for Pathfinder Driving School — automatic driving lessons across 58 suburbs in eastern and south-eastern Melbourne. Built-in suburb landing pages, DrivingSchool/FAQPage schema, RankMath-ready metadata, booking CTAs.
Version: 1.41.0
Requires PHP: 7.4
Text Domain: pathfinder
*/

/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --pf-navy:#1B2A4A;
  --pf-navy-deep:#10203D;
  --pf-navy-soft:#24365C;
  --pf-teal:#2AB4C0;
  --pf-teal-dark:#1E93A0;
  --pf-gold:#F5C518;
  --pf-gold-soft:#FBE8A6;
  --pf-red:#C0221A;
  --pf-bg:#F7F9FC;
  --pf-white:#FFFFFF;
  --pf-ink:#1B2A4A;
  --pf-muted:#5A6B8C;
  --pf-line:#E3E9F2;
  --pf-radius:14px;
  --pf-shadow:0 10px 30px rgba(16,32,61,.10);
  --pf-shadow-lg:0 24px 60px rgba(16,32,61,.16);
  --pf-font-display:'Sora',system-ui,sans-serif;
  --pf-font-body:'Inter',system-ui,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{font-family:var(--pf-font-body);color:var(--pf-ink);background:var(--pf-bg);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--pf-teal-dark);text-decoration:none}
a:focus-visible,button:focus-visible{outline:3px solid var(--pf-gold);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--pf-font-display);line-height:1.18;font-weight:700;letter-spacing:-.01em}

.pf-wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.pf-kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--pf-font-display);font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--pf-teal-dark)}
.pf-kicker::before{content:"";width:26px;height:2px;background:var(--pf-gold);border-radius:2px}
.pf-sec{padding:84px 0}
.pf-sec-title{font-size:clamp(1.7rem,3.4vw,2.5rem);margin:.5rem 0 .7rem}
.pf-sec-sub{color:var(--pf-muted);max-width:640px;font-size:1.05rem}
.pf-center{text-align:center}
.pf-center .pf-sec-sub{margin:0 auto}

/* Buttons */
.pf-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--pf-font-display);font-weight:700;font-size:1rem;padding:15px 30px;border-radius:999px;border:0;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.pf-btn:hover{transform:translateY(-2px)}
.pf-btn-gold{background:#E0A82E;color:var(--pf-navy-deep);box-shadow:0 8px 20px rgba(224,168,46,.28)}
.pf-btn-gold:hover{background:#EEB52B}
.pf-btn-arrow{transition:transform .18s ease}
.pf-btn-gold:hover .pf-btn-arrow{transform:translateX(3px)}
.pf-btn-teal{background:var(--pf-teal);color:#fff;box-shadow:0 8px 22px rgba(42,180,192,.35)}
.pf-btn-teal:hover{background:var(--pf-teal-dark);color:#fff}
.pf-btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.45)}
.pf-btn-ghost:hover{border-color:var(--pf-gold);color:var(--pf-gold)}
.pf-btn-navy{background:var(--pf-navy);color:#fff}
.pf-btn-navy:hover{background:var(--pf-navy-deep);color:#fff}

/* ============================================================
   HEADER
   ============================================================ */
.pf-topbar{background:var(--pf-navy-deep);color:#C8D4EA;font-size:.83rem;padding:7px 0}
.pf-topbar .pf-wrap{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.pf-topbar a{color:var(--pf-gold);font-weight:600}
.pf-header{background:var(--pf-navy);position:sticky;top:0;z-index:900;box-shadow:0 2px 14px rgba(16,32,61,.35)}
.pf-header .pf-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}
.pf-logo{display:flex;align-items:center;gap:12px;color:#fff}
.pf-logo:hover{color:#fff}
.pf-logo-mark{width:46px;height:46px;flex:0 0 46px;border-radius:50%;object-fit:cover;background:#0B1630}
.pf-logo-name{font-family:var(--pf-font-display);font-weight:800;font-size:1.18rem;letter-spacing:.01em;line-height:1.05}
.pf-logo-name span{display:block;font-size:.66rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--pf-gold)}
.pf-nav{display:flex;align-items:center;gap:26px}
.pf-nav a{color:#DCE5F4;font-weight:600;font-size:.95rem;position:relative;padding:6px 0}
.pf-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--pf-gold);transition:width .2s ease}
.pf-nav a:hover{color:#fff}
.pf-nav a:hover::after{width:100%}
.pf-nav .pf-btn{padding:11px 22px;font-size:.92rem}

/* Services dropdown */
.pf-nav-item{position:relative;display:flex;align-items:center}
.pf-nav-item > a{padding-right:2px}
.pf-dd-toggle{background:none;border:0;color:#DCE5F4;cursor:pointer;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;transition:transform .2s ease,color .2s ease}
.pf-dd-toggle:hover{color:var(--pf-gold)}
.pf-dd-toggle svg{transition:transform .2s ease}
.pf-dropdown{position:absolute;top:calc(100% + 14px);left:0;min-width:248px;background:var(--pf-navy-deep);border-radius:12px;box-shadow:0 20px 40px rgba(0,0,0,.35);padding:8px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:950}
.pf-dropdown a{display:block;color:#DCE5F4;font-weight:600;font-size:.9rem;padding:10px 12px;border-radius:8px;white-space:nowrap}
.pf-dropdown a::after{display:none}
.pf-dropdown a:hover{background:rgba(255,255,255,.06);color:#fff}
.pf-nav-item:hover .pf-dropdown,
.pf-nav-item.is-open .pf-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.pf-nav-item.is-open .pf-dd-toggle svg{transform:rotate(180deg)}
.pf-burger{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px}
.pf-burger span{display:block;width:26px;height:3px;background:#fff;margin:5px auto;border-radius:2px;transition:.25s}
@media(max-width:960px){
  .pf-burger{display:block}
  .pf-nav{position:fixed;inset:76px 0 auto 0;background:var(--pf-navy-deep);flex-direction:column;align-items:stretch;gap:0;padding:12px 22px 22px;transform:translateY(-130%);transition:transform .28s ease;box-shadow:0 20px 40px rgba(0,0,0,.35)}
  .pf-nav.open{transform:translateY(0)}
  .pf-nav a{padding:13px 4px;border-bottom:1px solid rgba(255,255,255,.08)}
  .pf-nav .pf-btn{margin-top:14px;justify-content:center}
  .pf-nav-item{flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.08)}
  .pf-nav-item > a{border-bottom:0;flex:1}
  .pf-dd-toggle{width:44px;height:44px}
  .pf-dropdown{position:static;min-width:0;box-shadow:none;background:rgba(255,255,255,.03);border-radius:8px;padding:0 0 6px;opacity:1;visibility:visible;transform:none;max-height:0;overflow:hidden;transition:max-height .22s ease}
  .pf-nav-item.is-open .pf-dropdown{max-height:260px}
  .pf-dropdown a{padding:11px 14px;border-bottom:0}
}

/* ============================================================
   HERO — with signature route line
   ============================================================ */
.pf-hero{position:relative;background:linear-gradient(160deg,var(--pf-navy-deep) 0%,var(--pf-navy) 55%,#22406B 100%);color:#fff;overflow:hidden}
.pf-hero-inner{position:relative;z-index:2;padding:96px 0 120px;max-width:720px}
.pf-hero .pf-kicker{color:var(--pf-gold)}
.pf-hero .pf-kicker::before{background:var(--pf-teal)}
.pf-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:.7rem 0 1.1rem;font-weight:800}
.pf-hero h1 em{font-style:normal;color:var(--pf-gold);position:relative}
.pf-hero-sub{font-size:1.14rem;color:#C8D4EA;max-width:560px;margin-bottom:2rem}
.pf-hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:2.4rem}
.pf-hero-points{display:flex;gap:26px;flex-wrap:wrap}
.pf-hero-point{display:flex;align-items:center;gap:9px;font-size:.93rem;color:#DCE5F4;font-weight:600}
.pf-hero-point svg{flex:0 0 18px}
.pf-route{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.5}
.pf-route path{stroke:var(--pf-teal);stroke-width:2.5;stroke-dasharray:10 9;fill:none}
.pf-route circle{fill:var(--pf-gold)}
.pf-route .pf-route-flag{fill:none;stroke:var(--pf-gold);stroke-width:2.5}
@media(max-width:760px){.pf-hero-inner{padding:64px 0 84px}.pf-route{opacity:.28}}

/* Trust bar */
.pf-trust{background:var(--pf-white);border-bottom:1px solid var(--pf-line);position:relative;z-index:3}
.pf-trust .pf-wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-top:26px;padding-bottom:26px}
.pf-trust-item{text-align:center;padding:6px 10px;border-right:1px dashed var(--pf-line)}
.pf-trust-item:last-child{border-right:0}
.pf-trust-num{font-family:var(--pf-font-display);font-weight:800;font-size:1.7rem;color:var(--pf-navy)}
.pf-trust-num b{color:var(--pf-teal-dark)}
.pf-trust-label{font-size:.85rem;color:var(--pf-muted);font-weight:600}
@media(max-width:760px){.pf-trust .pf-wrap{grid-template-columns:1fr 1fr}.pf-trust-item:nth-child(2){border-right:0}}

/* ============================================================
   SERVICES
   ============================================================ */
.pf-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px}
.pf-card{background:var(--pf-white);border:1px solid var(--pf-line);border-radius:var(--pf-radius);padding:32px 28px;box-shadow:var(--pf-shadow);transition:transform .2s ease,box-shadow .2s ease;position:relative;overflow:hidden}
.pf-card:hover{transform:translateY(-5px);box-shadow:var(--pf-shadow-lg)}
.pf-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--pf-teal),var(--pf-gold))}
.pf-card-icon{width:52px;height:52px;border-radius:13px;background:rgba(42,180,192,.12);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.pf-card h3{font-size:1.2rem;margin-bottom:.55rem}
.pf-card p{color:var(--pf-muted);font-size:.96rem;margin-bottom:1rem}
.pf-card-link{font-weight:700;font-family:var(--pf-font-display);font-size:.92rem}
.pf-card-link::after{content:" →"}
@media(max-width:960px){.pf-cards{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.pf-cards{grid-template-columns:1fr}}

/* ============================================================
   HOW IT WORKS — path steps (signature)
   ============================================================ */
.pf-path-sec{background:var(--pf-navy);color:#fff;position:relative;overflow:hidden}
.pf-path-sec .pf-kicker{color:var(--pf-gold)}
.pf-path-sec .pf-sec-sub{color:#C8D4EA}
.pf-track{margin-top:56px;position:relative}
.pf-track-line{position:absolute;top:27px;left:16.66%;right:16.66%;height:5px;border-radius:5px;background:rgba(255,255,255,.14);overflow:hidden}
.pf-track-fill{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--pf-teal),var(--pf-gold));border-radius:5px}
.pf-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;position:relative}
.pf-step{position:relative;text-align:center;padding:0 12px}
.pf-step-dot{width:60px;height:60px;border-radius:50%;background:var(--pf-teal);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;position:relative;z-index:2;border:5px solid var(--pf-navy)}
.pf-step-dot svg{width:26px;height:26px}
.pf-step:last-child .pf-step-dot{background:var(--pf-gold);color:var(--pf-navy-deep)}
.pf-step h3{font-size:1.08rem;margin-bottom:.5rem;font-family:var(--pf-font-display)}
.pf-step p{font-size:.9rem;color:#C8D4EA;line-height:1.55}
@media(max-width:640px){
  .pf-track-line{top:30px;bottom:30px;left:30px;right:auto;width:5px;height:auto}
  .pf-steps{grid-template-columns:1fr;gap:26px}
  .pf-step{display:grid;grid-template-columns:60px 1fr;column-gap:16px;align-items:start;text-align:left;padding:0}
  .pf-step-dot{margin:0}
  .pf-step h3{margin-top:2px}
  .pf-step h3,.pf-step p{grid-column:2}
}

/* ============================================================
   PRICING
   ============================================================ */
.pf-price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:48px;align-items:stretch}
.pf-price{background:var(--pf-white);border:1px solid var(--pf-line);border-radius:var(--pf-radius);padding:36px 30px;text-align:center;box-shadow:var(--pf-shadow);display:flex;flex-direction:column;position:relative}
.pf-price.featured{border:2px solid var(--pf-gold);box-shadow:var(--pf-shadow-lg);transform:scale(1.03)}
.pf-price-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--pf-gold);color:var(--pf-navy-deep);font-family:var(--pf-font-display);font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;padding:6px 16px;border-radius:999px}
.pf-price h3{font-size:1.12rem;margin-bottom:.4rem}
.pf-price-amt{font-family:var(--pf-font-display);font-weight:800;font-size:2.7rem;color:var(--pf-navy);margin:.4rem 0}
.pf-price-amt sup{font-size:1.2rem;top:-1.1em}
.pf-price-per{color:var(--pf-muted);font-size:.88rem;margin-bottom:1.2rem}
.pf-price ul{list-style:none;text-align:left;margin:0 0 1.6rem;flex:1}
.pf-price li{padding:8px 0 8px 28px;position:relative;font-size:.94rem;color:#33456B;border-bottom:1px dashed var(--pf-line)}
.pf-price li:last-child{border-bottom:0}
.pf-price li::before{content:"✓";position:absolute;left:2px;color:var(--pf-teal-dark);font-weight:800}
@media(max-width:960px){.pf-price-grid{grid-template-columns:1fr 1fr}.pf-price.featured{transform:none}}
@media(max-width:600px){.pf-price-grid{grid-template-columns:1fr}}
.pf-dur-toggle{display:inline-flex;background:#EAF0F8;border-radius:999px;padding:4px;margin-top:22px;gap:2px}
.pf-dur-btn{font-family:var(--pf-font-display);font-weight:700;font-size:.9rem;letter-spacing:.04em;text-transform:uppercase;border:0;background:transparent;color:var(--pf-muted);padding:9px 26px;border-radius:999px;cursor:pointer;transition:background .18s ease,color .18s ease}
.pf-dur-btn.is-active{background:var(--pf-navy);color:#fff}
.pf-price .pf-btns{display:flex;flex-direction:column;gap:10px;margin-top:auto}
.pf-price .pf-btns .pf-btn{width:100%;padding:13px 22px;font-size:.95rem}
.pf-btn-outline{background:transparent;color:var(--pf-navy);border:2px solid var(--pf-line)}
.pf-btn-outline:hover{border-color:var(--pf-navy);background:var(--pf-navy);color:#fff}
.pf-price.featured{background:var(--pf-navy)}
.pf-price.featured h3{color:#fff}
.pf-price.featured .pf-price-amt{color:var(--pf-gold)}
.pf-price.featured .pf-price-per{color:#B9C4DA}
.pf-price.featured li{color:#DCE4F1;border-bottom-color:rgba(255,255,255,.16)}
.pf-price.featured li::before{color:var(--pf-gold)}
.pf-price.featured .pf-btn-outline{border-color:rgba(255,255,255,.55);color:#fff}
.pf-price.featured .pf-btn-outline:hover{background:#fff;border-color:#fff;color:var(--pf-navy)}
.pf-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;margin-top:46px;background:var(--pf-white);border:1px solid var(--pf-line);border-left:5px solid var(--pf-gold);border-radius:var(--pf-radius);padding:22px 26px;box-shadow:var(--pf-shadow)}
.pf-notice-txt{font-size:1rem;color:#33456B;max-width:620px}
.pf-notice-txt strong{color:var(--pf-navy);font-family:var(--pf-font-display)}
.pf-notice-btns{display:flex;gap:10px;flex-wrap:wrap}
.pf-notice-btns .pf-btn{padding:12px 22px;font-size:.92rem}
@media(max-width:640px){.pf-notice-btns .pf-btn{flex:1}}

/* ============================================================
   SUBURBS
   ============================================================ */
.pf-suburbs-sec{background:var(--pf-white)}
.pf-suburb-grid{columns:5 170px;column-gap:34px;margin-top:36px}
.pf-suburb-grid a{display:block;font-size:.88rem;font-weight:600;color:#33456B;padding:4px 0;border-bottom:1px dashed var(--pf-line);break-inside:avoid;transition:.15s}
.pf-suburb-grid a::before{content:"→ ";color:var(--pf-gold);font-weight:800}
.pf-suburb-grid a:hover{color:var(--pf-teal-dark);padding-left:5px}

/* ============================================================
   REVIEWS
   ============================================================ */
.pf-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px}
.pf-review{background:var(--pf-white);border:1px solid var(--pf-line);border-radius:var(--pf-radius);padding:30px 28px;box-shadow:var(--pf-shadow);position:relative}
.pf-review::before{content:"“";position:absolute;top:10px;right:22px;font-family:var(--pf-font-display);font-size:4rem;color:var(--pf-gold-soft);line-height:1}
.pf-stars{color:var(--pf-gold);font-size:1.05rem;letter-spacing:2px;margin-bottom:12px}
.pf-review p{font-size:.96rem;color:#33456B;margin-bottom:16px}
.pf-review-name{font-family:var(--pf-font-display);font-weight:700;font-size:.95rem}
.pf-review-sub{font-size:.82rem;color:var(--pf-muted)}
@media(max-width:900px){.pf-reviews{grid-template-columns:1fr}}

/* ============================================================
   FAQ
   ============================================================ */
.pf-faq{max-width:820px;margin:44px auto 0}
.pf-faq-item{background:var(--pf-white);border:1px solid var(--pf-line);border-radius:12px;margin-bottom:12px;overflow:hidden}
.pf-faq-q{width:100%;background:none;border:0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;font-family:var(--pf-font-display);font-weight:700;font-size:1.02rem;color:var(--pf-navy);text-align:left}
.pf-faq-q span{flex:0 0 26px;height:26px;border-radius:50%;background:rgba(42,180,192,.14);color:var(--pf-teal-dark);display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:transform .22s}
.pf-faq-item.open .pf-faq-q span{transform:rotate(45deg);background:var(--pf-gold);color:var(--pf-navy-deep)}
.pf-faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.pf-faq-a p{padding:0 24px 22px;color:var(--pf-muted);font-size:.96rem}

/* ============================================================
   CTA STRIP
   ============================================================ */
.pf-cta{background:linear-gradient(135deg,var(--pf-navy-deep),var(--pf-navy) 60%,#22406B);color:#fff;text-align:center;position:relative;overflow:hidden}
.pf-cta h2{font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:.7rem}
.pf-cta p{color:#C8D4EA;max-width:560px;margin:0 auto 1.8rem}
.pf-cta .pf-hero-ctas{justify-content:center}

/* ============================================================
   CONTENT PAGES / SUBURB TEMPLATE
   ============================================================ */
.pf-page-hero{background:linear-gradient(150deg,var(--pf-navy-deep),var(--pf-navy) 70%);color:#fff;padding:74px 0 66px;position:relative;overflow:hidden}
.pf-page-hero h1{font-size:clamp(1.9rem,4vw,3rem);max-width:820px;margin:.6rem 0 .9rem}
.pf-page-hero .pf-kicker{color:var(--pf-gold)}
.pf-page-hero p{color:#C8D4EA;max-width:660px;font-size:1.08rem}
.pf-crumbs{font-size:.83rem;color:#8FA2C6;margin-bottom:14px}
.pf-crumbs a{color:#C8D4EA}
.pf-prose{max-width:820px}
.pf-prose h2{font-size:1.6rem;margin:2.2rem 0 .8rem}
.pf-prose p{margin-bottom:1.1rem;color:#33456B}
.pf-prose ul{margin:0 0 1.2rem 1.3rem;color:#33456B}
.pf-prose li{margin-bottom:.5rem}
.pf-badge-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:1.6rem}
.pf-badge{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:.82rem;font-weight:600;padding:7px 15px;border-radius:999px}
.pf-badge b{color:var(--pf-gold)}

.pf-testcentre{background:var(--pf-white);border:1px solid var(--pf-line);border-left:5px solid var(--pf-gold);border-radius:12px;padding:28px 30px;margin:2.2rem 0;box-shadow:var(--pf-shadow)}
.pf-testcentre h3{margin-bottom:.5rem}
.pf-testcentre p{color:var(--pf-muted);margin-bottom:0}

/* Contact form */
.pf-form{background:var(--pf-white);border:1px solid var(--pf-line);border-radius:var(--pf-radius);padding:36px;box-shadow:var(--pf-shadow);max-width:640px}
.pf-form label{display:block;font-family:var(--pf-font-display);font-weight:700;font-size:.88rem;margin:16px 0 6px}
.pf-form input,.pf-form select,.pf-form textarea{width:100%;padding:13px 16px;border:1.5px solid var(--pf-line);border-radius:10px;font-family:var(--pf-font-body);font-size:.98rem;background:var(--pf-bg)}
.pf-form input:focus,.pf-form select:focus,.pf-form textarea:focus{outline:none;border-color:var(--pf-teal)}
.pf-form .pf-btn{margin-top:22px;width:100%}
.pf-form-msg{margin-top:16px;padding:13px 16px;border-radius:10px;font-weight:600;display:none}
.pf-form-msg.ok{display:block;background:#FCF0CC;color:var(--pf-navy-deep)}
.pf-form-msg.err{display:block;background:#FBEAE9;color:var(--pf-red)}

/* ============================================================
   FOOTER
   ============================================================ */
.pf-footer{background:var(--pf-navy-deep);color:#AFC0DD;padding:64px 0 0;font-size:.93rem}
.pf-foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:38px;padding-bottom:44px}
.pf-footer h3{color:#fff;font-size:1.1rem;margin-bottom:14px}
.pf-footer h4{color:var(--pf-gold);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}
.pf-footer a{display:block;color:#AFC0DD;padding:5px 0;transition:.15s}
.pf-footer a:hover{color:var(--pf-gold)}
.pf-foot-bot{border-top:1px solid rgba(255,255,255,.1);padding:20px 0;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.82rem;color:#7A8DB3}
.pf-foot-formcol{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:22px}
.pf-foot-form input,.pf-foot-form textarea{width:100%;box-sizing:border-box;background:#fff;border:0;border-radius:8px;padding:11px 13px;margin-bottom:10px;font-family:inherit;font-size:.9rem;color:var(--pf-navy)}
.pf-foot-form textarea{resize:vertical;min-height:72px}
.pf-foot-form input::placeholder,.pf-foot-form textarea::placeholder{color:#8494ad}
.pf-foot-form .pf-btn{width:100%;justify-content:center;margin-top:2px}
.pf-foot-form .pf-form-msg{margin-top:10px;font-size:.85rem}
.pf-foot-sub{margin-top:24px!important}
.pf-foot-loc{display:block;color:#AFC0DD;padding:5px 0}
.pf-foot-social{display:flex;gap:10px;margin-bottom:14px}
.pf-foot-social a{display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:50%;background:var(--pf-gold);transition:background .15s,transform .15s}
.pf-foot-social a:hover{background:#E0A82E;transform:translateY(-2px)}
.pf-foot-social svg{width:19px;height:19px;fill:var(--pf-navy-deep)}
.pf-foot-review{color:var(--pf-gold)!important;font-weight:600}
.pf-foot-about{color:#AFC0DD;font-size:.9rem;line-height:1.6;margin:0 0 14px}
.pf-foot-enrol{display:inline-flex!important;width:auto}
@media(max-width:860px){.pf-foot-formcol{grid-column:1/-1}}
.pf-pkg-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:var(--pf-gold-soft);border:1px solid var(--pf-gold);border-radius:14px;padding:20px 24px}
.pf-pkg-banner strong{display:block;font-family:var(--pf-font-display);font-size:1.35rem;color:var(--pf-navy);margin-top:2px}
.pf-pkg-banner-cta{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:860px){.pf-foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.pf-foot-grid{grid-template-columns:1fr}}

/* WhatsApp float */
.pf-wa{position:fixed;right:20px;bottom:20px;z-index:950;display:flex;align-items:center;gap:10px;background:#25D366;color:#fff;font-family:var(--pf-font-display);font-weight:700;font-size:.92rem;padding:13px 20px;border-radius:999px;box-shadow:0 10px 26px rgba(0,0,0,.28);animation:pfPulse 2.6s infinite}
.pf-wa:hover{color:#fff;transform:translateY(-2px)}
@keyframes pfPulse{0%,100%{box-shadow:0 10px 26px rgba(0,0,0,.28),0 0 0 0 rgba(37,211,102,.45)}50%{box-shadow:0 10px 26px rgba(0,0,0,.28),0 0 0 14px rgba(37,211,102,0)}}
@media(max-width:640px){.pf-wa{padding:11px 15px;font-size:.82rem;right:14px;bottom:14px}}
.pf-mobile-bar{display:none}
@media(max-width:640px){
  .pf-mobile-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:960;background:var(--pf-navy);border-top:1px solid rgba(255,255,255,.14);padding:8px 10px;gap:8px;box-shadow:0 -6px 20px rgba(16,32,61,.28)}
  .pf-mbar-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--pf-font-display);font-weight:700;font-size:.98rem;padding:13px 10px;border-radius:12px;text-decoration:none}
  .pf-mbar-btn svg{width:18px;height:18px;flex:none}
  .pf-mbar-call{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55)}
  .pf-mbar-book{background:var(--pf-gold);color:var(--pf-navy-deep)}
  body{padding-bottom:68px}
  .pf-wa{bottom:80px}
}

/* Reveal on scroll */
.pf-reveal{opacity:0;transform:translateY(22px);transition:opacity .55s ease,transform .55s ease}
.pf-reveal.in{opacity:1;transform:none}

/* 4-column pricing grid for lesson+test packages */
.pf-price-grid.cols-4{grid-template-columns:repeat(4,1fr);gap:20px}
.pf-price-grid.cols-4 .pf-price{padding:30px 22px}
@media(max-width:1080px){.pf-price-grid.cols-4{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.pf-price-grid.cols-4{grid-template-columns:1fr}}

/* Content figure (SEO image with alt/caption) */
.pf-figure{margin:1.8rem 0;border-radius:14px;overflow:hidden;box-shadow:var(--pf-shadow)}
.pf-figure svg{width:100%;height:auto;display:block}
.pf-figure figcaption{background:var(--pf-white);border:1px solid var(--pf-line);border-top:0;padding:12px 18px;font-size:.85rem;color:var(--pf-muted);text-align:center}

/* ============================================================
   HOME PRICE TABLE — full package list, compact
   ============================================================ */
.pf-pricetable{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:44px}
.pf-pt-card{background:var(--pf-white);border:1px solid var(--pf-line);border-radius:var(--pf-radius);box-shadow:var(--pf-shadow);overflow:hidden}
.pf-pt-card.wide{grid-column:1 / -1}
.pf-pt-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;background:linear-gradient(90deg,var(--pf-navy),var(--pf-navy-soft));color:#fff}
.pf-pt-head h3{font-size:1.08rem}
.pf-pt-head span{font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pf-gold)}
.pf-pt-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 22px;border-bottom:1px dashed var(--pf-line)}
.pf-pt-row:last-child{border-bottom:0}
.pf-pt-row .lbl{font-weight:600;font-size:.94rem;color:#33456B}
.pf-pt-row .lbl small{display:block;font-weight:500;font-size:.78rem;color:var(--pf-muted)}
.pf-pt-row .amt{font-family:var(--pf-font-display);font-weight:800;font-size:1.15rem;color:var(--pf-navy);white-space:nowrap}
.pf-pt-row .amt .save{display:block;text-align:right;font-family:var(--pf-font-body);font-size:.72rem;font-weight:700;color:var(--pf-teal-dark)}
.pf-pt-row.hot{background:rgba(245,197,24,.09)}
.pf-pt-grid3{display:grid;grid-template-columns:1fr 1fr 1fr}
.pf-pt-grid3 .pf-pt-row{border-bottom:0;border-right:1px dashed var(--pf-line);flex-direction:column;align-items:flex-start;gap:4px;text-align:left}
.pf-pt-grid3 .pf-pt-row:last-child{border-right:0}
.pf-pt-grid3 .amt{font-size:1.25rem}
@media(max-width:820px){.pf-pricetable{grid-template-columns:1fr}.pf-pt-grid3{grid-template-columns:1fr}.pf-pt-grid3 .pf-pt-row{border-right:0;border-bottom:1px dashed var(--pf-line);flex-direction:row;align-items:center;justify-content:space-between}}

/* ============================================================
   HOME PRICE — Style D (featured hero + columns)
   ============================================================ */
.pf-hero-pack{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;margin-top:44px}
.pf-hp-feat{background:linear-gradient(150deg,var(--pf-navy-deep),var(--pf-navy) 65%,#22406B);color:#fff;border-radius:18px;padding:36px;position:relative;overflow:hidden;box-shadow:var(--pf-shadow-lg)}
.pf-hp-feat::after{content:"";position:absolute;right:-40px;bottom:-40px;width:180px;height:180px;border:2px dashed rgba(245,197,24,.25);border-radius:50%}
.pf-hp-feat .pf-hp-badge{background:var(--pf-gold);color:var(--pf-navy-deep);font-family:var(--pf-font-display);font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;padding:6px 15px;border-radius:999px;display:inline-block;margin-bottom:16px}
.pf-hp-feat h3{font-size:1.5rem;margin-bottom:4px}
.pf-hp-feat .pf-hp-big{font-family:var(--pf-font-display);font-weight:800;font-size:3.2rem;color:var(--pf-gold);line-height:1;margin:12px 0}
.pf-hp-feat .pf-hp-big small{font-size:1rem;color:#C8D4EA;font-weight:600}
.pf-hp-feat p{color:#C8D4EA;font-size:.95rem;margin-bottom:22px;position:relative;z-index:1}
.pf-hp-feat .pf-btn{position:relative;z-index:1}
.pf-hp-side{display:grid;grid-template-rows:1fr 1fr;gap:18px}
.pf-hp-card{background:var(--pf-white);border:1px solid var(--pf-line);border-radius:16px;padding:24px 26px;box-shadow:var(--pf-shadow);display:flex;flex-direction:column;justify-content:center}
.pf-hp-card h4{font-size:1.02rem;margin-bottom:6px}
.pf-hp-card .pf-hp-p{font-family:var(--pf-font-display);font-weight:800;font-size:1.9rem;color:var(--pf-navy)}
.pf-hp-card .pf-hp-p small{font-size:.85rem;color:var(--pf-muted);font-weight:500;font-family:var(--pf-font-body)}
.pf-pack-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:34px}
.pf-pack-col h4{font-family:var(--pf-font-display);font-size:.78rem;letter-spacing:.11em;text-transform:uppercase;color:var(--pf-teal-dark);border-bottom:2px solid var(--pf-gold);display:inline-block;padding-bottom:4px;margin-bottom:12px}
.pf-pack-col ul{list-style:none;margin:0}
.pf-pack-col li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px dashed var(--pf-line);font-size:.9rem}
.pf-pack-col li:last-child{border-bottom:0}
.pf-pack-col li span{color:#33456B;font-weight:600}
.pf-pack-col li b{font-family:var(--pf-font-display);color:var(--pf-navy);white-space:nowrap}
.pf-pack-col li b i{display:block;font-style:normal;font-family:var(--pf-font-body);font-size:.68rem;font-weight:700;color:var(--pf-teal-dark);text-align:right}
@media(max-width:860px){.pf-hero-pack{grid-template-columns:1fr}.pf-pack-cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.pf-pack-cols{grid-template-columns:1fr}}

/* ============================================================
   HOME PRICE — Bold navy package cards (Stripe booking)
   ============================================================ */
.pf-pkgrow{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px}
.pf-pkg{background:linear-gradient(160deg,var(--pf-navy),var(--pf-navy-deep));border-radius:16px;padding:28px 22px;text-align:center;color:#fff;position:relative;box-shadow:0 14px 34px rgba(16,32,61,.22);transition:transform .2s ease}
.pf-pkg:hover{transform:translateY(-6px)}
.pf-pkg.feat{outline:3px solid var(--pf-gold);outline-offset:-3px}
.pf-pkg-flag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--pf-gold);color:var(--pf-navy-deep);font-family:var(--pf-font-display);font-weight:800;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 13px;border-radius:999px;white-space:nowrap}
.pf-pkg-lbl{font-family:var(--pf-font-display);font-weight:700;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:#C8D4EA;margin-bottom:6px}
.pf-pkg-price{font-family:var(--pf-font-display);font-weight:800;font-size:2.7rem;line-height:1;color:var(--pf-gold);margin:4px 0}
.pf-pkg-save{font-family:var(--pf-font-display);font-weight:800;font-size:.74rem;color:#fff;background:rgba(255,255,255,.12);display:inline-block;padding:3px 12px;border-radius:999px;margin-bottom:18px;min-height:22px}
.pf-pkg-btn{display:block;padding:12px;border-radius:9px;font-family:var(--pf-font-display);font-weight:700;font-size:.92rem;text-decoration:none;background:var(--pf-gold);color:var(--pf-navy-deep);transition:.15s}
.pf-pkg-btn:hover{background:#FFD435;color:var(--pf-navy-deep)}
.pf-pkg.feat .pf-pkg-btn{background:var(--pf-gold)}
@media(max-width:980px){.pf-pkgrow{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.pf-pkgrow{grid-template-columns:1fr}}

/* ============================================================
   HOME PRICE — Interactive numbered sidebar
   ============================================================ */
.pf-sb-sec{background:var(--pf-white)}
.pf-sb-layout{display:grid;grid-template-columns:350px 1fr;gap:30px;align-items:start;margin-top:44px}
.pf-sb-list{display:flex;flex-direction:column;gap:12px}
.pf-sb-item{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--pf-bg);border:1px solid var(--pf-line);border-radius:14px;padding:15px 18px;cursor:pointer;box-shadow:var(--pf-shadow);transition:transform .16s ease,border-color .16s ease;font-family:var(--pf-font-body)}
.pf-sb-item:hover{transform:translateX(4px);border-color:var(--pf-teal)}
.pf-sb-item.active{background:linear-gradient(150deg,var(--pf-navy),var(--pf-navy-deep));border-color:var(--pf-navy)}
.pf-sb-num{font-family:var(--pf-font-display);font-weight:800;font-size:1rem;color:var(--pf-gold);flex:0 0 24px}
.pf-sb-txt{flex:1;min-width:0}
.pf-sb-txt b{display:block;font-family:var(--pf-font-display);font-size:1rem;color:var(--pf-navy);line-height:1.2}
.pf-sb-txt small{color:var(--pf-muted);font-size:.85rem}
.pf-sb-item.active .pf-sb-txt b{color:#fff}
.pf-sb-item.active .pf-sb-txt small{color:var(--pf-gold)}
.pf-sb-ic{flex:0 0 34px;height:34px;border-radius:9px;background:rgba(42,180,192,.12);color:var(--pf-teal-dark);display:flex;align-items:center;justify-content:center}
.pf-sb-item.active .pf-sb-ic{background:rgba(255,255,255,.14);color:#fff}
.pf-sb-badge{flex:0 0 auto;font-family:var(--pf-font-display);font-weight:800;font-size:.64rem;letter-spacing:.06em;color:#fff;padding:5px 10px;border-radius:7px}
.pf-sb-badge.hot{background:var(--pf-red)}
.pf-sb-badge.new{background:var(--pf-teal)}

.pf-sb-panels{position:relative}
.pf-sb-panel{display:none;background:var(--pf-bg);border:1px solid var(--pf-line);border-radius:18px;padding:36px;box-shadow:var(--pf-shadow)}
.pf-sb-panel.active{display:block;animation:pfFade .3s ease}
@keyframes pfFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.pf-sb-panel .pf-sb-tag{display:inline-block;background:var(--pf-gold);color:var(--pf-navy-deep);font-family:var(--pf-font-display);font-weight:800;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;padding:6px 14px;border-radius:999px;margin-bottom:14px}
.pf-sb-panel h3{font-size:1.55rem;margin-bottom:8px}
.pf-sb-rows{margin:16px 0 24px}
.pf-sb-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px dashed var(--pf-line)}
.pf-sb-row:last-child{border-bottom:0}
.pf-sb-row span{font-weight:600;color:#33456B}
.pf-sb-row b{font-family:var(--pf-font-display);font-weight:800;font-size:1.3rem;color:var(--pf-navy);white-space:nowrap}
.pf-sb-row b i{display:block;font-style:normal;font-size:.68rem;font-weight:700;color:var(--pf-teal-dark);text-align:right}
.pf-sb-panel p{color:var(--pf-muted);margin-bottom:18px}
.pf-sb-book{display:inline-block;background:var(--pf-gold);color:var(--pf-navy-deep);font-family:var(--pf-font-display);font-weight:700;padding:14px 30px;border-radius:999px;text-decoration:none;transition:.15s}
.pf-sb-book:hover{background:#FFD435;color:var(--pf-navy-deep)}
.pf-sb-alt{display:inline-block;margin-left:14px;color:var(--pf-navy);font-weight:700;text-decoration:none;font-family:var(--pf-font-display)}
@media(max-width:820px){.pf-sb-layout{grid-template-columns:1fr}.pf-sb-item:hover{transform:none}}

/* ============================================================
   BLOG — Recent posts (screenshot style)
   ============================================================ */
.pf-blog-sec{background:var(--pf-gold)}
.pf-blog-sec .pf-kicker{color:var(--pf-navy-deep)}
.pf-blog-sec .pf-kicker::before{background:var(--pf-navy)}
.pf-blog-sec .pf-sec-title{color:var(--pf-navy-deep)}
.pf-blog-sec .pf-sec-sub{color:#5a4d10}
.pf-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:44px}
.pf-blog-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 14px 34px rgba(16,32,61,.18);display:flex;flex-direction:column;transition:transform .2s ease}
.pf-blog-card:hover{transform:translateY(-5px)}
.pf-blog-thumb{position:relative;aspect-ratio:16/10;background:linear-gradient(150deg,var(--pf-navy),var(--pf-navy-deep));overflow:hidden}
.pf-blog-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pf-blog-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,var(--pf-navy),var(--pf-navy-deep))}
.pf-blog-ph img{width:64px;height:64px;object-fit:contain}
.pf-blog-date{position:absolute;left:20px;bottom:-22px;background:var(--pf-navy);color:#fff;border-radius:10px;padding:8px 14px;text-align:center;font-family:var(--pf-font-display);line-height:1;box-shadow:0 8px 18px rgba(16,32,61,.3)}
.pf-blog-date b{display:block;font-size:1.3rem;font-weight:800}
.pf-blog-date{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pf-blog-body{padding:34px 24px 26px;display:flex;flex-direction:column;flex:1}
.pf-blog-body h3{font-size:1.18rem;line-height:1.3;margin-bottom:10px}
.pf-blog-body h3 a{color:var(--pf-navy);text-decoration:none}
.pf-blog-body h3 a:hover{color:var(--pf-teal-dark)}
.pf-blog-body p{color:var(--pf-muted);font-size:.94rem;margin-bottom:18px;flex:1}
.pf-blog-more{align-self:flex-start;background:var(--pf-navy);color:#fff;font-family:var(--pf-font-display);font-weight:700;font-size:.85rem;padding:11px 20px;border-radius:8px;text-decoration:none;transition:.15s}
.pf-blog-more:hover{background:var(--pf-navy-deep);color:#fff}
@media(max-width:900px){.pf-blog-grid{grid-template-columns:1fr}}

/* Single post + blog archive prose */
.pf-figure{margin:1.6rem 0;border-radius:14px;overflow:hidden;box-shadow:var(--pf-shadow)}
.pf-figure svg{width:100%;height:auto;display:block}
.pf-figure figcaption{background:var(--pf-white);border:1px solid var(--pf-line);border-top:0;padding:12px 18px;font-size:.85rem;color:var(--pf-muted);text-align:center}

/* ============================================================
   HERO — split layout with booking form card (v26)
   ============================================================ */
.pf-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:82px 0 94px}
.pf-hero-copy{max-width:600px}
.pf-hero-copy .pf-hero-ctas{margin-bottom:1.4rem}
.pf-trust-pill{display:inline-flex;align-items:center;gap:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);color:#DCE5F4;font-family:var(--pf-font-display);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:7px 16px 7px 8px;border-radius:999px}
.pf-trust-pill-dots{display:inline-flex;align-items:center}
.pf-trust-pill-dots i{width:22px;height:22px;border-radius:50%;border:2px solid var(--pf-navy-deep);margin-right:-8px;background:linear-gradient(135deg,var(--pf-teal),var(--pf-gold))}
.pf-trust-pill-dots i:nth-child(2){background:linear-gradient(135deg,var(--pf-gold),var(--pf-teal-dark))}
.pf-trust-pill-dots i:nth-child(3){background:linear-gradient(135deg,var(--pf-teal-dark),var(--pf-navy-soft));margin-right:2px}
.pf-hero-copy h1{font-size:clamp(2.05rem,4.5vw,3.35rem);font-weight:800;margin:1.05rem 0 1.1rem;line-height:1.12;color:#fff}
.pf-hero-copy h1 em{font-style:normal;color:var(--pf-gold)}
.pf-hero-badges{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:1.6rem}
.pf-hero-badge{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:13px 15px}
.pf-hero-badge .pf-hb-ic{font-size:1.3rem;line-height:1;flex:0 0 auto}
.pf-hero-badge b{display:block;font-family:var(--pf-font-display);font-weight:800;font-size:1.02rem;color:#fff;line-height:1.2}
.pf-hero-badge small{display:block;font-size:.78rem;color:#AEBDD8}

/* Booking form card */
.pf-hero-form-card{position:relative;background:linear-gradient(180deg,rgba(36,54,92,.55),rgba(16,32,61,.66));border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:24px;box-shadow:var(--pf-shadow-lg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.pf-hero-alert{display:flex;align-items:center;justify-content:center;gap:9px;background:rgba(192,34,26,.16);border:1px solid rgba(192,34,26,.45);color:#FCB4AF;font-size:.82rem;font-weight:600;text-align:center;padding:11px 14px;border-radius:13px;line-height:1.35}
.pf-alert-dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:#E5484D;animation:pf-pulse 1.9s infinite}
@keyframes pf-pulse{0%{box-shadow:0 0 0 0 rgba(229,72,77,.55)}70%{box-shadow:0 0 0 8px rgba(229,72,77,0)}100%{box-shadow:0 0 0 0 rgba(229,72,77,0)}}
.pf-hero-form-pill{display:block;width:max-content;margin:18px auto 0;background:var(--pf-gold);color:var(--pf-navy-deep);font-family:var(--pf-font-display);font-weight:800;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:8px 18px;border-radius:999px}
.pf-hero-form-title{text-align:center;color:#fff;font-size:1.5rem;margin:12px 0 4px}
.pf-hero-form-sub{text-align:center;color:#AEBDD8;font-size:.9rem;margin-bottom:18px}
.pf-hero-form .pf-hf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pf-hero-form .pf-field{margin-bottom:12px}
.pf-hero-form input,.pf-hero-form select,.pf-hero-form textarea{width:100%;padding:14px 15px;background:rgba(16,32,61,.55);border:1.5px solid rgba(255,255,255,.14);border-radius:12px;color:#fff;font-family:var(--pf-font-body);font-size:.96rem}
.pf-hero-form textarea{resize:vertical}
.pf-hero-form input::placeholder,.pf-hero-form textarea::placeholder{color:#8EA0C2}
.pf-hero-form select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%238EA0C2' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.pf-hero-form select:invalid{color:#8EA0C2}
.pf-hero-form option{color:#1B2A4A}
.pf-hero-form input:focus,.pf-hero-form select:focus,.pf-hero-form textarea:focus{outline:none;border-color:var(--pf-gold)}
.pf-hero-form .pf-btn{width:100%;margin-top:4px}
.pf-hero-form .pf-form-msg{margin-top:12px}
.pf-hf-reassure{text-align:center;color:#9FB0D0;font-size:.8rem;margin-top:12px}
.pf-hf-call{text-align:center;font-family:var(--pf-font-display);font-weight:700;font-size:.95rem;margin-top:4px;color:var(--pf-gold)}
.pf-hf-call a{color:var(--pf-gold)}
.pf-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:960px){
  .pf-hero-grid{grid-template-columns:1fr;gap:34px;padding:60px 0 68px}
  .pf-hero-copy{max-width:none}
  .pf-hero-form-card{max-width:520px;width:100%;margin:0 auto}
}
@media(max-width:520px){
  .pf-hero-badges{grid-template-columns:1fr}
  .pf-hero-form .pf-hf-row{grid-template-columns:1fr}
  .pf-hero-copy .pf-hero-ctas .pf-btn{flex:1 1 auto}
}

/* ============================================================
   SERVICES — photo-style cards with badge + arrow (v29)
   ============================================================ */
.pf-svc-sec .pf-center{margin-bottom:8px}
.pf-services{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px}
.pf-svc{position:relative;display:flex;flex-direction:column;background:var(--pf-white);border:1px solid var(--pf-line);border-radius:16px;box-shadow:var(--pf-shadow);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.pf-svc:hover{transform:translateY(-6px);box-shadow:var(--pf-shadow-lg)}
.pf-svc-media{position:relative;height:172px;background:linear-gradient(150deg,var(--pf-navy) 0%,var(--pf-navy-soft) 55%,var(--pf-teal-dark) 100%);background-size:cover;background-position:center}
/* swap any card's gradient for a real photo later, e.g.:
   .pf-svc-m1 .pf-svc-media{background-image:url(images/service-beginner.jpg)} */
.pf-svc-deco{position:absolute;inset:0;width:100%;height:100%;fill:none;opacity:.45;pointer-events:none}
.pf-svc-deco path{stroke:var(--pf-teal);stroke-width:2.4;stroke-dasharray:9 8;fill:none}
.pf-svc-deco circle{fill:var(--pf-gold);stroke:none}
.pf-svc-badge{position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);width:64px;height:64px;border-radius:50%;background:var(--pf-white);border:3px solid var(--pf-gold);box-shadow:0 6px 18px rgba(16,32,61,.20);display:flex;align-items:center;justify-content:center;z-index:2}
.pf-svc-badge svg{width:30px;height:30px}
.pf-svc-body{display:flex;flex-direction:column;flex:1;text-align:center;padding:46px 22px 26px}
.pf-svc-body h3{font-size:1.14rem;margin-bottom:.5rem}
.pf-svc-body p{color:var(--pf-muted);font-size:.93rem;line-height:1.6;margin-bottom:20px;flex:1}
.pf-svc-arrow{align-self:center;width:46px;height:46px;border-radius:12px;background:var(--pf-gold);display:flex;align-items:center;justify-content:center;transition:background .18s ease,transform .18s ease}
.pf-svc-arrow svg{width:20px;height:20px;fill:var(--pf-navy-deep)}
.pf-svc-arrow:hover{background:#E0A82E;transform:translateX(3px)}
@media(max-width:980px){.pf-services{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pf-services{grid-template-columns:1fr}.pf-svc-media{height:158px}}

/* ============================================================
   TESTIMONIALS — carousel cards with stars, quote, avatar (v30)
   ============================================================ */
.pf-tst-head{display:flex;align-items:center;gap:16px}
.pf-tst-head .pf-center{flex:1}
.pf-tst-arrow{flex:0 0 auto;width:48px;height:48px;border-radius:12px;background:transparent;border:2px solid var(--pf-gold);color:var(--pf-gold);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .18s ease,color .18s ease}
.pf-tst-arrow svg{width:22px;height:22px}
.pf-tst-arrow:hover{background:var(--pf-gold);color:var(--pf-navy-deep)}
.pf-tst-track{display:flex;gap:22px;margin-top:38px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 14px;-ms-overflow-style:none;scrollbar-width:none}
.pf-tst-track::-webkit-scrollbar{display:none}
.pf-tst-card{flex:0 0 calc((100% - 44px)/3);scroll-snap-align:start;background:var(--pf-white);border:1px solid var(--pf-line);border-radius:16px;box-shadow:var(--pf-shadow);padding:28px 26px 24px;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}
.pf-tst-card:hover{transform:translateY(-5px);box-shadow:var(--pf-shadow-lg)}
.pf-tst-top{display:flex;align-items:flex-start;justify-content:space-between}
.pf-tst-stars{display:inline-flex;gap:3px;font-size:1.05rem;line-height:1}
.pf-tst-stars span{color:var(--pf-gold)}
.pf-tst-stars span.off{color:#D8DEEA}
.pf-tst-quote{color:var(--pf-gold);opacity:.9}
.pf-tst-quote svg{width:30px;height:30px;fill:currentColor}
.pf-tst-divider{border-top:2px dotted var(--pf-line);margin:16px 0 18px}
.pf-tst-text{color:var(--pf-muted);font-size:.96rem;line-height:1.66;flex:1;margin-bottom:22px}
.pf-tst-foot{display:flex;align-items:center;gap:12px}
.pf-tst-avatar{flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--pf-navy),var(--pf-teal-dark));color:#fff;font-family:var(--pf-font-display);font-weight:800;font-size:1.05rem;display:flex;align-items:center;justify-content:center}
.pf-tst-meta{min-width:0}
.pf-tst-name{font-family:var(--pf-font-display);font-weight:700;color:var(--pf-gold);font-size:.98rem;line-height:1.25}
.pf-tst-src{font-size:.82rem;color:var(--pf-navy);font-weight:600}
.pf-tst-line{flex:1;height:2px;background:var(--pf-gold);opacity:.45;border-radius:2px;margin-left:6px;max-width:48px}
@media(max-width:900px){.pf-tst-card{flex:0 0 calc((100% - 22px)/2)}}
@media(max-width:600px){.pf-tst-card{flex:0 0 86%}.pf-tst-arrow{display:none}}

/* ============================================================
   CTA BAND — full-width guidance banner (v31)
   ============================================================ */
.pf-cta-band{position:relative;overflow:hidden;color:#fff;text-align:center;padding:96px 0;background:linear-gradient(150deg,var(--pf-navy-deep) 0%,var(--pf-navy) 55%,#22406B 100%);background-size:cover;background-position:center}
/* To use a real photo, keep a dark gradient on top for legible text, e.g.:
   .pf-cta-band{background-image:linear-gradient(rgba(16,32,61,.78),rgba(16,32,61,.82)),url(images/cta-road.jpg)} */
.pf-cta-route{position:absolute;inset:0;width:100%;height:100%;opacity:.4;z-index:1;pointer-events:none}
.pf-cta-route path{stroke:var(--pf-teal);stroke-width:2.5;stroke-dasharray:10 9;fill:none}
.pf-cta-route circle{fill:var(--pf-gold)}
.pf-cta-band .pf-wrap{position:relative;z-index:2}
.pf-cta-band .pf-kicker{color:var(--pf-gold);justify-content:center;display:inline-flex}
.pf-cta-band .pf-kicker::before{background:var(--pf-teal)}
.pf-cta-band h2{font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:800;color:#fff;margin:14px auto 26px;max-width:900px;line-height:1.26}
.pf-cta-band h2 em{font-style:normal;color:var(--pf-gold)}
.pf-cta-band .pf-hero-ctas{justify-content:center;margin-bottom:0}
.pf-btn-arrow{width:18px;height:18px;flex:0 0 auto}
@media(max-width:600px){.pf-cta-band{padding:72px 0}}


/* ============================================================
   STYLE F — lesson selector + navy/gold package cards
   ============================================================ */
.pf-fsel{display:grid;grid-template-columns:230px 1fr;gap:34px;align-items:center;margin-top:34px}
.pf-fsel-rail{display:flex;flex-direction:column;gap:4px}
.pf-fsel-r{position:relative;font-family:var(--pf-font-display);font-weight:800;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--pf-muted);background:none;border:0;cursor:pointer;text-align:left;padding:14px 10px;transition:color .15s}
.pf-fsel-r:hover{color:var(--pf-navy)}
.pf-fsel-r.is-on{color:var(--pf-navy-deep);padding-left:18px}
.pf-fsel-r.is-on::before{content:"";position:absolute;inset:0;background:var(--pf-gold);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%);z-index:0;box-shadow:0 8px 18px rgba(245,197,24,.35)}
.pf-fsel-lbl{position:relative;z-index:1}
.pf-fsel-panel{display:none}
.pf-fsel-panel.is-on{display:block}
.pf-fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px}
.pf-fcard{position:relative;overflow:hidden;background:linear-gradient(150deg,var(--pf-navy),var(--pf-navy-deep));border-radius:12px;padding:22px 18px;text-align:center;box-shadow:0 14px 34px rgba(16,32,61,.26)}
.pf-fcard::before{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.04);top:44px;left:50%;transform:translateX(-50%);z-index:0}
.pf-fcard>*{position:relative;z-index:1}
.pf-fcard-top{font-family:var(--pf-font-display);font-weight:800;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;margin-bottom:10px}
.pf-fcard-price{font-family:var(--pf-font-display);font-weight:800;font-size:2.5rem;line-height:1;color:var(--pf-gold)}
.pf-fcard-save{font-family:var(--pf-font-display);font-weight:800;font-size:.78rem;letter-spacing:.06em;color:var(--pf-gold);margin-top:6px;min-height:1em}
.pf-fcard-save:empty{margin-top:0;min-height:0}
.pf-fcard-btn{display:block;margin-top:16px;font-family:var(--pf-font-display);font-weight:700;font-size:.86rem;padding:12px;border-radius:8px;text-decoration:none;background:#fff;color:var(--pf-navy);transition:background .15s}
.pf-fcard-btn:hover{background:var(--pf-gold-soft)}
@media(max-width:820px){
  .pf-fsel{grid-template-columns:1fr;gap:20px}
  .pf-fsel-rail{flex-direction:row;overflow-x:auto;gap:6px;scrollbar-width:none}
  .pf-fsel-rail::-webkit-scrollbar{display:none}
  .pf-fsel-r{flex:0 0 auto;white-space:nowrap;padding:12px 14px}
  .pf-fsel-r.is-on{padding-left:14px}
  .pf-fsel-r.is-on::before{clip-path:none;border-radius:8px}
}
@media(max-width:560px){
  .pf-fgrid{grid-template-columns:1fr}
}

/* Tabbed lesson selector (home) — navy/gold */
.pf-tsel{margin-top:30px}
.pf-tsel-tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--pf-line);margin-bottom:24px}
.pf-tsel-tab{font-family:var(--pf-font-display);font-weight:700;font-size:.92rem;color:var(--pf-muted);background:none;border:0;cursor:pointer;padding:12px 8px;margin-bottom:-1px;border-bottom:3px solid transparent;transition:color .15s,border-color .15s}
.pf-tsel-tab:hover{color:var(--pf-navy)}
.pf-tsel-tab.is-on{color:var(--pf-navy);border-bottom-color:var(--pf-gold)}
.pf-tsel-panel{display:none}
.pf-tsel-panel.is-on{display:block}
.pf-tsel-blurb{color:var(--pf-muted);font-size:.95rem;line-height:1.6;margin:0 0 18px;max-width:640px}
.pf-tsel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}
.pf-tsel-card{position:relative;display:flex;flex-direction:column;text-align:left;background:var(--pf-white);border:2px solid var(--pf-line);border-radius:14px;padding:20px 18px;cursor:pointer;font-family:var(--pf-font-body);box-shadow:var(--pf-shadow);transition:border-color .15s,background .15s,transform .15s}
.pf-tsel-card:hover{transform:translateY(-3px);border-color:var(--pf-gold-soft)}
.pf-tsel-card.is-sel{border-color:var(--pf-gold);background:#FEF6E7}
.pf-tsel-lbl{font-family:var(--pf-font-display);font-weight:700;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--pf-muted)}
.pf-tsel-name{font-family:var(--pf-font-display);font-weight:800;font-size:1.1rem;color:var(--pf-navy);margin-top:8px}
.pf-tsel-save{align-self:flex-start;background:var(--pf-gold-soft);color:#7A5A00;font-family:var(--pf-font-display);font-weight:700;font-size:.7rem;letter-spacing:.03em;padding:2px 9px;border-radius:999px;margin-top:8px}
.pf-tsel-amt{font-family:var(--pf-font-display);font-weight:800;font-size:2rem;line-height:1;color:var(--pf-navy);margin-top:12px}
.pf-tsel-cur{color:var(--pf-gold);font-size:1.2rem;vertical-align:6px;margin-right:1px}
.pf-tsel-pick{display:block;margin-top:16px;text-align:center;font-family:var(--pf-font-display);font-weight:700;font-size:.86rem;padding:11px;border-radius:9px;background:var(--pf-gold);color:var(--pf-navy-deep)}
.pf-tsel-pick-on{display:none}
.pf-tsel-card.is-sel .pf-tsel-pick-on{display:inline}
.pf-tsel-card.is-sel .pf-tsel-pick-off{display:none}
.pf-tsel-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--pf-bg);border:1px solid var(--pf-line);border-radius:14px;padding:16px 20px;margin-top:22px}
.pf-tsel-sum-ic{color:var(--pf-gold);font-weight:800;font-size:1.05rem}
.pf-tsel-sum-text{color:var(--pf-navy);font-size:.98rem}
.pf-tsel-sum-text b{font-family:var(--pf-font-display)}
.pf-tsel-book{margin-left:auto;padding:12px 24px;font-size:.92rem}
@media(max-width:560px){
  .pf-tsel-grid{grid-template-columns:1fr}
  .pf-tsel-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .pf-tsel-tabs::-webkit-scrollbar{display:none}
  .pf-tsel-tab{flex:0 0 auto;white-space:nowrap}
  .pf-tsel-book{margin-left:0;width:100%}
}

/* Homepage lesson option cards — icon badge + checklist style, per-card accent color */
.pf-lcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin-top:8px}
.pf-lcard{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--pf-white);border:1px solid var(--pf-line);border-top:4px solid var(--lc-accent);border-radius:16px;padding:28px 18px 22px;box-shadow:var(--pf-shadow);transition:transform .15s,box-shadow .15s}
.pf-lcard:hover{transform:translateY(-4px);box-shadow:var(--pf-shadow-lg)}
.pf-lcard-badge{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:var(--lc-tint);color:var(--lc-accent);font-family:var(--pf-font-display);font-weight:700;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 14px;border-radius:20px;white-space:nowrap;border:1px solid var(--lc-mid)}
.pf-lcard-name{font-family:var(--pf-font-display);font-weight:800;font-size:.98rem;color:var(--pf-navy);margin-bottom:14px;min-height:2.4em;display:flex;align-items:center}
.pf-lcard-icon{width:64px;height:64px;border-radius:50%;background:var(--lc-tint);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.pf-lcard-icon svg{width:32px;height:32px;color:var(--lc-accent)}
.pf-lcard-price{font-family:var(--pf-font-display);font-weight:800;font-size:2rem;line-height:1;color:var(--pf-navy);margin-bottom:16px}
.pf-lcard-cur{color:var(--lc-accent);font-size:1.1rem;vertical-align:6px;margin-right:1px}
.pf-lcard-check{flex:1;list-style:none;margin:0 0 18px;padding:0;text-align:left;width:100%}
.pf-lcard-check li{display:flex;align-items:flex-start;gap:7px;font-size:.82rem;color:var(--pf-muted);line-height:1.5;margin-bottom:8px}
.pf-lcard-check svg{flex:none;color:var(--lc-accent);margin-top:3px}
.pf-lcard-btn{width:100%;background:var(--pf-navy);color:#fff;font-family:var(--pf-font-display);font-weight:700;font-size:.86rem;padding:12px;border-radius:10px;text-decoration:none}
.pf-lcard-btn:hover{background:var(--pf-navy-deep)}
.pf-lcard.best{border:2px solid var(--lc-mid);border-top:2px solid var(--lc-mid)}
.pf-lcard.best .pf-lcard-icon{background:var(--lc-mid)}
.pf-lcard.best .pf-lcard-icon svg{color:#fff}
.pf-lcard.best .pf-lcard-btn{background:var(--lc-mid);color:#fff}
.pf-lcard.best .pf-lcard-btn:hover{filter:brightness(.92)}
.pf-lcards-all{font-size:.95rem;font-weight:600;color:var(--pf-teal-dark);text-decoration:none}
.pf-lcards-all:hover{color:var(--pf-navy)}

/* Compact price tiles (pricing page) — navy/gold */
.pf-tile-group{margin-bottom:28px}
.pf-tile-cat{font-family:var(--pf-font-display);font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pf-muted);margin:0 0 16px}
.pf-tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.pf-tile{display:flex;flex-direction:column;background:var(--pf-white);border:1px solid var(--pf-line);border-radius:14px;padding:20px 16px;text-align:center;box-shadow:var(--pf-shadow);transition:transform .15s,box-shadow .15s}
.pf-tile:hover{transform:translateY(-3px);box-shadow:var(--pf-shadow-lg)}
.pf-tile-name{font-family:var(--pf-font-display);font-weight:700;font-size:1rem;color:var(--pf-navy)}
.pf-tile-sub{font-size:.78rem;color:var(--pf-muted);margin-bottom:10px}
.pf-tile-price{font-family:var(--pf-font-display);font-weight:800;font-size:2rem;line-height:1;color:var(--pf-navy)}
.pf-tile-cur{color:var(--pf-gold);font-size:1.2rem;vertical-align:5px;margin-right:1px}
.pf-tile-tag{display:inline-block;background:var(--pf-gold-soft);color:#7A5A00;font-family:var(--pf-font-display);font-weight:700;font-size:.7rem;padding:2px 9px;border-radius:20px;margin-top:8px}
.pf-tile-spacer{height:8px;margin-top:8px}
.pf-tile-book{margin-top:16px;background:var(--pf-gold);color:var(--pf-navy-deep);font-family:var(--pf-font-display);font-weight:700;font-size:.86rem;padding:10px;border-radius:9px;text-decoration:none}
.pf-tile-book:hover{background:#E0A82E}
.pf-tile.hot{background:var(--pf-navy);border-color:var(--pf-navy)}
.pf-tile.hot .pf-tile-name{color:#fff}
.pf-tile.hot .pf-tile-sub{color:#B9C4DA}
.pf-tile.hot .pf-tile-price,.pf-tile.hot .pf-tile-cur{color:var(--pf-gold)}
.pf-tile.hot .pf-tile-tag{background:rgba(245,197,24,.18);color:var(--pf-gold)}

/* Circular price badges removed — pricing page uses tiles; this block collided
   with the .pf-badge / .pf-badge-row pills used on page heroes. */



/* ============================================================
   v40 — a11y, page-experience, AEO price table, selector copy
   ============================================================ */
.pf-skip{position:absolute;left:-999px;top:0;z-index:1000;background:var(--pf-gold);color:var(--pf-navy-deep);font-family:var(--pf-font-display);font-weight:700;padding:12px 18px;border-radius:0 0 10px 0;text-decoration:none}
.pf-skip:focus{left:0}
#pf-main{outline:none}
.pf-fsel-blurb{color:var(--pf-muted);font-size:.95rem;line-height:1.6;margin:0 0 16px;max-width:640px}
.pf-price-table{width:100%;max-width:720px;margin:0 auto;border-collapse:collapse;background:var(--pf-white);border:1px solid var(--pf-line);border-radius:var(--pf-radius);overflow:hidden;box-shadow:var(--pf-shadow)}
.pf-price-table caption{caption-side:bottom;color:var(--pf-muted);font-size:.82rem;padding:12px}
.pf-price-table th,.pf-price-table td{padding:13px 18px;border-bottom:1px solid var(--pf-line);font-size:.96rem;text-align:left}
.pf-price-table thead th{background:var(--pf-navy);color:#fff;font-family:var(--pf-font-display);letter-spacing:.02em}
.pf-price-table tbody th{font-weight:600;color:var(--pf-ink)}
.pf-price-table td{font-family:var(--pf-font-display);font-weight:800;color:var(--pf-navy);text-align:right;white-space:nowrap}
.pf-price-table tbody tr:last-child th,.pf-price-table tbody tr:last-child td{border-bottom:0}
.pf-price-table tbody tr:hover{background:var(--pf-bg)}
.pf-404{text-align:center;padding:70px 0}
.pf-404-code{font-family:var(--pf-font-display);font-weight:800;font-size:clamp(3.5rem,12vw,7rem);color:var(--pf-gold);line-height:1}
.pf-404 h1{font-size:clamp(1.5rem,4vw,2.2rem);color:var(--pf-navy);margin:.4rem 0 1rem}
.pf-404 p{color:var(--pf-muted);max-width:520px;margin:0 auto 1.6rem}
.pf-404-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:24px}
.pf-404-links a{background:var(--pf-white);border:1px solid var(--pf-line);border-radius:999px;padding:9px 16px;text-decoration:none;color:var(--pf-navy);font-family:var(--pf-font-display);font-weight:700;font-size:.9rem;transition:.15s}
.pf-404-links a:hover{border-color:var(--pf-teal);color:var(--pf-teal-dark)}
@media(max-width:560px){.pf-price-table th,.pf-price-table td{padding:11px 12px;font-size:.9rem}}

/* ============================================================
   v41 — Google Business Profile boost (map + review card)
   ============================================================ */
.pf-map{border-radius:var(--pf-radius);overflow:hidden;box-shadow:var(--pf-shadow);border:1px solid var(--pf-line);max-width:900px;margin:0 auto}
.pf-map iframe{display:block;width:100%;height:340px;border:0}
.pf-review-cta{display:flex;flex-wrap:wrap;align-items:center;gap:24px;justify-content:space-between;max-width:820px;margin:26px auto 0;background:linear-gradient(150deg,var(--pf-navy),var(--pf-navy-deep));color:#fff;border-radius:18px;padding:28px 30px;box-shadow:var(--pf-shadow-lg)}
.pf-review-cta-body{flex:1 1 320px}
.pf-review-stars{color:var(--pf-gold);font-size:1.3rem;letter-spacing:3px;margin-bottom:6px}
.pf-review-cta-body h3{font-family:var(--pf-font-display);font-size:1.3rem;margin:0 0 8px;color:#fff}
.pf-review-cta-body p{color:rgba(255,255,255,.75);margin:0 0 16px;font-size:.95rem}
.pf-review-cta-qr{flex:0 0 auto;text-align:center;background:#fff;border-radius:14px;padding:12px 12px 8px}
.pf-review-cta-qr img{display:block;width:150px;height:150px}
.pf-review-cta-qr span{display:block;margin-top:6px;font-family:var(--pf-font-display);font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--pf-navy)}
@media(max-width:560px){.pf-review-cta{justify-content:center;text-align:center}.pf-review-cta-body{flex-basis:auto}}

/* ============================================================
   v42 — MOBILE & TABLET HARDENING
   (appended last so these overrides win by cascade order)
   ============================================================ */

/* Global mobile safety */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}
body{overflow-x:clip;-webkit-tap-highlight-color:transparent}
img,svg,video,iframe,table{max-width:100%}
.pf-btn{min-height:44px}                 /* comfortable tap target */

/* Prevent iOS "tap-to-zoom" on form fields (needs >=16px font) */
@media(max-width:600px){
  .pf-form input,.pf-form select,.pf-form textarea,
  .pf-hero-form input,.pf-hero-form select,.pf-hero-form textarea{font-size:16px}
}

/* Mobile nav drawer — anchor to the header instead of a fixed 76px,
   so it always sits directly beneath it (top-bar shown or scrolled away) */
@media(max-width:960px){
  .pf-nav{
    position:absolute;top:100%;right:0;bottom:auto;left:0;
    max-height:80dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;
  }
  .pf-nav.open{transform:translateY(0)}
  body.pf-nav-lock{overflow:hidden}          /* stop page scrolling behind the open menu */

  /* burger → X animation */
  .pf-burger.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .pf-burger.is-open span:nth-child(2){opacity:0}
  .pf-burger.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
}

/* Tidy the top-bar on very small phones — one clean line with the phone number */
@media(max-width:480px){
  .pf-topbar .pf-wrap{justify-content:center}
  .pf-topbar .pf-wrap span:first-child{display:none}
}

/* Keep the biggest price numbers from crowding at ~320px */
.pf-hero-pack .pf-hp-feat .pf-hp-big{font-size:clamp(2.4rem,9vw,3.2rem)}
.pf-price-amt{font-size:clamp(2.15rem,8vw,2.7rem)}
.pf-pkg-price,.pf-fcard-price{font-size:clamp(2.1rem,8vw,2.6rem)}

/* ---- Wall of real pass photos (Mitcham/Ringwood) ---- */
.pf-passwall{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:10px}
.pf-passwall .pf-pass{margin:0;overflow:hidden;border-radius:14px;background:#0e1c34;border:1px solid rgba(255,255,255,.07);box-shadow:0 6px 18px rgba(0,0,0,.18)}
.pf-passwall .pf-pass img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;transition:transform .4s ease}
.pf-passwall .pf-pass:hover img{transform:scale(1.04)}
@media(min-width:640px){.pf-passwall{grid-template-columns:repeat(5,1fr)}}

/* Contact booking form — navy/gold (reference style) */
.pf-bform-card{background:linear-gradient(160deg,#132038,#1B2A4A);border:1px solid #24365C;border-radius:18px;padding:32px;max-width:840px;margin:0 auto}
.pf-bform-kicker{font-family:var(--pf-font-display);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pf-gold);margin-bottom:22px}
.pf-bform-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pf-bfield{display:flex;flex-direction:column}
.pf-bfield-full{margin-top:16px}
.pf-bfield label{font-family:var(--pf-font-display);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pf-gold);margin-bottom:6px}
.pf-bfield input,.pf-bfield select,.pf-bfield textarea{background:#1B2A4A;border:1px solid #2f4269;border-radius:8px;padding:12px 13px;color:#fff;font-family:inherit;font-size:.95rem;width:100%;box-sizing:border-box}
.pf-bfield textarea{resize:vertical;min-height:64px}
.pf-bfield input::placeholder,.pf-bfield textarea::placeholder{color:#8FA2C6}
.pf-bfield input:focus,.pf-bfield select:focus,.pf-bfield textarea:focus{outline:none;border-color:var(--pf-gold)}
.pf-bfield select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238FA2C6' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:34px}
.pf-bfield option,.pf-bfield optgroup{background:#16233f;color:#fff}
.pf-bform-btn{margin-top:20px;width:100%;background:linear-gradient(90deg,#E0A82E,#F5C518);color:var(--pf-navy-deep);font-family:var(--pf-font-display);font-weight:800;font-size:1rem;letter-spacing:.03em;border:0;padding:15px;border-radius:10px;cursor:pointer;transition:filter .15s}
.pf-bform-btn:hover{filter:brightness(1.06)}
.pf-bform-note{text-align:center;font-size:.82rem;color:#8FA2C6;margin-top:12px}
.pf-bform .pf-form-msg{margin-top:12px;text-align:center;color:#DCE4F1}
@media(max-width:640px){.pf-bform-grid{grid-template-columns:1fr}.pf-bform-card{padding:24px 20px}}
