/*
 * Harrigan Physiotherapy — v1.3 layer (2026-10-25).
 * Loaded after style.css on every page and scoped to body.v2, which
 * hp_body_class() always adds. The extra class keeps these rules winning over
 * style.css at equal specificity, so don't strip the .v2 prefix without
 * re-checking the cascade. Same palette, copy and photos as v1.2.
 */

.v2{--ease:cubic-bezier(.2,.7,.2,1);--line-soft:#E9ECF0}

/* ---------- Type ---------- */
body.v2{font-family:"Instrument Sans",Helvetica,Arial,sans-serif;font-size:17px;line-height:1.6;color:var(--ink);background:#fff}
.v2 h1,.v2 h2,.v2 h3,.v2 h4{font-family:Newsreader,Georgia,serif;text-wrap:balance;font-optical-sizing:auto}
.v2 h2{letter-spacing:-0.03em;line-height:1.05}
.v2 p{text-wrap:pretty}
.v2 .section h2,.v2 .section-sm h2{font-size:clamp(32px,3.6vw,48px)}
.v2 .card h3{font-family:Newsreader,Georgia,serif;font-size:22px;font-weight:500;letter-spacing:-0.01em}

/* Every mono / uppercase label becomes plain text, or goes where it only
   repeated the heading beneath it. */
.v2 .mono{font-family:inherit;font-size:15px;letter-spacing:0;text-transform:none;color:var(--body)}
.v2 .page-head .mono,.v2 .svc-group .mono,.v2 .loc .mono,.v2 .route .mono{display:none}
.v2 .note,.v2 .ph span,.v2 .hero-media span,.v2 .team-photo span{font-family:inherit;letter-spacing:0;text-transform:none;font-size:14.5px}
.v2 .table .th{font-family:inherit;font-size:14px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--body-dark);background:none;border-bottom:1px solid var(--line-2)}
.v2 .glance h3{font-family:inherit;font-size:16px;letter-spacing:0;text-transform:none;color:var(--navy);font-weight:600}
.v2 .team-body .role{font-family:inherit;font-size:14.5px;letter-spacing:0;text-transform:none;color:var(--teal)}
.v2 .quote cite{text-transform:none;letter-spacing:0;font-size:14.5px}
.v2 .site-footer .foot-label{font-family:inherit;font-size:15px;letter-spacing:0;text-transform:none;color:#fff;font-weight:600;margin:0 0 14px}

/* ---------- Controls ---------- */
.v2 a,.v2 button,.v2 summary{transition:color .2s var(--ease),background-color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
.v2 :focus-visible{outline:2px solid var(--teal-bright);outline-offset:3px;border-radius:2px}
.v2 .btn{border-radius:6px;padding:16px 28px;font-weight:600;letter-spacing:-0.005em}
.v2 .btn-sm{padding:12px 20px}
.v2 .btn:hover{transform:translateY(-1px)}
.v2 .btn:active{transform:translateY(1px)}
.v2 .btn-navy:active{background:var(--navy-800)}
.v2 .wpcf7-submit{background:var(--navy);color:#fff;border:0;border-radius:6px;padding:16px 30px;font:inherit;font-weight:600;cursor:pointer;transition:background-color .2s var(--ease),transform .2s var(--ease)}
.v2 .wpcf7-submit:hover{background:var(--teal);transform:translateY(-1px)}
.v2 .wpcf7-submit:active{transform:translateY(1px)}
.v2 .form input:focus,.v2 .form select:focus,.v2 .form textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(42,169,181,.2)}
.v2 .link-more{font-size:15.5px;font-weight:600;color:var(--navy);text-decoration:underline;text-decoration-color:var(--teal-bright);text-decoration-thickness:2px;text-underline-offset:5px}
.v2 .link-more:hover{color:var(--teal);text-decoration-color:currentColor}
.v2 .link-more:active{color:var(--navy)}
.v2 .main-nav a{position:relative;font-size:15px}
.v2 .main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--teal-bright);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.v2 .main-nav a:hover::after,.v2 .main-nav .current-menu-item>a::after,.v2 .main-nav .current_page_item>a::after{transform:scaleX(1)}
.v2 .nav-toggle:hover{border-color:var(--navy)}
.v2 .nav-toggle:active{transform:translateY(1px)}

/* ---------- One background ---------- */
.v2 .section-grey{background:none}
.v2 .insurer-strip{background:none;border-top:1px solid var(--line-soft);padding:72px 0 80px}
.v2 .insurer-strip h2{font-size:clamp(26px,2.6vw,34px);margin:0 0 36px}

/* Navy call-to-action bands (clinic + locations pages) become open sections. */
.v2 .section-navy{background:none;color:var(--ink);border-top:1px solid var(--line-soft)}
.v2 .section-navy .cta-strip{padding-top:clamp(64px,8vw,112px);padding-bottom:clamp(64px,8vw,112px);gap:28px 48px}
.v2 .cta-strip p{color:var(--navy);font-size:clamp(30px,3.6vw,50px);line-height:1.05;letter-spacing:-0.035em;max-width:20ch}
.v2 .section-navy .btn-white{background:var(--navy);color:#fff}
.v2 .section-navy .btn-white:hover{background:var(--teal);color:#fff}

/* Cards elsewhere on the site lose the box: a rule on top, no border. */
.v2 .card{border:0;border-top:1px solid var(--line-2);border-radius:0;padding:24px 0 0;background:none}
.v2 a.card:hover{border-color:var(--teal)}
.v2 .card-dashed{border-top:1px dashed var(--line-2)}
.v2 .loc-card,.v2 .team-card{border:0;border-radius:0}
.v2 .loc-card .body,.v2 .team-body{padding:22px 0 0}

/* ---------- Inner-page banner: real photo behind it ---------- */
.v2 .page-head{position:relative;isolation:isolate;overflow:hidden;padding:clamp(120px,14vw,200px) 0 clamp(48px,6vw,80px);background:var(--navy) var(--head-img,none) center 40%/cover no-repeat}
.v2 .page-head::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,33,64,.45) 0%,rgba(14,33,64,.78) 55%,rgba(14,33,64,.94) 100%)}
.v2 .page-head h1{font-size:clamp(44px,6.4vw,92px);line-height:.96;letter-spacing:-0.04em;max-width:15ch;margin:0 0 22px}
.v2 .page-head .lede{font-size:clamp(17px,1.4vw,19px);color:#DCE3ED;max-width:56ch}
.v2 .page-head a.back{font-family:inherit;font-size:15px;letter-spacing:0;text-transform:none;color:#DCE3ED;text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(255,255,255,.35)}
.v2 .page-head a.back:hover{color:#fff;text-decoration-color:#fff}

/* ---------- Homepage ---------- */
.v2-section{padding:clamp(72px,9vw,128px) 0}

/* Hero: photo bleeds to the right edge */
.v2-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);background:var(--navy);color:#fff;min-height:min(78vh,720px)}
.v2-hero-copy{align-self:center;padding:96px 56px 96px max(32px,calc((100vw - var(--wrap)) / 2 + 32px))}
.v2-hero-where{margin:0 0 26px;font-size:16px;font-weight:500;color:var(--navy-body)}
.v2-hero h1{font-size:clamp(46px,5.8vw,84px);line-height:.96;letter-spacing:-0.045em;color:#fff;margin:0 0 28px;max-width:14ch}
.v2-hero .lede{font-size:clamp(17px,1.35vw,19px);line-height:1.6;color:var(--navy-body);max-width:46ch;margin:0 0 40px}
.v2-hero-media{background-size:cover;background-position:center;min-height:420px}

/* Three questions: open columns divided by rules */
.v2-qa{padding-bottom:clamp(56px,7vw,96px)}
.v2-qa-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr}
.v2-qa-item{display:flex;flex-direction:column;padding:0 40px;border-left:1px solid var(--line-2)}
.v2-qa-item:first-child{padding-left:0;border-left:0}
.v2-qa-item:last-child{padding-right:0}
.v2-qa-item h3{font-size:clamp(26px,2.4vw,34px);font-weight:500;letter-spacing:-0.025em;line-height:1.1;margin:0 0 16px}
.v2-qa-item:first-child h3{font-size:clamp(30px,2.9vw,42px)}
.v2-qa-item p{color:var(--body);font-size:16.5px;line-height:1.65;margin:0 0 22px;max-width:40ch}
.v2-qa-item .link-more{margin-top:auto;align-self:flex-start}

/* What is bothering you: a typographic list, not tiles */
.v2-problems{border-top:1px solid var(--line-soft)}
.v2-problems-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:64px;align-items:start}
.v2-problems-head{position:sticky;top:120px}
.v2-problems-head h2{font-size:clamp(40px,4.6vw,64px);letter-spacing:-0.04em;line-height:.98;margin:0 0 26px}
.v2-problem-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-2)}
.v2-problem-list li{border-bottom:1px solid var(--line-2)}
.v2-problem-list a{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label arrow" "svc arrow";gap:6px 24px;align-items:center;padding:26px 4px 24px 0;color:var(--navy)}
.v2-problem-label{grid-area:label;font-family:Newsreader,Georgia,serif;font-size:clamp(24px,2.3vw,32px);line-height:1.15;letter-spacing:-0.02em;transition:transform .3s var(--ease),color .2s var(--ease)}
.v2-problem-svc{grid-area:svc;font-size:15px;color:var(--body);transition:transform .3s var(--ease)}
.v2-problem-arrow{grid-area:arrow;color:var(--teal);opacity:.35;transition:opacity .2s var(--ease),transform .3s var(--ease)}
.v2-problem-list a:hover .v2-problem-label,.v2-problem-list a:focus-visible .v2-problem-label{color:var(--teal);transform:translateX(8px)}
.v2-problem-list a:hover .v2-problem-svc,.v2-problem-list a:focus-visible .v2-problem-svc{transform:translateX(8px)}
.v2-problem-list a:hover .v2-problem-arrow,.v2-problem-list a:focus-visible .v2-problem-arrow{opacity:1;transform:translateX(4px)}
.v2-problem-list a:active .v2-problem-label{color:var(--navy)}

/* First visit: heading column + ordered list */
.v2-visit{border-top:1px solid var(--line-soft)}
.v2-visit-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:72px;align-items:start}
.v2-visit-head h2{font-size:clamp(40px,4.6vw,64px);letter-spacing:-0.04em;line-height:.98;margin:0 0 26px;max-width:11ch}
.v2-visit-time{font-family:Newsreader,Georgia,serif;font-style:italic;font-size:clamp(22px,2vw,28px);color:var(--teal);margin:0 0 18px}
.v2-visit-note{color:var(--body);font-size:16px;max-width:36ch;margin:0}
.v2-steps{list-style:none;margin:0;padding:0}
.v2-steps li{padding:0 0 34px 34px;margin-left:6px;border-left:1px solid var(--line-2);position:relative}
.v2-steps li:last-child{padding-bottom:0}
.v2-steps li::before{content:"";position:absolute;left:-6px;top:10px;width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid var(--teal)}
.v2-steps h3{font-size:clamp(24px,2.2vw,30px);font-weight:500;letter-spacing:-0.02em;margin:0 0 8px}
.v2-steps p{margin:0;color:var(--body);font-size:16.5px;line-height:1.65;max-width:52ch}

