/* Doyle Chiropractic & Acupuncture, Direction C ("Bold") */

@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/barlow-400.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/barlow-500.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/barlow-600.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/barlow-condensed-500.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/barlow-condensed-600.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-condensed-700.woff2) format('woff2')}

:root{
  --bg:oklch(0.18 0.015 250);
  --bg-raised:oklch(0.22 0.018 250);
  --bg-input:oklch(0.16 0.015 250);
  --line:oklch(0.32 0.02 250);
  --line-header:oklch(0.3 0.02 250);
  --line-input:oklch(0.35 0.02 250);
  --line-chip:oklch(0.4 0.02 250);
  --line-strong:oklch(0.45 0.02 250);
  --line-outline:oklch(0.5 0.02 250);
  --text:oklch(0.95 0.008 80);
  --text-bright:oklch(0.98 0.005 80);
  --text-90:oklch(0.9 0.01 80);
  --text-88:oklch(0.88 0.01 80);
  --text-85:oklch(0.85 0.01 80);
  --text-82:oklch(0.82 0.01 80);
  --text-80:oklch(0.8 0.01 80);
  --text-78:oklch(0.78 0.01 80);
  --text-75:oklch(0.75 0.01 80);
  --text-72:oklch(0.72 0.01 80);
  --gold:oklch(0.8 0.13 75);
  --gold-hover:oklch(0.88 0.11 75);
  --alert:oklch(0.7 0.19 25);
  --cond:'Barlow Condensed',sans-serif;
  --body:'Barlow',system-ui,sans-serif;
  --wrap:1280px;
}

html,body{height:auto;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
a{color:var(--gold);text-decoration:none}
a:hover{color:var(--gold-hover)}
input,textarea,select,button{font-family:inherit}
img{display:block;max-width:100%}
h1,h2,p{margin:0}
[hidden]{display:none!important}

.page{min-height:100vh;display:flex;flex-direction:column;position:relative}
main{flex:1}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:24px;padding-right:24px}

/* ---------- Shared type ---------- */
.cond{font-family:var(--cond)}
.eyebrow{font-family:var(--cond);font-weight:600;font-size:18px;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold)}
.display{font-family:var(--cond);font-weight:700;text-transform:uppercase}
.label{font-family:var(--cond);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-72)}
.pretty{text-wrap:pretty}
.raised{background:var(--bg-raised)}

/* ---------- Buttons ---------- */
.btn{display:inline-block;background:var(--gold);color:var(--bg);border:0;padding:16px 28px;font-family:var(--cond);font-weight:700;font-size:19px;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;align-self:flex-start}
.btn:hover{background:var(--gold-hover);color:var(--bg)}
.btn-outline{display:inline-block;border:1px solid var(--line-outline);color:var(--text);padding:15px 26px;font-family:var(--cond);font-weight:600;font-size:18px;letter-spacing:0.08em;text-transform:uppercase}
.btn-outline:hover{color:var(--text-bright);border-color:var(--gold)}

/* ---------- Photo frames ---------- */
.photo{position:relative;width:100%;overflow:hidden;background:var(--bg-raised)}
.photo img,.fill img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fill{position:absolute;inset:0}
.photo--portrait{aspect-ratio:4/5}
.photo--portrait img{object-position:50% 20%}
.photo--4x3{aspect-ratio:4/3}
.photo--16x9{aspect-ratio:16/9}

