/*
Theme Name: VN Chiropractic
Theme URI: https://vnchiropractic.co.za
Author: VN Chiropractic
Description: Block theme for VN Chiropractic (Roodepoort and Randburg). Includes Locations and Treatments post types, open-now status, LocalBusiness schema and a Bookem booking embed.
Version: 1.0.2
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: vn-chiropractic
*/
:root{--vn-charcoal:#222;--vn-graphite:#636363;--vn-sage:#9CAF97;--vn-sage-50:#EEF2EC;--vn-sage-100:#DCE5D9;--vn-sage-700:#4F6549;--vn-paper:#F3F1ED}
*{box-sizing:border-box}
img{max-width:100%;height:auto}
.vn-topbar{background:#222;color:#fff;font-size:12.5px;font-weight:400}
.vn-topbar-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 24px;padding:8px 32px}
.vn-topbar-locs{display:flex;flex-wrap:wrap;gap:4px 24px}
.vn-topbar a{color:#fff;text-decoration:none;white-space:nowrap}
.vn-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#bbb;margin-right:8px}
.vn-dot.is-open{background:#9CAF97}
.vn-header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid #ddd;padding:10px 32px}
body.admin-bar .vn-header{top:32px}
.vn-logo{margin:0}.vn-logo img{display:block;margin-left:-6px}
.vn-header .wp-block-navigation{font-size:14.5px;font-weight:400}
.vn-header .wp-block-navigation-item__content{padding:10px 0;white-space:nowrap}
.vn-header .wp-block-button__link{white-space:nowrap;padding:11px 18px;font-size:14px}
.vn-section{padding-top:96px;padding-bottom:96px}
.vn-section--tight{padding-top:64px;padding-bottom:64px}
.vn-bg-paper{background:var(--vn-paper)}
.vn-bg-sage-50{background:var(--vn-sage-50)}
.vn-bg-sage-100{background:var(--vn-sage-100)}
.vn-bg-charcoal{background:#222;color:#fff}
.vn-bg-charcoal a{color:#fff}
.vn-bg-charcoal .vn-logo img{filter:invert(1);mix-blend-mode:screen}
.vn-pagehead{background:var(--vn-paper);border-bottom:1px solid #e4e4e0;padding-top:56px;padding-bottom:64px}
.vn-pagehead{display:grid;grid-template-columns:minmax(0,1200px);justify-content:center;padding-left:32px;padding-right:32px}
.vn-pagehead>*{justify-self:start;margin:0!important;width:100%}
.vn-pagehead h1{max-width:880px;text-wrap:balance}
.vn-pagehead>p,.vn-pagehead .wp-block-post-excerpt{max-width:680px;font-size:20px;margin-top:20px!important}
main>.vn-section,main>.vn-pagehead{margin-block-start:0}
.vn-section:not([class*="vn-bg-"])+.vn-section:not([class*="vn-bg-"]){padding-top:0}
.vn-section .wp-block-heading+*{margin-top:24px}
.vn-eyebrow{font-size:13px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--vn-sage-700);margin:0 0 8px}
.vn-tagline{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:26px;color:var(--vn-sage-700);margin:0}
.vn-footer .vn-tagline{color:#9CAF97;margin-top:16px}
.vn-lead{font-size:20px;max-width:560px;text-wrap:pretty}
.vn-small{font-size:14px;color:var(--vn-graphite)}
.vn-note{font:11px ui-monospace,Menlo,monospace;background:var(--vn-sage-100);padding:3px 8px;border-radius:4px;color:#3f4f3b;display:inline-block}
.vn-card{background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.vn-card img{width:100%;aspect-ratio:16/7;object-fit:cover;object-position:center 30%;display:block}
.vn-card-body{padding:28px;display:flex;flex-direction:column;gap:8px;flex:1}
.vn-card-body h3{margin:0}
.vn-card-body p{margin:0}
.vn-card-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:auto;padding-top:12px}
.vn-card-actions a{font-weight:500;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.vn-status{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500}
.vn-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.vn-tcard{background:#fff;border:1px solid #ddd;border-radius:8px;padding:28px;height:100%}
.vn-tcard:hover{border-color:#222}
.vn-tcard .wp-block-post-title{margin:0 0 8px}
.vn-tcard .wp-block-post-title a{text-decoration:none;color:#222}
.vn-tcard .wp-block-post-excerpt{color:var(--vn-graphite);font-size:16px;margin:0}
.vn-tcard .wp-block-post-excerpt__more-link{display:inline-block;margin-top:12px;font-weight:500;color:var(--vn-sage-700);text-decoration:none}
.vn-posts .wp-block-post-featured-image img{border-radius:8px;border:1px solid #ddd}
.vn-posts .wp-block-post-title{font-size:23px;margin:6px 0 0}
.vn-posts .wp-block-post-title a{text-decoration:none;color:#222}
.vn-posts .wp-block-post-terms{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;margin-top:10px}
.vn-posts .wp-block-post-terms a{color:var(--vn-sage-700);text-decoration:none}
.vn-value{border-bottom:1px solid #ddd;padding:20px 0}
.vn-value:first-child{border-top:1px solid #222}
.vn-value h3{margin:0;font-size:26px}
.vn-value p{margin:0;color:var(--vn-graphite)}
.vn-step h3{margin:10px 0 6px;font-size:22px}
.vn-step p{color:var(--vn-graphite);font-size:16px;margin:0}
.vn-step-n{font-family:'Playfair Display',Georgia,serif;font-size:40px;color:var(--vn-sage);line-height:1;margin:0}
.vn-fee{border-bottom:1px solid #ddd;padding:24px 0;gap:8px 24px;align-items:baseline}
.vn-fee:first-of-type{border-top:1px solid #222}
.vn-fee h3{margin:0}
.vn-fee p{margin:4px 0 0;color:var(--vn-graphite);font-size:16px}
.vn-fee .vn-pill{display:inline-block;background:var(--vn-sage-50);color:#3f4f3b;font-size:13px;font-weight:500;padding:3px 10px;border-radius:20px}
.vn-price{font-family:'Playfair Display',Georgia,serif;font-size:26px;color:#222!important;white-space:nowrap;margin:0!important}
.vn-chip{border:1px solid #222;padding:10px 24px;font-family:'Playfair Display',Georgia,serif;font-size:20px;margin:0}
.vn-list{list-style:none;padding:0;margin:0;border-top:1px solid #222}
.vn-list li{padding:14px 0;border-bottom:1px solid #ddd}
.vn-list a{color:#222;text-decoration:none}
.vn-panel{background:var(--vn-paper);border-radius:8px;padding:32px;display:flex;flex-direction:column;gap:14px}
.vn-panel p{margin:0}
.vn-btn{display:inline-block;background:#222;color:#fff!important;text-decoration:none!important;padding:14px 28px;font-weight:500;letter-spacing:.04em;font-size:15px;border-radius:2px;text-align:center}
.vn-btn:hover{background:#000}
.vn-map iframe{width:100%;aspect-ratio:4/3;border:0;border-radius:8px}
.vn-reviews-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:#fff;border-radius:8px;padding:16px 24px}
.vn-rating{font-family:'Playfair Display',Georgia,serif;font-size:44px;line-height:1}
.vn-stars{letter-spacing:3px;color:var(--vn-sage-700)}
.vn-review{background:#fff;padding:28px;border-radius:8px;display:flex;flex-direction:column;gap:14px;margin:0}
.vn-review-who{display:flex;align-items:center;gap:12px}
.vn-avatar{width:42px;height:42px;border-radius:50%;background:var(--vn-sage-100);display:grid;place-items:center;font-weight:500;color:#3f4f3b}
.vn-review blockquote{margin:0;font-size:17px}
.vn-booking iframe{width:100%;min-height:900px;border:1px solid #222;border-radius:8px}
.vn-wa{position:fixed;right:20px;bottom:20px;z-index:40;background:#9CAF97;color:#222!important;text-decoration:none!important;font-weight:500;font-size:15px;padding:12px 20px;border-radius:40px;box-shadow:0 8px 24px rgba(0,0,0,.2);white-space:nowrap}
.vn-gallery{margin-top:24px}
.wp-block-details{border-bottom:1px solid #ddd;padding:6px 0}
.wp-block-details summary{cursor:pointer;font-family:'Playfair Display',Georgia,serif;font-size:22px;line-height:1.3;padding:16px 0}
.wp-block-details p{max-width:700px;color:#444}
.vn-faqs{border-top:1px solid #222}
.vn-footer{font-size:15px}
.vn-footer h4{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#9CAF97;font-weight:500;margin:0 0 10px;font-family:'Jost',sans-serif}
.vn-footer p{margin:0 0 6px}
.vn-footer .vn-small{color:#ccc}
.vn-footer-bottom{border-top:1px solid #444;margin-top:48px;padding-top:24px;font-size:13px;color:#ccc}
@media (max-width:781px){.vn-section{padding-top:64px;padding-bottom:64px}.vn-header{padding:10px 20px}}
