/*
Theme Name: RA Balance Bahamas
Theme URI: https://rabalancebahamas.com
Description: A calm, modern wellness theme for RA Balance Bahamas.
Author: RA Balance Bahamas
Template: blankslate
Version: 1.0.0
Text Domain: ra-balance
*/

:root { --navy:#123b52; --teal:#176f82; --sea:#bce7ec; --foam:#edf8f7; --sand:#f6f3ed; --ink:#18313b; --muted:#5f7175; --line:rgba(24,49,59,.15); --white:#fff; --display:Georgia,"Times New Roman",serif; --body:"Helvetica Neue",Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font:16px/1.65 var(--body); }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
.wrap { width:min(1180px,calc(100% - 56px)); margin:auto; }
.screen-reader-text { position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.site-header { position:absolute; z-index:4; top:0; right:0; left:0; padding:24px 0; color:#fff; }
.site-header.is-solid { position:relative; background:var(--navy); }
.site-nav { display:flex; justify-content:space-between; align-items:center; gap:30px; }
.brand { display:flex; align-items:center; gap:13px; font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.brand img { width:54px; height:54px; padding:3px; background:#fff; border-radius:50%; object-fit:contain; }
.brand span { display:grid; line-height:1.1; }
.brand small { margin-top:5px; font-size:8px; font-weight:500; letter-spacing:.16em; }
.menu { display:flex; align-items:center; gap:28px; padding:0; margin:0; list-style:none; font-size:12px; font-weight:650; }
.menu a { padding-bottom:4px; border-bottom:1px solid transparent; }
.menu a:hover,.menu .current-menu-item a { border-color:currentColor; }
.nav-button,.button { display:inline-flex; align-items:center; justify-content:center; padding:12px 19px; border:1px solid var(--teal); border-radius:999px; background:var(--teal); color:#fff; font-size:11px; font-weight:750; letter-spacing:.09em; text-transform:uppercase; transition:.2s; }
.nav-button { border-color:#fff; background:#fff; color:var(--navy); }
.button:hover,.nav-button:hover { transform:translateY(-2px); box-shadow:0 8px 18px rgba(18,59,82,.18); }
.menu-toggle { display:none; color:#fff; border:0; background:transparent; font:700 12px var(--body); text-transform:uppercase; letter-spacing:.12em; }
.hero { position:relative; min-height:715px; display:flex; align-items:end; padding:150px 0 90px; overflow:hidden; color:#fff; background:var(--navy); }
.hero:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,38,54,.88),rgba(11,58,69,.54) 53%,rgba(10,36,53,.13)); z-index:1; }
.hero-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-copy { position:relative; z-index:2; width:min(690px,100%); }
.eyebrow { margin:0 0 18px; color:#c9eff0; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
h1,h2,h3 { color:inherit; }
.hero h1 { max-width:700px; margin:0; font:normal clamp(54px,7.3vw,94px)/.91 var(--display); letter-spacing:-.065em; }
.hero-text { max-width:520px; margin:23px 0 30px; font-size:18px; }
.hero .button { border-color:#fff; background:#fff; color:var(--navy); }
.intro { padding:112px 0; background:var(--sand); }
.intro-grid,.location-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(45px,9vw,150px); align-items:center; }
.portrait { position:relative; }
.portrait:after { content:""; position:absolute; inset:28px -28px -28px 28px; z-index:0; border:1px solid #79c7ce; }
.portrait img { position:relative; z-index:1; width:100%; aspect-ratio:4/4.8; object-fit:cover; }
.section-label { margin:0 0 16px; color:var(--teal); font-size:11px; font-weight:750; letter-spacing:.16em; text-transform:uppercase; }
.intro h2,.section-heading h2,.appointment h2 { margin:0; font:normal clamp(39px,5vw,65px)/.98 var(--display); letter-spacing:-.06em; }
.intro p:not(.section-label) { max-width:500px; color:var(--muted); }
.text-link { display:inline-flex; margin-top:12px; color:var(--teal); font-size:12px; font-weight:750; letter-spacing:.1em; text-transform:uppercase; border-bottom:1px solid; }
.method { padding:116px 0; background:var(--foam); }
.section-heading { max-width:700px; margin:0 auto 52px; text-align:center; }
.section-heading p:last-child { color:var(--muted); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.service { min-height:245px; padding:30px; background:#fff; border-top:3px solid #7dcbd1; }
.service-number { display:block; color:#80abb0; font:11px/1 var(--body); letter-spacing:.12em; }
.service h3 { margin:54px 0 12px; color:var(--navy); font:normal 29px/1.03 var(--display); letter-spacing:-.04em; }
.service p { margin:0; color:var(--muted); font-size:14px; }
.appointment { padding:105px 0; background:var(--navy); color:#fff; }
.appointment-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:clamp(40px,8vw,115px); align-items:start; }
.appointment p { color:#d2e5e8; }
.appointment .button { margin-top:15px; border-color:#bce7ec; background:#bce7ec; color:var(--navy); }
.appointment-phone { margin:24px 0 0; font-size:15px; }.appointment-phone a { color:#fff; font-weight:700; text-decoration:underline; text-underline-offset:3px; }.appointment-actions { display:flex; flex-wrap:wrap; gap:10px; }.appointment .button--outline { border-color:#bce7ec; background:transparent; color:#bce7ec; }
.appointment-form { padding:34px; background:#fff; color:var(--ink); }
.appointment-form h3 { margin:0 0 7px; color:var(--navy); font:normal 29px/1.1 var(--display); }
.appointment-form p { color:var(--muted); font-size:14px; }
.appointment-form .form-message { padding:10px 12px; border-left:3px solid var(--teal); background:var(--foam); color:var(--navy); }
.appointment-form form p { margin:0 0 14px; }
.appointment-form input,.appointment-form select,.appointment-form textarea { width:100%; padding:12px; border:1px solid #c9d7d9; background:#fbfdfd; color:var(--ink); font:14px var(--body); }
.appointment-form input[type=submit] { width:auto; cursor:pointer; border-color:var(--teal); border-radius:999px; background:var(--teal); color:#fff; font-weight:700; }
.journal { padding:110px 0; }
.journal-top { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:42px; }
.journal-top h2 { margin:0; color:var(--navy); font:normal clamp(40px,4.5vw,58px)/1 var(--display); letter-spacing:-.05em; }
.post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.post-card { border-bottom:1px solid var(--line); }
.post-card img,.post-card__placeholder { width:100%; aspect-ratio:1.42; object-fit:cover; background:var(--sea); }
.post-card__placeholder { display:grid; place-items:center; color:var(--navy); font:normal 28px var(--display); }
.post-card__body { padding:19px 0 24px; }
.post-card time { color:var(--teal); font-size:10px; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }
.post-card h3 { margin:9px 0; color:var(--navy); font:normal 27px/1.08 var(--display); letter-spacing:-.04em; }
.post-card p { margin:0; color:var(--muted); font-size:14px; }
.site-footer { padding:68px 0 28px; background:#102e40; color:#fff; }
.footer-main { display:flex; justify-content:space-between; gap:45px; padding-bottom:55px; }
.footer-main p { max-width:300px; color:#bcd3d7; font-size:13px; }
.social-links { display:flex; gap:9px; margin-top:18px; }.social-links a { display:grid; width:27px; height:27px; place-items:center; border:1px solid rgba(255,255,255,.45); border-radius:50%; color:#fff; font-size:12px; font-weight:700; transition:.2s; }.social-links a:hover { border-color:#bce7ec; background:#bce7ec; color:var(--navy); }
.footer-links { display:flex; flex-wrap:wrap; align-content:flex-start; justify-content:flex-end; gap:13px 26px; max-width:390px; padding-top:20px; font-size:12px; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:22px; border-top:1px solid rgba(255,255,255,.2); color:#a9c1c7; font-size:11px; }
.footer-bottom a:hover { color:#fff; }
.page-header { padding:160px 0 70px; background:var(--foam); color:var(--navy); }
.page-header h1 { max-width:820px; margin:0; font:normal clamp(48px,6vw,78px)/.98 var(--display); letter-spacing:-.06em; }
.page-content { max-width:800px; padding:85px 0 110px; }
.entry-content { color:#374d53; font-size:17px; }
.entry-content h2,.entry-content h3 { color:var(--navy); font-family:var(--display); line-height:1.05; letter-spacing:-.04em; }
.entry-content h2 { margin-top:2em; font-size:41px; }.entry-content h3 { margin-top:1.8em; font-size:29px; }
.entry-content a { color:var(--teal); text-decoration:underline; text-underline-offset:3px; }.entry-content img { margin:2em 0; }
.article { padding-bottom:100px; }.article-feature { width:min(1180px,calc(100% - 56px)); margin:55px auto 66px; }.article-feature img { width:100%; max-height:580px; object-fit:cover; }
@media (max-width:760px) { .wrap,.article-feature { width:min(100% - 36px,1180px); }.site-header { padding:16px 0; }.brand img { width:43px;height:43px; }.brand span { font-size:10px; }.menu-toggle { display:block; }.nav-button { display:none; }.menu { display:none; position:absolute; top:75px; right:18px; left:18px; flex-direction:column; align-items:start; gap:18px; padding:25px; background:var(--navy); }.menu.is-open { display:flex; }.hero { min-height:650px; padding:130px 0 65px; }.hero h1 { font-size:56px; }.intro,.method,.appointment,.journal { padding:76px 0; }.intro-grid,.location-grid,.appointment-grid { grid-template-columns:1fr; gap:40px; }.portrait { width:min(100%,460px); }.service-grid,.post-grid { grid-template-columns:1fr; }.service { min-height:190px; }.service h3 { margin-top:34px; }.journal-top,.footer-main { flex-direction:column; align-items:start; }.footer-links { justify-content:start; padding-top:0; }.appointment-form { padding:26px; } }