/* ---------- Waitlist bar ---------- */
.notice{background:var(--gold);color:var(--bg)}
.notice .wrap{padding-top:10px;padding-bottom:10px;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;font-size:15px;font-weight:500;text-align:center}
.notice a{color:var(--bg);font-weight:600;text-decoration:underline;white-space:nowrap}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:10;background:oklch(0.18 0.015 250 / 0.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-header)}
.site-header__bar{max-width:var(--wrap);margin:0 auto;padding:12px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px}
.logo{white-space:nowrap;flex-shrink:0;font-family:var(--cond);font-weight:700;font-size:26px;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-bright)}
.logo:hover{color:var(--text-bright)}
.logo span{color:var(--gold)}
.nav-desktop{display:flex;flex-wrap:wrap;align-items:center;gap:6px 28px;font-family:var(--cond);font-weight:600;font-size:17px;letter-spacing:0.08em;text-transform:uppercase}
.nav-desktop a{white-space:nowrap;flex-shrink:0;color:var(--text)}
.nav-desktop a:hover{color:var(--gold-hover)}
.nav-desktop a.nav-book{background:var(--gold);color:var(--bg);padding:10px 20px}
.nav-desktop a.nav-book:hover{background:var(--gold-hover);color:var(--bg)}
.nav-mobile-actions{display:none;align-items:center;gap:10px;font-family:var(--cond);font-weight:700;font-size:16px;letter-spacing:0.08em;text-transform:uppercase}
.nav-mobile-actions a{white-space:nowrap;background:var(--gold);color:var(--bg);padding:12px 14px}
.menu-toggle{background:transparent;border:1px solid var(--line-strong);color:var(--text);padding:11px 14px;font-family:var(--cond);font-weight:700;font-size:16px;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;min-height:44px}
.nav-menu{display:none;flex-direction:column;font-family:var(--cond);font-weight:600;font-size:22px;letter-spacing:0.08em;text-transform:uppercase;padding-bottom:8px}
.nav-menu a{display:block;padding:16px 24px;border-top:1px solid var(--line-header);color:var(--text)}

@media (max-width:1079.98px){
  .nav-desktop{display:none}
  .nav-mobile-actions{display:flex}
  .site-header.is-open .nav-menu{display:flex}
}

/* ---------- Heroes ---------- */
.hero{position:relative;display:flex;align-items:flex-end;overflow:hidden}
.hero__shade{position:absolute;inset:0;pointer-events:none}
.hero__content{position:relative;max-width:var(--wrap);width:100%;margin:0 auto;display:flex;flex-direction:column}
.hero--home{min-height:clamp(560px,88vh,780px)}
.hero--home .hero__shade{background:linear-gradient(180deg,oklch(0.18 0.015 250 / 0.6) 0%,oklch(0.18 0.015 250 / 0.2) 35%,oklch(0.18 0.015 250 / 0.95) 100%)}
.hero--home .hero__content{padding:96px 24px 72px;gap:24px}
.hero--home h1{font-size:clamp(44px,10vw,148px);line-height:0.88;letter-spacing:-0.01em;max-width:1100px}
.hero--home .hero__lede{font-size:clamp(18px,1.6vw,21px);line-height:1.55;max-width:620px;color:var(--text-90)}
.hero-cred{display:flex;align-items:center;gap:14px;padding-top:4px}
.hero-cred::before{content:"";width:40px;height:2px;background:var(--gold);flex-shrink:0}
.hero-cred span{font-family:var(--cond);font-weight:600;font-size:clamp(20px,2.2vw,28px);letter-spacing:0.06em;text-transform:uppercase}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px;padding-top:8px}
.hero-actions .btn{padding:18px 30px;font-size:20px}
.hero-actions__note{display:flex;flex-direction:column;gap:6px;font-size:18px;line-height:1.5;max-width:460px;color:var(--text-88)}

.hero--page{min-height:clamp(420px,70vh,560px)}
.hero--page .hero__shade{background:linear-gradient(180deg,oklch(0.18 0.015 250 / 0.6) 0%,oklch(0.18 0.015 250 / 0.95) 100%)}
.hero--page .hero__content{padding:80px 24px 64px;gap:20px}
.hero--page h1{font-size:clamp(44px,9vw,132px);line-height:0.88}
.hero--page .hero__lede{font-size:20px;line-height:1.55;max-width:640px;color:var(--text-90)}