/* Clinic and gym: full-bleed photo, no grey band */
.v2-gym{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;background:#fff}
.v2-gym-media{min-height:clamp(380px,46vw,640px);background-size:cover;background-position:center}
.v2-gym-copy{padding:72px max(32px,calc((100vw - var(--wrap)) / 2 + 32px)) 72px 72px}
.v2-gym-copy h2{font-size:clamp(38px,4.2vw,58px);letter-spacing:-0.04em;line-height:.98;margin:0 0 24px;max-width:12ch}
.v2-gym-copy p{color:var(--body);font-size:17px;line-height:1.7;max-width:44ch;margin:0 0 28px}

/* Everything we do: one lead group, two stacked beside it */
.v2-svc-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin:0 0 48px}
.v2-svc-head h2{font-size:clamp(40px,4.6vw,64px);letter-spacing:-0.04em;line-height:.98}
.v2-svc-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-rows:auto auto;gap:0 64px}
.v2-svc-item{padding:32px 0;border-top:1px solid var(--line-2);display:flex;flex-direction:column}
.v2-svc-item.is-lead{grid-row:span 2;background:var(--grey-50);border:0;border-radius:10px;padding:44px 48px}
.v2-svc-item h3{font-size:clamp(26px,2.3vw,32px);font-weight:500;letter-spacing:-0.025em;line-height:1.1;margin:0 0 12px}
.v2-svc-item.is-lead h3{font-size:clamp(32px,3vw,42px)}
.v2-svc-item h3 a{color:var(--navy)}
.v2-svc-item h3 a:hover{color:var(--teal)}
.v2-svc-desc{color:var(--body);font-size:16px;line-height:1.6;margin:0 0 20px;max-width:46ch}
.v2-svc-list{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px}
.v2-svc-item.is-lead .v2-svc-list{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.v2-svc-item.is-lead .v2-svc-list li{border-bottom:1px solid var(--line-2)}
.v2-svc-list a{display:inline-block;padding:6px 0;font-size:15.5px;color:var(--body-dark)}
.v2-svc-item.is-lead .v2-svc-list a{display:block;padding:12px 0}
.v2-svc-list a:hover{color:var(--teal)}
.v2-svc-item .link-more{margin-top:auto;align-self:flex-start}

/* Closing: big phone number, one button, no boxes */
.v2-reach{border-top:1px solid var(--line-soft)}
.v2-reach-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:64px;align-items:end}
.v2-reach h2{font-size:clamp(40px,4.6vw,64px);letter-spacing:-0.04em;line-height:.98;margin:0 0 18px;max-width:10ch}
.v2-reach-sub{color:var(--body);font-size:17px;margin:0}
.v2-reach-phone{display:inline-block;white-space:nowrap;font-family:Newsreader,Georgia,serif;font-size:clamp(40px,5.6vw,84px);line-height:1;letter-spacing:-0.04em;color:var(--navy);font-variant-numeric:lining-nums tabular-nums}
.v2-reach-phone:hover{color:var(--teal)}
.v2-reach-hours{margin:14px 0 32px;color:var(--body);font-size:16px}
.v2-reach-row{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .v2-qa-grid{grid-template-columns:1fr}
  .v2-qa-item,.v2-qa-item:first-child{padding:32px 0;border-left:0;border-top:1px solid var(--line-2)}
  .v2-qa-item:first-child{border-top:0;padding-top:0}
  .v2-svc-grid{grid-template-columns:1fr;gap:0}
  .v2-svc-item.is-lead{grid-row:auto;margin-bottom:12px}
}
@media (max-width:900px){
  .v2-hero,.v2-gym{grid-template-columns:1fr}
  .v2-hero-copy{padding:64px 20px 56px}
  .v2-hero-media{min-height:300px}
  .v2-gym-copy{padding:48px 20px 8px}
  .v2-gym-media{min-height:300px}
  .v2-problems-grid,.v2-visit-grid,.v2-reach-grid{grid-template-columns:1fr;gap:36px}
  .v2-problems-head{position:static}
  .v2-svc-head{flex-direction:column;gap:14px;margin-bottom:32px}
  .v2-svc-item.is-lead{padding:32px 24px}
  .v2-svc-item.is-lead .v2-svc-list{grid-template-columns:1fr}
  .v2 .page-head{padding:96px 0 44px}
}
@media (max-width:520px){
  .v2 .wrap{padding-left:20px;padding-right:20px}
  .v2-problem-list a{padding:22px 0 20px}
}

@media (prefers-reduced-motion:reduce){
  .v2 *,.v2 *::before,.v2 *::after{transition:none!important;animation:none!important}
  .v2 .btn:hover,.v2 .btn:active,.v2-problem-list a:hover .v2-problem-label,.v2-problem-list a:hover .v2-problem-svc,.v2-problem-list a:hover .v2-problem-arrow{transform:none}
}