/* ---------- Credentials strip ---------- */
.cred-strip{background:var(--gold);color:var(--bg)}
.cred-strip .wrap{padding-top:22px;padding-bottom:22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;font-family:var(--cond);font-weight:600;font-size:19px;letter-spacing:0.08em;text-transform:uppercase}

/* ---------- Grids ---------- */
.grid{display:grid}
.cols-400{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr))}
.cols-420{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.cols-440{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr))}
.cols-460{grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr))}
.cols-380{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr))}
.cols-360{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}
.stack{display:flex;flex-direction:column}
.g14{gap:14px}.g16{gap:16px}.g18{gap:18px}.g20{gap:20px}.g22{gap:22px}.g24{gap:24px}.g28{gap:28px}.g32{gap:32px}

/* ---------- Home: difficult cases ---------- */
.difficult{padding-top:clamp(56px,9vw,120px);display:flex;flex-direction:column;gap:48px}
.difficult__intro{gap:24px 56px;align-items:end}
.difficult__intro h2{font-size:clamp(44px,6vw,84px);line-height:0.9;text-wrap:balance}
.difficult__body{font-size:19px;line-height:1.65;color:var(--text-85)}
.difficult__np{font-size:17px;line-height:1.6;color:var(--text-78);grid-column:1/-1;max-width:760px}
.points{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.point{background:var(--bg);padding:32px 28px;display:flex;flex-direction:column;gap:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.point__n{font-family:var(--cond);font-weight:700;font-size:20px;color:var(--gold)}
.point__t{font-family:var(--cond);font-weight:700;font-size:30px;line-height:1;text-transform:uppercase}
.point__b{font-size:16px;line-height:1.6;color:var(--text-82)}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.chips li{padding:10px 16px;border:1px solid var(--line-chip);font-size:16px;color:oklch(0.92 0.01 80)}

/* ---------- Home: service tiles ---------- */
.tiles{padding-top:clamp(56px,9vw,120px);padding-bottom:clamp(56px,9vw,120px);gap:24px}
.tile{position:relative;min-height:clamp(380px,90vw,520px);display:flex;align-items:flex-end;overflow:hidden;color:var(--text-bright)}
.tile:hover{color:var(--text-bright)}
.tile__shade{position:absolute;inset:0;background:linear-gradient(180deg,oklch(0.18 0.015 250 / 0) 40%,oklch(0.18 0.015 250 / 0.92) 100%);pointer-events:none}
.tile__text{position:relative;padding:32px;display:flex;flex-direction:column;gap:10px}
.tile__title{font-family:var(--cond);font-weight:700;font-size:clamp(40px,6vw,56px);line-height:0.9;text-transform:uppercase}
.tile__body{font-size:17px;line-height:1.5;color:var(--text-88);max-width:380px}
.tile img{transition:transform .5s ease}
.tile:hover img{transform:scale(1.03)}

/* ---------- Fees ---------- */
.fees-section .wrap{padding-top:clamp(56px,9vw,110px);padding-bottom:clamp(56px,9vw,110px);gap:56px}
.fees-section h2{font-size:clamp(48px,6vw,84px);line-height:0.9}
.fees-section__lede{font-size:18px;line-height:1.6;color:var(--text-82);max-width:420px}
.fees-section__np{align-self:flex-start;font-family:var(--cond);font-weight:600;font-size:18px;letter-spacing:0.08em;text-transform:uppercase}
.fee-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
.fee{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.fee-list--compact .fee{padding:16px 0}
.fee__info{display:flex;flex-direction:column;gap:4px}
.fee__name:only-child{margin-bottom:4px}
.fee__name{font-size:clamp(20px,1.8vw,24px);font-weight:500}
.fee__note{font-size:15px;font-weight:600;color:var(--alert);text-wrap:pretty}
.fee__note a{color:var(--alert);text-decoration:underline}
.fee__price{font-family:var(--cond);font-weight:700;font-size:clamp(17px,1.6vw,20px);letter-spacing:0.06em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;color:var(--gold)}

.subpage-fees .wrap{padding-top:clamp(56px,9vw,90px);padding-bottom:clamp(56px,9vw,90px);gap:48px;align-items:start}
.subpage-fees h2,.techniques h2{font-size:clamp(40px,4.4vw,64px);line-height:0.92}
.subpage-fees .photo{max-width:520px}
.subpage-fees .btn{margin-top:28px}

/* ---------- Home: Meet Dr. Doyle ---------- */
.meet{padding-top:clamp(56px,9vw,110px);padding-bottom:clamp(56px,9vw,110px);gap:56px;align-items:center}
.meet .photo{max-width:520px}
.meet h2{font-size:clamp(44px,5vw,72px);line-height:0.92}
.meet p{font-size:18px;line-height:1.65;color:var(--text-85);max-width:540px}
.meet .more{font-family:var(--cond);font-weight:600;font-size:18px;letter-spacing:0.08em;text-transform:uppercase}

/* ---------- About ---------- */
.about{padding-top:80px;padding-bottom:100px;gap:64px;align-items:start}
.about h1{font-size:clamp(56px,7vw,104px);line-height:0.88}
.about p{font-size:19px;line-height:1.65;color:var(--text-88)}
.credentials .wrap{padding-top:clamp(56px,9vw,100px);padding-bottom:clamp(56px,9vw,100px);gap:56px;align-items:start}
.credentials h2{font-size:clamp(44px,5vw,72px);line-height:0.92}
.timeline{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.timeline li{display:grid;grid-template-columns:minmax(90px,140px) minmax(0,1fr);gap:24px;padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline}
.timeline__key{font-family:var(--cond);font-weight:700;font-size:28px;color:var(--gold)}
.timeline__text{display:flex;flex-direction:column;gap:4px}
.timeline__title{font-size:20px;font-weight:500}
.timeline__where{font-size:16px;color:var(--text-75)}

/* ---------- Techniques ---------- */
.techniques{padding-top:clamp(56px,9vw,100px);padding-bottom:clamp(56px,9vw,100px);display:flex;flex-direction:column;gap:40px}
.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1px;background:var(--line)}
.tech{background:var(--bg);padding:32px 28px;display:flex;flex-direction:column;gap:12px}
.tech__name{font-family:var(--cond);font-weight:700;font-size:30px;text-transform:uppercase;color:var(--gold)}
.tech__body{font-size:17px;line-height:1.6;color:var(--text-85)}

/* ---------- Contact ---------- */
.contact{padding-top:80px;padding-bottom:110px;gap:56px}
.contact h1{font-size:clamp(64px,9vw,120px);line-height:0.88}
.contact__address{font-size:19px;line-height:1.5;font-style:normal;display:flex;flex-direction:column;gap:4px}
.contact__phone{font-family:var(--cond);font-weight:700;font-size:44px;letter-spacing:0.02em}
.details{display:grid;grid-template-columns:auto 1fr;gap:12px 28px;font-size:17px;margin:0}
.details dt{font-family:var(--cond);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-72)}
.details dd{margin:0}
.contact__buttons{display:flex;flex-wrap:wrap;gap:12px;padding-top:8px}
.contact__buttons .btn{padding:16px 26px;font-size:18px}
.map{border:0;width:100%;min-height:340px;flex:1;display:block;filter:grayscale(1) contrast(1.05)}

/* ---------- Referrals ---------- */
.referrals{padding-top:80px;padding-bottom:110px;gap:56px;align-items:start}
.referrals h1{font-size:clamp(56px,7vw,100px);line-height:0.88}
.referrals__lede{font-size:18px;line-height:1.6;color:var(--text-85);max-width:440px}
.referrals .details{gap:12px 24px;padding-top:12px;border-top:1px solid var(--line)}
.referrals .photo{max-width:480px}

/* ---------- Forms ---------- */
.form{background:var(--bg-raised);padding:32px;display:grid;gap:18px}
.form--referral{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.form--waitlist{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));border-top:3px solid var(--gold)}
.form__title{grid-column:1/-1;font-family:var(--cond);font-weight:700;font-size:36px;text-transform:uppercase}
.field{display:flex;flex-direction:column;gap:8px;font-family:var(--cond);font-weight:600;font-size:15px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-80)}
.field--full{grid-column:1/-1}
.field input,.field textarea,.field select{padding:14px;font-size:16px;background:var(--bg-input);border:1px solid var(--line-input);color:var(--text);font-family:var(--body);text-transform:none;letter-spacing:0;border-radius:0;box-sizing:border-box;width:100%}
.field textarea{resize:vertical}
.field input[type=file]{padding:11px;font-size:15px;color:var(--text-85)}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--gold);outline-offset:-1px}
.form .btn{grid-column:1/-1;justify-self:start;padding:16px 30px}
.honey{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}

.confirm{background:var(--bg-raised);padding:40px;display:flex;flex-direction:column;gap:14px}
.confirm--accent{border-top:3px solid var(--gold)}
.confirm__title{font-family:var(--cond);font-weight:700;font-size:40px;text-transform:uppercase;color:var(--gold)}
.confirm__body{font-size:18px;line-height:1.6;color:var(--text-88)}

/* ---------- Book ---------- */
.book{padding-top:80px;padding-bottom:110px;display:flex;flex-direction:column;gap:40px}
.book__head{display:flex;flex-direction:column;gap:20px;max-width:760px}
.book__head h1{font-size:clamp(52px,7vw,100px);line-height:0.88}
.choices{gap:20px}
.choice{background:var(--bg-raised);padding:32px;display:flex;flex-direction:column;gap:16px;border:1px solid var(--line)}
.choice__title{font-family:var(--cond);font-weight:700;font-size:36px;line-height:1;text-transform:uppercase}
.choice__body{font-size:17px;line-height:1.6;color:var(--text-85)}
.choice .btn{margin-top:auto}
.explain{background:var(--bg-raised);padding:clamp(24px,4vw,40px);display:flex;flex-direction:column;gap:18px;border-top:3px solid var(--gold);max-width:900px}
.explain__title{font-family:var(--cond);font-weight:700;font-size:clamp(32px,4vw,44px);line-height:1;text-transform:uppercase}
.explain p{font-size:18px;line-height:1.65;color:var(--text-88)}
.explain__block{display:flex;flex-direction:column;padding-top:12px;border-top:1px solid var(--line)}
.explain__sub{font-family:var(--cond);font-weight:700;font-size:clamp(28px,3vw,36px);line-height:1;text-transform:uppercase}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:20px;margin:0;padding:0;list-style:none}
.step{display:flex;flex-direction:column;gap:8px}
.step__n{font-family:var(--cond);font-weight:700;font-size:20px;color:var(--gold)}
.step__t{font-family:var(--cond);font-weight:700;font-size:24px;line-height:1.05;text-transform:uppercase}
.step__b{font-size:16px;line-height:1.6;color:var(--text-85)}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--line-header);font-size:15px;color:var(--text-72)}
.site-footer__cols{padding-top:48px;padding-bottom:48px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px}
.site-footer__col{display:flex;flex-direction:column;gap:8px}
.site-footer__col a{color:var(--text-85)}
.site-footer__col a:hover{color:var(--gold-hover)}
.site-footer__col a.gold{color:var(--gold)}
.site-footer .logo{font-size:24px}
.site-footer__legal{padding-bottom:32px;font-size:13px}

@media (prefers-reduced-motion:reduce){
  .tile img{transition:none}
  .tile:hover img{transform:none}
}

/* Skip link: hidden until it receives keyboard focus */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:oklch(0.8 0.13 75);color:oklch(0.18 0.015 250);padding:12px 18px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:18px;letter-spacing:0.08em;text-transform:uppercase}
.skip-link:focus{left:0}
