/* =========================================
   RAWGRAVEL - MAIN STYLESHEET
   ========================================= */

/* --- 1. FARBEN & VARIABLEN --- */
:root {
    --bg-page: #F4F4F0;       
    --bg-element: #EBEBE6;    
    --text-dark: #111111;     
    --text-light: #FFFFFF;
    --accent-blue: #586B7D;   
    --accent-orange: #D36A35;
    --card-radius: 20px;
}

/* --- 2. RESET & TYPOGRAFIE --- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

body {
    background-color: var(--bg-page);
    color: var(--text-dark);
    line-height: 1.6;
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* Sorgt dafür, dass der Footer immer unten bleibt */
}

.container {
    max-width: 1200px;
    margin: 0 auto 80px auto;
    padding: 0 5%;
    flex: 1;
}

/* --- 3. HEADER & BURGER-MENÜ --- */
header {
    padding: 25px 5%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 1000;
    background-color: rgba(244, 244, 240, 0.9);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
}

.logo-area {
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: -0.8px;
    color: var(--text-dark);
    text-transform: uppercase;
    text-decoration: none;
}

.logo-area span { color: var(--accent-orange); }

.menu-toggle {
    display: flex;
    flex-direction: column;
    cursor: pointer;
    gap: 5px;
    z-index: 1001; 
}

.menu-toggle .bar {
    width: 25px;
    height: 3px;
    background-color: var(--text-dark);
    border-radius: 3px;
    transition: all 0.3s ease;
}

nav {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: rgba(244, 244, 240, 0.98);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.4s ease;
    box-shadow: 0 10px 15px rgba(0,0,0,0.05);
    border-bottom: 1px solid transparent;
}

nav.is-open {
    max-height: 400px; 
    padding: 25px 0;
    border-bottom: 1px solid var(--bg-element);
}

nav ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 25px;
}

.menu-toggle.is-active .bar:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.menu-toggle.is-active .bar:nth-child(2) { opacity: 0; }
.menu-toggle.is-active .bar:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

nav a {
    text-decoration: none;
    color: #666666;
    font-weight: 500;
    font-size: 0.85rem;
    letter-spacing: 0.5px;
    transition: color 0.2s ease;
}

nav a:hover { color: var(--text-dark); }

/* --- 4. GLOBALE ELEMENTE (Pills, Header, Buttons, CTA) --- */
.page-header {
    text-align: center;
    padding: 80px 20px 40px;
    max-width: 900px;
    margin: 0 auto;
}

.page-header h1 {
    font-size: 3.5rem;
    font-weight: 500;
    letter-spacing: -1.5px;
    margin-bottom: 20px;
    color: var(--text-dark);
    line-height: 1.1;
}

.page-header h1 span, .page-header h1 i {
    color: var(--accent-blue);
    font-style: italic;
    font-weight: 400;
}

.page-header p {
    font-size: 1.2rem;
    color: #555555;
    margin-bottom: 40px;
}

.tag-pill {
    display: inline-block;
    background-color: var(--bg-element);
    color: #585858;
    padding: 6px 18px;
    border-radius: 30px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    margin-bottom: 20px;
}

/* Intro Text (Radtraining) */
.intro-text {
    max-width: 800px;
    margin: 0 auto 60px auto;
    text-align: center;
    padding: 0 20px;
}

.intro-text p {
    font-size: 1.15rem;
    color: #555555;
    margin-bottom: 20px;
}

.intro-text p strong {
    color: var(--text-dark);
}

/* Buttons */
.cta-primary {
    background-color: var(--accent-blue);
    color: var(--text-light);
    padding: 16px 36px;
    border-radius: 40px;
    text-decoration: none;
    font-weight: 500;
    font-size: 1rem;
    transition: all 0.3s ease;
    display: inline-block;
    box-shadow: 0 4px 15px rgba(88, 107, 125, 0.2);
    text-align: center;
}

.cta-primary:hover {
    transform: translateY(-2px);
    background-color: #435261;
    box-shadow: 0 8px 25px rgba(88, 107, 125, 0.35);
}

.btn-white {
    background-color: var(--text-light);
    color: var(--accent-blue);
    padding: 16px 36px;
    border-radius: 40px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    display: inline-block;
    transition: all 0.3s ease;
}

.btn-white:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.btn-outline {
    text-align: center;
    border: 2px solid var(--accent-blue);
    color: var(--accent-blue);
    padding: 14px 20px;
    border-radius: 30px;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
    display: block;
}

.btn-outline:hover {
    background-color: var(--accent-blue);
    color: var(--text-light);
}

.btn-white.btn-transparent {
    background-color: transparent;
    border: 2px solid var(--text-light);
    color: var(--text-light);
}

.cta-buttons {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

/* CTA Banner (am Ende der Module) */
.cta-banner {
    background-color: var(--accent-blue);
    border-radius: var(--card-radius);
    padding: 50px;
    text-align: center;
    color: var(--text-light);
    margin-top: 40px;
    box-shadow: 0 15px 40px rgba(88, 107, 125, 0.2);
}

.cta-banner h2 {
    font-size: 2rem;
    margin-bottom: 15px;
    font-weight: 500;
    color: var(--text-light);
}

.cta-banner p {
    font-size: 1.1rem;
    opacity: 0.9;
    margin-bottom: 30px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* --- 5. MODUL-DETAIL-SEITEN (Bikefitting, Fueling etc.) --- */
.module-section {
    background-color: var(--text-light);
    border-radius: var(--card-radius);
    box-shadow: 0 10px 30px rgba(0,0,0,0.04);
    margin-bottom: 60px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.module-section:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 40px rgba(0,0,0,0.08);
}

.module-image {
    width: 100%;
    height: 350px;
    background-size: cover;
    background-position: center;
    background-color: var(--bg-element);
}

.module-content {
    padding: 50px;
}

.step-indicator {
    color: var(--accent-blue); 
    font-weight: 700;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.module-content h2 {
    margin-top: 0;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: -0.5px;
    margin-bottom: 10px;
}

.module-content p.lead {
    color: var(--accent-blue);
    font-weight: 500;
    margin-bottom: 30px;
    font-size: 1.1rem;
}

.content-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 25px;
}

@media(min-width: 900px) {
    .content-grid { grid-template-columns: 1fr 1fr; }
}

.module-intro {
    margin-bottom: 20px;
    color: #444;
}

.content-block h3 {
    font-size: 1.1rem;
    color: var(--accent-blue);
    margin-bottom: 10px;
    border-bottom: 1px solid var(--bg-element);
    padding-bottom: 5px;
}

.content-block ul {
    padding-left: 0;
    list-style: none;
}

.content-block li {
    margin-bottom: 12px;
    position: relative;
    padding-left: 20px;
    color: #444;
    font-size: 0.95rem;
}

.content-block li::before {
    content: "•";
    color: var(--accent-blue); 
    font-size: 1.5rem;
    position: absolute;
    left: 0;
    top: -6px;
}

/* --- 6. KARTEN-GRIDS (Startseite & Radtraining) --- */
#module {
    padding: 80px 0 80px 0;
    background-color: var(--bg-element);
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 5%;
}

@media (max-width: 1200px) {
    .services-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
    .services-grid { grid-template-columns: 1fr; }
}

.card {
    position: relative;
    border-radius: var(--card-radius);
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background-color: #ddd;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.card:hover {
    transform: translateY(-6px);
    box-shadow: 0 15px 40px rgba(0,0,0,0.08);
}

.card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.card-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60%; 
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.3) 65%, rgba(0,0,0,0) 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 25px;
    backdrop-filter: blur(2px); 
    -webkit-backdrop-filter: blur(2px);
}

.card-title {
    color: var(--text-light);
    font-weight: 600;
    font-size: 1.2rem;
    margin-bottom: 8px;
    letter-spacing: -0.5px;
}

.card-text {
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.85rem;
    line-height: 1.4;
}

.card-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

/* Modul-Grid (Radtraining) */
.module-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 25px;
}

@media(min-width: 768px) {
    .module-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .module-card:last-child {
        grid-column: 1 / -1;
    }
}

.module-card {
    background-color: var(--text-light);
    border-radius: var(--card-radius);
    box-shadow: 0 10px 30px rgba(0,0,0,0.03);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.module-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 40px rgba(0,0,0,0.06);
}

.module-card .module-image {
    width: 100%;
    height: 240px;
    background-size: cover;
    background-position: center;
    background-color: var(--accent-blue);
}

.module-card .module-content {
    padding: 35px 40px;
    flex: 1;
}

.module-card h3 {
    font-size: 1.4rem;
    color: var(--accent-blue);
    margin-bottom: 15px;
    letter-spacing: -0.5px;
}

.module-card p {
    color: #444;
    font-size: 0.95rem;
    line-height: 1.6;
}


/* --- 7. WEGE ZUM ZIEL (Masterclass / Startseite) --- */
#wege {
    padding: 80px 5%;
    background-color: var(--bg-element);
}

.wege-header {
    text-align: center;
    max-width: 800px;
    margin: 0 auto 50px auto;
}

.wege-header h2 {
    font-size: 2.5rem;
    font-weight: 600;
    letter-spacing: -1px;
    margin-bottom: 15px;
}

.wege-header p {
    color: #555;
    font-size: 1.1rem;
}

.wege-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    max-width: 1000px;
    margin: 0 auto;
}

@media(min-width: 768px) {
    .wege-grid { grid-template-columns: 1fr 1fr; }
}

.weg-card {
    background-color: var(--text-light);
    border-radius: var(--card-radius);
    box-shadow: 0 10px 30px rgba(0,0,0,0.03);
    display: flex;
    flex-direction: column;
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.weg-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 40px rgba(0,0,0,0.08);
}

.weg-card.premium {
    border-color: var(--accent-orange);
}

.weg-image {
    width: 100%;
    height: 240px;
    background-size: cover;
    background-position: center;
    background-color: var(--accent-blue);
    position: relative;
}

.weg-badge {
    position: absolute;
    top: 20px;
    right: 20px;
    background-color: var(--accent-orange);
    color: white;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.weg-content {
    padding: 40px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.weg-card h3 {
    font-size: 1.6rem;
    color: var(--accent-blue);
    margin-bottom: 15px;
    letter-spacing: -0.5px;
}

.weg-card p {
    color: #555;
    margin-bottom: 30px;
    font-size: 0.95rem;
}

.weg-features {
    list-style: none;
    margin-bottom: 40px;
    flex-grow: 1;
}

.weg-features li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 12px;
    font-size: 0.95rem;
    color: var(--text-dark);
}

.weg-features li::before {
    content: "✓";
    color: var(--accent-orange);
    position: absolute;
    left: 0;
    font-weight: bold;
}

/* --- 8. NEWSLETTER / WARTELISTE --- */
#newsletter {
    padding: 100px 5%;
    background-color: var(--bg-page);
}

.newsletter-container {
    max-width: 800px;
    margin: 0 auto;
    background-color: var(--accent-blue);
    border-radius: var(--card-radius);
    padding: 60px 40px;
    text-align: center;
    color: var(--text-light);
    box-shadow: 0 15px 40px rgba(88, 107, 125, 0.2);
}

.newsletter-container h2 {
    font-size: 2.2rem;
    margin-bottom: 15px;
    font-weight: 600;
    letter-spacing: -0.5px;
}

.newsletter-container p {
    font-size: 1.1rem;
    opacity: 0.9;
    margin-bottom: 30px;
}

.discount-badges {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}

.badge {
    background-color: var(--accent-orange);
    color: var(--text-light);
    padding: 8px 20px;
    border-radius: 30px;
    font-weight: 700;
    font-size: 0.9rem;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.newsletter-form {
    display: flex;
    flex-direction: column;
    gap: 15px;
    max-width: 500px;
    margin: 0 auto;
}

@media(min-width: 600px) {
    .newsletter-form { flex-direction: row; }
}

.newsletter-form input[type="email"] {
    flex-grow: 1;
    padding: 16px 25px;
    border-radius: 40px;
    border: none;
    font-size: 1rem;
    outline: none;
}

.newsletter-form button {
    background-color: var(--text-dark);
    color: var(--text-light);
    padding: 16px 30px;
    border-radius: 40px;
    border: none;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.3s ease;
    white-space: nowrap;
}

.newsletter-form button:hover {
    background-color: #333;
}

.spam-info {
    font-size: 0.8rem !important;
    opacity: 0.6 !important;
    margin-top: 15px !important;
    margin-bottom: 0 !important;
}

/* --- 9. SEITE: ÜBER MICH (me.html) --- */
.story-section {
    display: flex;
    flex-direction: column;
    gap: 50px;
    margin-bottom: 80px;
}

@media(min-width: 900px) {
    .story-section {
        flex-direction: row;
        align-items: center;
    }
}

.story-image {
    flex: 1;
    border-radius: var(--card-radius);
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0,0,0,0.08);
    position: relative;
}

.story-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.story-content {
    flex: 1;
}

.story-content h2 {
    font-size: 2.2rem;
    margin-bottom: 20px;
    letter-spacing: -0.5px;
}

.story-content p {
    margin-bottom: 15px;
    color: #444;
    font-size: 1.05rem;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 30px;
}

@media(min-width: 600px) {
    .stats-grid { grid-template-columns: repeat(4, 1fr); }
}

.stat-box {
    background-color: var(--text-light);
    padding: 25px 15px;
    border-radius: 16px;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
}

.stat-box h3 {
    font-size: 2rem;
    color: var(--accent-blue);
    margin-bottom: 5px;
    font-weight: 600;
}

.stat-box p {
    font-size: 0.8rem;
    color: #777;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0;
}

.club-section {
    background-color: var(--text-light);
    border-radius: var(--card-radius);
    box-shadow: 0 10px 30px rgba(0,0,0,0.04);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

@media(min-width: 900px) {
    .club-section { flex-direction: row; }
}

.club-image {
    flex: 1;
    min-height: 350px;
    background-image: url('me/mike_rad.png?&auto=format&fit=crop&w=1200&q=80');
    background-size: cover;
    background-position: center;
    position: relative;
}

.club-overlay {
    position: absolute;
    top: 20px;
    left: 20px;
    background-color: rgba(255,255,255,0.9);
    padding: 8px 16px;
    border-radius: 30px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-dark);
    letter-spacing: 0.5px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.club-content {
    flex: 1.2;
    padding: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.club-content h2 {
    font-size: 2rem;
    margin-bottom: 15px;
    letter-spacing: -0.5px;
}

.club-content p.lead {
    color: var(--accent-blue);
    font-weight: 500;
    margin-bottom: 30px;
    font-size: 1.1rem;
}

.ride-list {
    list-style: none;
    margin-bottom: 35px;
}

.ride-list li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 15px;
    color: #444;
    font-size: 0.95rem;
}

.ride-list li::before {
    content: "→";
    position: absolute;
    left: 0;
    color: var(--accent-orange);
    font-weight: bold;
}

.ride-list strong {
    color: var(--text-dark);
    display: block;
    margin-bottom: 2px;
}

/* --- 10. SEITE: KONTAKT --- */
.contact-card {
    background-color: var(--text-light);
    border-radius: var(--card-radius);
    box-shadow: 0 10px 30px rgba(0,0,0,0.04);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

@media(min-width: 768px) {
    .contact-card { flex-direction: row; }
}

.contact-image {
    flex: 1;
    min-height: 300px;
    background-color: var(--accent-blue); 
    background-image: url('kontakt/kontakt.png');
    background-size: cover;
    background-position: center;
    position: relative;
}

.image-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 40px 30px;
    background: linear-gradient(to top, rgba(17,17,17,0.8) 0%, rgba(17,17,17,0) 100%);
    color: var(--text-light);
}

.image-overlay h3 {
    font-size: 1.5rem;
    margin-bottom: 5px;
    font-weight: 500;
}

.image-overlay p {
    font-size: 0.9rem;
    opacity: 0.9;
}

.contact-form-wrapper {
    flex: 1.5; 
    padding: 50px;
}

.form-group {
    margin-bottom: 25px;
}

.form-group label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--accent-blue);
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.form-control {
    width: 100%;
    padding: 15px;
    background-color: var(--bg-page);
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 1rem;
    color: var(--text-dark);
    transition: all 0.3s ease;
    font-family: inherit;
}

.form-control:focus {
    outline: none;
    border-color: var(--accent-blue);
    background-color: var(--text-light);
    box-shadow: 0 0 0 4px rgba(88, 107, 125, 0.1);
}

select.form-control {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23586B7D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 15px center;
    background-size: 16px;
}

textarea.form-control {
    resize: vertical;
    min-height: 120px;
}

.submit-btn {
    background-color: var(--accent-blue);
    color: var(--text-light);
    padding: 16px 36px;
    border-radius: 40px;
    text-decoration: none;
    font-weight: 500;
    font-size: 1rem;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    display: inline-block;
    width: 100%;
    box-shadow: 0 4px 15px rgba(88, 107, 125, 0.2);
    text-align: center;
}

.submit-btn:hover {
    transform: translateY(-2px);
    background-color: #435261;
    box-shadow: 0 8px 25px rgba(88, 107, 125, 0.35);
}

/* --- 11. SEITE: RECHTLICHES (Impressum, Datenschutz) --- */
.legal-card {
    background-color: var(--text-light);
    border-radius: var(--card-radius);
    box-shadow: 0 10px 30px rgba(0,0,0,0.04);
    padding: 50px;
}

.legal-card h2 {
    font-size: 1.5rem;
    color: var(--accent-blue);
    margin-top: 40px;
    margin-bottom: 15px;
    letter-spacing: -0.5px;
    border-bottom: 1px solid var(--bg-element);
    padding-bottom: 8px;
}

.legal-card h2:first-child {
    margin-top: 0;
}

.legal-card h3 {
    font-size: 1.1rem;
    color: var(--text-dark);
    margin-top: 25px;
    margin-bottom: 10px;
}

.legal-card p, .legal-card li {
    margin-bottom: 15px;
    color: #444;
    font-size: 1rem;
}

.legal-card ul {
    padding-left: 20px;
    margin-bottom: 15px;
}

.legal-card a {
    color: var(--accent-blue);
    text-decoration: none;
    font-weight: 500;
}

.legal-card a:hover {
    text-decoration: underline;
}

/* --- 12. FOOTER --- */
footer {
    text-align: center;
    padding: 50px 20px;
    color: #999;
    font-size: 0.85rem;
    background-color: var(--bg-element);
    margin-top: auto;
}

.footer-links {
    margin-top: 15px;
    display: flex;
    justify-content: center;
    gap: 20px;
}

.footer-links a {
    color: #777;
    text-decoration: none;
    transition: color 0.2s ease;
}

.footer-links a:hover {
    color: var(--accent-blue);
}
+

/* =========================================
   RAWGRAVEL HUB – Onepage additions
   Reuses the existing color variables, buttons,
   cards and responsive rhythm above.
   ========================================= */
html { scroll-behavior: smooth; }
body.hub-page { display: block; overflow-x: hidden; }
.hub-page a:focus-visible, .hub-page button:focus-visible { outline: 3px solid var(--accent-orange); outline-offset: 4px; }
.hub-shell { width: min(1200px, 90%); margin: 0 auto; }
.hub-header { min-height: 76px; padding: 18px 5%; position: sticky; }
.hub-logo { display: inline-flex; align-items: baseline; gap: 4px; color: var(--text-dark); text-decoration: none; font-size: 1.22rem; letter-spacing: -.9px; line-height: 1; white-space: nowrap; }
.hub-logo span { font-weight: 700; color: var(--text-dark); }
.hub-logo b { color: var(--accent-blue); font-size: 1.05rem; font-weight: 400; letter-spacing: .08em; }
.hub-logo i { color: var(--accent-blue); font-style: italic; font-weight: 400; }
.hub-menu-toggle { display: flex; flex-direction: column; gap: 5px; border: 0; background: transparent; padding: 10px; cursor: pointer; }
.hub-menu-toggle span { display: block; width: 24px; height: 2px; background: var(--text-dark); transition: transform .25s ease, opacity .25s ease; }
.hub-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hub-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.hub-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.hub-nav { position: absolute; inset: 100% 0 auto; display: grid; gap: 3px; max-height: 0; overflow: hidden; padding: 0 5%; background: rgba(244,244,240,.98); border-bottom: 1px solid transparent; transition: max-height .3s ease, padding .3s ease, border-color .3s ease; }
.hub-nav.is-open { max-height: 430px; padding-top: 20px; padding-bottom: 22px; border-color: var(--bg-element); }
.hub-nav a { padding: 9px 0; color: var(--text-dark); font-size: .88rem; text-decoration: none; }
.hub-nav a:hover { color: var(--accent-orange); }
.hub-section { padding: 88px 0; }
.hub-section--white { background: var(--text-light); }
.hub-section--soft { background: var(--bg-element); }
.hub-hero { padding-top: 72px; }
.hub-hero-grid, .hub-split { display: grid; gap: 42px; align-items: center; }
.hub-hero-copy { max-width: 660px; }
.hub-eyebrow { margin-bottom: 16px; color: var(--accent-orange); font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.hub-hero h1, .hub-section-heading h2, .hub-feature h2, .hub-contact h2 { margin: 0 0 22px; color: var(--text-dark); font-size: clamp(2.35rem, 7vw, 4.6rem); font-weight: 400; letter-spacing: -2.5px; line-height: 1.03; }
.hub-hero h1 span, .hub-section-heading h2 span, .hub-feature h2 span, .hub-contact h2 span { color: var(--accent-blue); font-style: italic; font-weight: 400; }
.hub-lead { max-width: 540px; color: var(--accent-blue); font-size: 1.16rem; line-height: 1.45; }
.hub-hero-copy > p:not(.hub-eyebrow):not(.hub-lead) { max-width: 610px; color: var(--text-dark); opacity: .78; font-size: 1.02rem; }
.hub-intro-copy { max-width: 610px; color: var(--text-dark); opacity: .78; font-size: 1.02rem; line-height: 1.55; }
.hub-intro-copy p { margin: 0 0 1.05rem; }
.hub-intro-copy p:last-child { margin-bottom: 0; }
.hub-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 25px 0; }
.hub-tags span, .hub-status, .hub-event-type { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 11px; border-radius: 30px; background: var(--bg-element); color: var(--accent-blue); font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.hub-actions, .hub-inline-cta { display: flex; flex-wrap: wrap; gap: 13px; align-items: center; margin-top: 28px; }
.hub-media-placeholder { display: grid; place-items: center; min-height: 360px; background: var(--bg-element); border: 1px solid rgba(88,107,125,.18); color: var(--accent-blue); text-align: center; }
.hub-media-placeholder span { max-width: 80%; font-size: .76rem; letter-spacing: .04em; }
.hub-hero-media { min-height: 430px; overflow: hidden; }
.hub-hero-media img {
  width: 100%;
  height: 100%;
  min-height: 430px;
  display: block;
  object-fit: cover;
  object-position: center;
}
@media (max-width: 699px) {
  .hub-hero-media,
  .hub-hero-media img {
    min-height: 320px;
  }
}
.hub-section-heading { max-width: 740px; margin-bottom: 40px; }
.hub-club-logo { display: block; width: min(150px, 38vw); height: auto; max-height: 72px; object-fit: contain; object-position: left center; margin: 0 0 22px; }
.hub-section-heading p:not(.hub-eyebrow), .hub-feature-copy > p, .hub-contact-inner > p:not(.hub-eyebrow) { max-width: 700px; color: var(--text-dark); opacity: .78; font-size: 1.04rem; }
.hub-card-grid { display: grid; gap: 16px; }
.hub-card-grid--2 { grid-template-columns: 1fr; }
.hub-card-grid--4 { grid-template-columns: 1fr; }
.hub-link-card, .hub-info-card, .hub-event-card, .hub-note { padding: 30px; background: var(--text-light); border: 1px solid rgba(88,107,125,.16); }
.hub-link-card { min-height: 250px; display: flex; flex-direction: column; align-items: flex-start; }
.hub-link-card .cta-primary, .hub-link-card .btn-outline { margin-top: auto; }
.hub-card-kicker, .hub-index { margin-bottom: 18px; color: var(--accent-orange); font-size: .7rem; font-weight: 700; letter-spacing: .12em; }
.hub-link-card h3, .hub-info-card h3, .hub-event-card h3, .hub-note h3 { margin-bottom: 12px; color: var(--text-dark); font-size: 1.35rem; font-weight: 500; letter-spacing: -.5px; }
.hub-link-card p, .hub-info-card p, .hub-event-card p, .hub-note p { color: var(--text-dark); opacity: .72; font-size: .94rem; }
.hub-info-card { min-height: 200px; }
.hub-info-card .hub-index { display: block; }
.hub-inline-cta { justify-content: flex-start; }
.text-link { color: var(--accent-blue); font-size: .9rem; font-weight: 600; text-decoration: none; }
.text-link:hover { color: var(--accent-orange); }
.hub-feature { display: grid; background: var(--text-light); border: 1px solid rgba(88,107,125,.14); }
.hub-feature-media { min-height: 300px; overflow: hidden; }
.hub-feature-media img { width: 100%; height: 100%; min-height: 300px; display: block; object-fit: contain; object-position: center; }
.hub-feature-copy { padding: 36px 30px; }
.hub-feature-copy h2 { font-size: clamp(1.75rem, 4vw, 3rem); letter-spacing: -1.4px; }
.hub-feature-copy h2 span { color: rgba(17, 17, 17, .58); font-style: italic; }
.hub-availability { margin-top: 10px; padding: 10px 16px; border: 1px solid var(--accent-orange); border-radius: 3px; background: transparent; color: var(--text-dark); font-size: .82rem; letter-spacing: .08em; }
.hub-list { display: grid; gap: 10px; margin: 25px 0 28px; padding: 0; list-style: none; }
.hub-list li { position: relative; padding-left: 20px; color: var(--text-dark); opacity: .78; font-size: .94rem; }
.hub-list li::before { content: "→"; position: absolute; left: 0; color: var(--accent-orange); }
.hub-note { border-left: 3px solid var(--accent-orange); }
.hub-note-mark { color: var(--accent-orange) !important; font-size: 2.2rem !important; line-height: 1; }
.hub-book-cover { width: 72%; min-height: 320px; justify-self: center; background: transparent; border: 0; color: var(--text-light); }
.hub-book-cover span { color: var(--text-light); }
.hub-book-cover img { width: 100%; height: 100%; min-height: 0; display: block; margin: 0 auto; object-fit: contain; object-position: center; }
.hub-muted { color: var(--accent-blue) !important; font-size: .9rem !important; }
.hub-event-grid { display: grid; gap: 16px; }
.hub-event-card { min-height: 285px; display: flex; flex-direction: column; align-items: flex-start; }
.hub-event-meta { margin-bottom: 22px; color: var(--accent-orange) !important; font-size: .68rem !important; font-weight: 700; letter-spacing: .08em; }
.hub-event-card .hub-event-type { margin-top: auto; margin-bottom: 20px; }
.hub-contact { background: var(--accent-blue); color: var(--text-light); }
.hub-contact-inner { max-width: 780px; text-align: center; }
.hub-contact .hub-eyebrow, .hub-contact h2, .hub-contact p { color: var(--text-light); }
.hub-contact-inner > p:not(.hub-eyebrow) { margin: 0 auto; opacity: .9; }
.hub-contact-inner > p:not(.hub-eyebrow) { color: rgba(255, 255, 255, .84) !important; }
.hub-contact .hub-actions { justify-content: center; }
.hub-contact .btn-white { color: var(--accent-blue); }
.hub-contact .btn-white:hover { background-color: var(--text-dark); color: var(--text-light); }
.hub-footer { margin-top: 0; padding: 42px 0; background: var(--text-dark); color: var(--text-light); }
.hub-footer-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 22px; }
.hub-footer .hub-logo span { color: var(--text-light); }
.hub-footer .hub-logo b, .hub-footer .hub-logo i { color: var(--accent-blue); }
.hub-footer-links { display: flex; flex-wrap: wrap; gap: 18px; }
.hub-footer-links a { color: var(--text-light); font-size: .8rem; text-decoration: none; opacity: .78; }
.hub-footer-links a:hover { color: var(--accent-orange); opacity: 1; }
.hub-footer small { color: var(--text-light); opacity: .62; }
.hub-cookie-settings { border: 0; padding: 0; background: transparent; color: var(--text-light); font: inherit; font-size: .8rem; opacity: .78; cursor: pointer; }
.hub-cookie-settings:hover { color: var(--accent-orange); opacity: 1; }
.hub-consent[hidden] { display: none; }
.hub-consent { position: fixed; inset: auto 0 0; z-index: 2000; padding: 16px; background: rgba(17,17,17,.18); }
.hub-consent-card { width: min(760px, 100%); margin: 0 auto; padding: 24px; background: var(--text-light); border: 1px solid rgba(88,107,125,.2); box-shadow: 0 14px 40px rgba(17,17,17,.2); }
.hub-consent-eyebrow { margin: 0 0 8px; color: var(--accent-orange); font-size: .68rem; font-weight: 700; letter-spacing: .14em; }
.hub-consent-card h2 { margin: 0 0 8px; color: var(--text-dark); font-size: 1.35rem; font-weight: 500; }
.hub-consent-card > p:not(.hub-consent-eyebrow):not(.hub-consent-legal) { margin: 0; color: var(--text-dark); opacity: .78; font-size: .9rem; line-height: 1.5; }
.hub-consent-options { display: grid; gap: 8px; margin-top: 16px; }
.hub-consent-option { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px; background: var(--bg-element); }
.hub-consent-option strong, .hub-consent-option small { display: block; }
.hub-consent-option strong { color: var(--text-dark); font-size: .9rem; }
.hub-consent-option small { color: var(--accent-blue); font-size: .76rem; line-height: 1.35; }
.hub-consent-option input { width: 20px; height: 20px; flex: 0 0 20px; accent-color: var(--accent-orange); }
.hub-consent-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.hub-consent-actions button { min-height: 42px; padding: 9px 15px; border: 1px solid var(--accent-blue); font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer; }
.hub-consent-primary { background: var(--accent-orange); border-color: var(--accent-orange) !important; color: var(--text-light); }
.hub-consent-secondary { background: var(--text-light); color: var(--accent-blue); }
.hub-consent-secondary:hover { background: var(--bg-element); }
.hub-consent-primary:hover { background: var(--text-dark); }
.hub-consent-legal { margin: 13px 0 0; color: var(--accent-blue); font-size: .72rem; }
.hub-consent-legal a { color: inherit; text-decoration: underline; }
.reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (min-width: 700px) {
  .hub-card-grid--2 { grid-template-columns: repeat(2, 1fr); }
  .hub-card-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .hub-event-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 900px) {
  .hub-menu-toggle { display: none; }
  .hub-header { padding-left: 5%; padding-right: 5%; }
  .hub-nav { position: static; display: flex; max-height: none; align-items: center; justify-content: flex-end; gap: 25px; padding: 0; background: transparent; border: 0; box-shadow: none; overflow: visible; }
  .hub-nav a { padding: 0; }
  .hub-hero-grid, .hub-split { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  .hub-feature { grid-template-columns: .95fr 1.05fr; }
  .hub-feature-copy { padding: 54px; }
  .hub-card-grid--4 { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 899px) {
  .hub-book-cover { width: 82%; min-height: 320px; }
}
@media (min-width: 1200px) {
  .hub-section { padding: 120px 0; }
  .hub-hero { padding-top: 110px; }
  .hub-link-card, .hub-info-card, .hub-event-card { padding: 34px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
@media (max-width: 699px) {
  .hub-consent { padding: 10px; }
  .hub-consent-card { padding: 18px; }
  .hub-consent-actions { display: grid; grid-template-columns: 1fr; }
  .hub-consent-actions button { width: 100%; }
}

/* RAWGRAVEL 1:1 Coaching */
.coaching-page { display:block; overflow-x:hidden; }
.coaching-page a:focus-visible,.coaching-page button:focus-visible,.coaching-page input:focus-visible,.coaching-page select:focus-visible { outline:3px solid var(--accent-orange); outline-offset:4px; }
.coaching-shell { width:min(1180px,90%); margin:0 auto; }
.coaching-hero { padding-top:72px; }
.coaching-hero-grid,.coaching-split { display:grid; gap:42px; align-items:center; }
.coaching-hero-copy { max-width:660px; }
.coaching-page h1,.coaching-page h2 { font-weight:400; }
.coaching-page h1 span,.coaching-page h2 span { color:var(--accent-blue); font-style:italic; font-weight:400; }
.coaching-page h1 { font-size:clamp(2.45rem,7vw,4.8rem); line-height:1.03; letter-spacing:-2.5px; margin:0 0 24px; }
.coaching-lead { max-width:650px; color:var(--accent-blue); font-size:clamp(1.15rem,2vw,1.4rem); line-height:1.5; }
.coaching-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin-top:30px; }
.coaching-date { color:var(--accent-orange); font-size:.72rem; font-weight:700; letter-spacing:.12em; }
.coaching-note { margin-top:22px; color:var(--accent-blue); font-size:.85rem; }
.coaching-hero-visual { min-height:390px; display:grid; place-items:center; border:1px solid rgba(88,107,125,.2); background:var(--bg-element); color:var(--accent-blue); text-align:center; }
.coaching-hero-visual span { font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; }
.coaching-section-heading { max-width:740px; margin-bottom:34px; }
.coaching-section-heading h2 { margin:0 0 18px; font-size:clamp(2rem,5vw,3.65rem); line-height:1.05; letter-spacing:-1.8px; }
.coaching-section-heading>p:not(.hub-eyebrow),.coaching-prose p,.coaching-audience p { color:var(--accent-blue); font-size:1.02rem; }
.coaching-prose { max-width:610px; }
.coaching-compare { display:grid; gap:16px; grid-template-columns:1fr; }
.coaching-compare article { background:var(--text-light); border:1px solid rgba(88,107,125,.16); padding:28px; }
.coaching-compare-focus { border-top:3px solid var(--accent-orange) !important; }
.coaching-compare h3 { color:var(--accent-blue); font-size:1.45rem; margin:.25rem 0 .7rem; }
.coaching-card-kicker,.coaching-index { color:var(--accent-orange); font-size:.7rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.coaching-masterclass-list { display:grid; grid-template-columns:repeat(2,1fr); gap:0 24px; list-style:none; padding:0; margin:28px 0 0; }
.coaching-masterclass-list li { padding:12px 0; border-bottom:1px solid rgba(88,107,125,.18); color:var(--text-dark); font-weight:600; }
.coaching-masterclass-list li::before { content:'→'; color:var(--accent-orange); margin-right:10px; }
.coaching-area-grid { display:grid; grid-template-columns:1fr; gap:16px; }
.coaching-area-grid article { padding:27px; border:1px solid rgba(88,107,125,.15); background:var(--text-light); min-height:240px; }
.coaching-area-grid h3 { margin:12px 0 10px; font-size:1.35rem; color:var(--accent-blue); }
.coaching-area-grid p { color:var(--accent-blue); font-size:.96rem; }
.coaching-area-grid small { display:block; margin-top:14px; color:var(--accent-blue); opacity:.8; font-size:.78rem; }
.coaching-steps { display:grid; grid-template-columns:1fr; gap:12px; list-style:none; padding:0; margin:0; counter-reset:steps; }
.coaching-steps li { display:grid; gap:5px; padding:20px 22px; border-left:3px solid var(--accent-orange); background:var(--text-light); }
.coaching-steps b { color:var(--text-dark); font-size:1rem; }
.coaching-steps span { color:var(--accent-blue); font-size:.95rem; }
.coaching-audience { max-width:760px; }
.coaching-waitlist { background:var(--bg-page); }
.coaching-waitlist-card { max-width:900px; margin:0 auto; padding:42px 32px; background:var(--accent-blue); color:var(--text-light); }
.coaching-waitlist-card h2 { color:var(--text-light); font-size:clamp(2rem,5vw,3.3rem); margin:.2rem 0 16px; }
.coaching-waitlist-card p { color:rgba(255,255,255,.84); }
.coaching-waitlist-card .hub-eyebrow { color:var(--accent-orange); }
.coaching-form-grid { display:grid; grid-template-columns:1fr; gap:15px; margin:26px 0 18px; }
.coaching-form-grid label { color:var(--text-light); font-size:.78rem; font-weight:700; letter-spacing:.04em; }
.coaching-form-grid input,.coaching-form-grid select { display:block; width:100%; min-height:48px; margin-top:7px; padding:12px 14px; border:1px solid rgba(255,255,255,.25); border-radius:2px; background:var(--text-light); color:var(--text-dark); font:inherit; }
.coaching-consent { display:block; margin:16px 0 20px; color:rgba(255,255,255,.82); font-size:.78rem; line-height:1.5; }
.coaching-consent input { width:18px; height:18px; margin-right:7px; vertical-align:-4px; accent-color:var(--accent-orange); }
.coaching-consent a { color:var(--text-light); text-decoration:underline; }
.coaching-waitlist-card .cta-primary { border:0; background:var(--accent-orange); }
.coaching-form-status { min-height:1.5em; margin:.8rem 0 0; color:var(--text-light) !important; }
.coaching-fineprint { margin:20px 0 0; font-size:.78rem !important; opacity:.7; }
.coaching-narrow { max-width:820px; }
.coaching-faq details { padding:18px 0; border-top:1px solid rgba(88,107,125,.2); }
.coaching-faq details:last-child { border-bottom:1px solid rgba(88,107,125,.2); }
.coaching-faq summary { color:var(--text-dark); font-size:1rem; }
.coaching-faq p { max-width:700px; padding-top:10px; color:var(--accent-blue); }
.coaching-contact-inner { max-width:700px; text-align:center; }
.coaching-contact-inner .hub-eyebrow { margin-bottom:14px; }
.coaching-contact-inner h2 { margin-bottom:16px; }
.coaching-contact-inner p:not(.hub-eyebrow) { color:var(--accent-blue); }
.coaching-contact-inner .btn-outline { display:inline-block; margin-top:10px; }
.coaching-footer { margin-top:0; }
.coaching-footer-inner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; }
.coaching-footer-links { display:flex; gap:18px; flex-wrap:wrap; align-items:center; }
.coaching-footer-links a { color:var(--text-light); opacity:.8; font-size:.82rem; }
.coaching-footer-links a:hover { color:var(--accent-orange); opacity:1; }
.coaching-footer .hub-logo span { color:var(--text-light); }
.coaching-footer .hub-logo b,.coaching-footer .hub-logo i { color:var(--accent-blue); }
@media (min-width:700px) {
  .coaching-compare { grid-template-columns:1fr 1fr; }
  .coaching-area-grid { grid-template-columns:repeat(2,1fr); }
  .coaching-form-grid { grid-template-columns:1fr 1fr; }
}
@media (min-width:900px) {
  .coaching-hero-grid,.coaching-split { grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); }
  .coaching-area-grid { grid-template-columns:repeat(4,1fr); }
  .coaching-area-grid article { min-height:285px; }
}
@media (prefers-reduced-motion:reduce) { .coaching-page *, .coaching-page *::before, .coaching-page *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; } }
.coaching-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.coaching-page .contact-card { margin-top:20px; }
.coaching-page .contact-form-wrapper { width:100%; padding:36px; }
.coaching-page .contact-form-wrapper>form>label { display:block; margin:0 0 18px; color:var(--accent-blue); font-size:.78rem; font-weight:700; letter-spacing:.04em; }
.coaching-page .contact-form-wrapper .form-control { margin-top:7px; border-color:rgba(88,107,125,.18); }
.coaching-page .contact-form-wrapper .coaching-consent { color:var(--accent-blue); font-weight:400; letter-spacing:0; }
.coaching-page .contact-form-wrapper .coaching-consent a { color:var(--accent-blue); }
.coaching-page .legal-card { margin-top:20px; }
@media (max-width:600px) { .coaching-page .contact-form-wrapper { padding:24px 20px; } }

/* Coaching service composition: distinct from the hub while retaining RAWGRAVEL brand tokens. */
.coach-hero { padding:96px 0 88px; background:var(--bg-page); }
.coach-hero-grid { display:grid; gap:48px; align-items:stretch; }
.coach-hero-copy { max-width:680px; align-self:center; }
.coach-hero-copy h1 { margin:0 0 25px; font-size:clamp(2.7rem,7vw,5.2rem); line-height:.98; letter-spacing:-2.8px; font-weight:400; }
.coach-hero-copy h1 span { color:var(--accent-blue); font-style:italic; }
.coach-hero-lead { max-width:570px; margin:0 0 28px; color:var(--accent-blue); font-size:clamp(1.05rem,2vw,1.28rem); line-height:1.55; }
.coach-hero-sub { margin:-10px 0 24px; color:var(--accent-blue); font-size:1.05rem; font-style:italic; letter-spacing:.04em; }
.coach-hero-date { margin:16px 0 0; color:var(--accent-orange); font-size:.72rem; font-weight:700; letter-spacing:.14em; }
.coach-snapshot { align-self:stretch; padding:30px 28px; border-left:3px solid var(--accent-orange); background:var(--text-light); }
.coach-snapshot-label { margin:0 0 20px; color:var(--accent-orange); font-size:.68rem; font-weight:700; letter-spacing:.15em; }
.coach-snapshot-row { display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:18px 0; border-top:1px solid rgba(88,107,125,.22); }
.coach-snapshot-row strong { color:var(--text-dark); font-size:1.12rem; font-weight:500; letter-spacing:.03em; }
.coach-snapshot-row span { color:var(--accent-blue); font-size:.85rem; text-align:right; }
.coach-statement { padding:80px 0; background:var(--accent-blue); color:var(--text-light); }
.coach-statement p { margin:0; font-size:clamp(1.65rem,4vw,3.2rem); line-height:1.1; letter-spacing:-1px; font-weight:400; }
.coach-statement span { color:var(--text-light); font-style:italic; opacity:.78; }
.coach-section { padding:100px 0; }
.coach-section-index { margin:0 0 25px; color:var(--accent-orange); font-size:.68rem; font-weight:700; letter-spacing:.15em; }
.coach-section h2 { margin:0 0 25px; color:var(--text-dark); font-size:clamp(2.15rem,5vw,4rem); line-height:1.02; letter-spacing:-2px; font-weight:400; }
.coach-section h2 span { color:var(--accent-blue); font-style:italic; }
.coach-intro { background:var(--text-light); }
.coach-intro-grid { display:grid; grid-template-columns:minmax(120px,.4fr) minmax(0,1.6fr); gap:40px; }
.coach-intro-text { max-width:700px; margin:0 0 17px; color:var(--accent-blue); font-size:1.08rem; line-height:1.65; }
.coach-bridge { background:var(--bg-element); }
.coach-bridge-grid { display:grid; grid-template-columns:1fr auto 1fr; gap:30px; align-items:stretch; margin-top:45px; }
.coach-bridge-side { padding:28px 0; }
.coach-bridge-side--focus { padding-left:32px; border-left:1px solid rgba(88,107,125,.3); }
.coach-bridge-kicker { margin:0 0 20px; color:var(--accent-orange); font-size:.7rem; font-weight:700; letter-spacing:.15em; }
.coach-bridge-side h2 { margin:0 0 22px; font-size:clamp(2rem,4vw,3.3rem); }
.coach-bridge-side ul { list-style:none; margin:0; padding:0; color:var(--accent-blue); line-height:1.8; }
.coach-bridge-side li::before { content:'→'; margin-right:10px; color:var(--accent-orange); }
.coach-bridge-line { display:grid; place-items:center; color:var(--accent-orange); font-size:2rem; }
.coach-module-index { display:flex; flex-wrap:wrap; gap:0; margin:60px 0 0; padding:0; list-style:none; border-top:1px solid rgba(88,107,125,.25); }
.coach-module-index li { padding:14px 18px 14px 0; margin-right:18px; color:var(--accent-blue); font-size:.82rem; }
.coach-module-index li:not(:last-child)::after { content:'·'; margin-left:18px; color:var(--accent-orange); }
.coach-modules { background:var(--text-light); }
.coach-modules>div>h2 { max-width:700px; margin-bottom:55px; }
.coach-module-list { border-top:1px solid rgba(88,107,125,.28); }
.coach-module { display:grid; grid-template-columns:90px minmax(0,1fr); gap:32px; padding:38px 0; border-bottom:1px solid rgba(88,107,125,.28); }
.coach-module--feature { padding-top:52px; padding-bottom:52px; }
.coach-module-number { color:var(--accent-orange); font-size:1.8rem; font-weight:400; letter-spacing:.02em; }
.coach-module h3 { margin:0 0 12px; color:var(--text-dark); font-size:1.65rem; font-weight:500; }
.coach-module p { max-width:760px; margin:0 0 16px; color:var(--accent-blue); font-size:1rem; line-height:1.6; }
.coach-module ul { display:flex; flex-wrap:wrap; gap:8px 28px; margin:0; padding:0; list-style:none; color:var(--accent-blue); font-size:.85rem; }
.coach-module li::before { content:'—'; margin-right:8px; color:var(--accent-orange); }
.coach-module small { color:var(--accent-blue); opacity:.8; font-size:.78rem; }
.coach-personal { background:var(--bg-page); }
.coach-personal-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:70px; align-items:start; }
.coach-personal h2 { max-width:570px; }
.coach-personal-text { max-width:580px; margin:56px 0 30px; color:var(--accent-blue); font-size:1.08rem; line-height:1.65; }
.coach-principles { display:flex; flex-wrap:wrap; gap:10px 22px; padding-top:20px; border-top:1px solid rgba(88,107,125,.3); color:var(--text-dark); font-size:.82rem; font-weight:600; }
.coach-principles span::before { content:'+'; margin-right:7px; color:var(--accent-orange); }
.coach-process { background:var(--bg-element); }
.coach-timeline { position:relative; display:grid; grid-template-columns:repeat(6,1fr); gap:0; margin:65px 0 0; padding:0; list-style:none; }
.coach-timeline::before { content:''; position:absolute; top:20px; right:8%; left:2%; height:1px; background:rgba(88,107,125,.4); }
.coach-timeline li { position:relative; z-index:1; padding-right:20px; }
.coach-timeline li>b { display:grid; place-items:center; width:42px; height:42px; margin-bottom:20px; background:var(--accent-orange); color:var(--text-light); font-size:.82rem; font-weight:600; }
.coach-timeline h3 { margin:0 0 8px; color:var(--text-dark); font-size:1.05rem; font-weight:500; }
.coach-timeline p { max-width:160px; margin:0; color:var(--accent-blue); font-size:.82rem; line-height:1.45; }
.coach-audience { background:var(--text-light); }
.coach-audience-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:80px; }
.coach-audience-list { border-top:1px solid rgba(88,107,125,.28); }
.coach-audience-list p { margin:0; padding:16px 0; border-bottom:1px solid rgba(88,107,125,.28); color:var(--text-dark); font-size:1.18rem; }
.coach-audience-list p::before { content:'→'; margin-right:13px; color:var(--accent-orange); }
.coach-audience-list small { display:block; max-width:600px; margin-top:28px; color:var(--accent-blue); font-size:.86rem; line-height:1.55; }
.coach-weight { background:var(--bg-page); border-top:1px solid rgba(88,107,125,.2); }
.coach-weight-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:80px; align-items:start; }
.coach-weight-copy { max-width:700px; }
.coach-weight-copy p { margin:0 0 18px; color:var(--accent-blue); font-size:1.05rem; line-height:1.65; }
.coach-weight-copy small { display:block; margin-top:28px; color:var(--accent-blue); opacity:.8; font-size:.8rem; }
.coach-book-link { display:inline-block; margin-top:-8px; margin-bottom:28px; padding:11px 16px; border:1px solid var(--accent-orange); border-radius:12px; color:var(--accent-blue); font-size:.84rem; font-weight:600; text-decoration:none; }
.coach-book-link:hover { background:var(--accent-orange); color:var(--text-light); }
@media (max-width:899px) { .coach-weight-grid { grid-template-columns:1fr; gap:32px; } }
.coach-waitlist { background:var(--accent-blue); color:var(--text-light); }
.coach-waitlist-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:75px; align-items:start; }
.coach-waitlist h2 { color:var(--text-light); }
.coach-waitlist h2 span { color:var(--text-light); opacity:.75; }
.coach-waitlist-copy>p:not(.coach-section-index) { max-width:520px; color:var(--text-light); opacity:.88; font-size:1.02rem; line-height:1.6; }
.coach-waitlist-note { font-size:.8rem !important; opacity:.65 !important; }
.coach-waitlist-form { padding:28px; background:var(--text-light); }
.coach-waitlist-form .coaching-form-grid { margin-top:0; }
.coach-waitlist-form label { color:var(--accent-blue); }
.coach-waitlist-form .coaching-consent { color:var(--accent-blue); }
.coach-waitlist-form .coaching-consent a { color:var(--accent-blue); }
.coach-waitlist-form .coaching-form-status { color:var(--accent-blue) !important; }
.coach-faq-section { background:var(--bg-element); }
.coach-faq-section h2 { margin-bottom:45px; }
@media (min-width:900px) { .coach-hero-grid { grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); } }
@media (max-width:899px) {
  .coach-intro-grid,.coach-personal-grid,.coach-audience-grid,.coach-waitlist-grid { grid-template-columns:1fr; gap:32px; }
  .coach-personal-text { margin-top:0; }
  .coach-timeline { grid-template-columns:1fr; gap:0; margin-top:42px; }
  .coach-timeline::before { top:20px; bottom:20px; left:20px; width:1px; height:auto; }
  .coach-timeline li { display:grid; grid-template-columns:42px 1fr; gap:20px; padding:0 0 28px; }
  .coach-timeline li>b { margin:0; }
  .coach-timeline p { max-width:none; }
}
@media (max-width:699px) {
  .coach-hero { padding:72px 0 64px; }
  .coach-section { padding:76px 0; }
  .coach-statement { padding:60px 0; }
  .coach-bridge-grid { grid-template-columns:1fr; gap:15px; }
  .coach-bridge-side--focus { padding:28px 0 0; border-top:1px solid rgba(88,107,125,.3); border-left:0; }
  .coach-bridge-line { display:none; }
  .coach-module { grid-template-columns:52px minmax(0,1fr); gap:16px; padding:30px 0; }
  .coach-module--feature { padding-top:38px; padding-bottom:38px; }
  .coach-module-number { font-size:1.35rem; }
  .coach-module h3 { font-size:1.38rem; }
  .coach-snapshot { padding:22px 20px; }
  .coach-snapshot-row { display:block; }
  .coach-snapshot-row span { display:block; margin-top:4px; text-align:left; }
  .coach-waitlist-form { padding:22px 18px; }
}

/* Final coaching refinements */
.coaching-page .coaching-header { gap:20px; }
.coach-header-title { order:2; flex:1; min-width:0; text-align:center; line-height:1.05; }
.coach-header-title span,.coach-header-title strong,.coach-header-title em { display:block; }
.coach-header-title span { color:var(--text-dark); font-size:.68rem; font-weight:700; letter-spacing:.13em; }
.coach-header-title strong { color:var(--accent-blue); font-size:.8rem; font-weight:500; letter-spacing:.08em; }
.coach-header-title em { margin-top:3px; color:var(--accent-blue); font-size:.68rem; font-style:italic; }
.coaching-page .coaching-header .hub-logo { order:1; }
.coaching-page .coaching-header .hub-menu-toggle { order:3; }
.coaching-page .coaching-header .hub-nav { order:4; }
.coach-header-banner { padding:30px 0 28px; background:var(--text-light); border-bottom:1px solid rgba(88,107,125,.2); }
.coach-header-banner .coaching-shell { display:flex; align-items:baseline; justify-content:center; gap:24px; flex-wrap:wrap; }
.coach-header-banner span { color:var(--text-dark); font-size:clamp(1.25rem,3vw,2.1rem); font-weight:600; letter-spacing:.08em; }
.coach-header-banner strong { color:var(--accent-blue); font-size:clamp(1.25rem,3vw,2.1rem); font-weight:400; font-style:italic; letter-spacing:.03em; }
.coach-header-banner em { color:var(--accent-blue); font-size:clamp(.9rem,1.8vw,1.15rem); font-style:italic; }
@media (max-width:699px) { .coach-header-banner { padding:22px 0; } .coach-header-banner .coaching-shell { display:block; text-align:center; } .coach-header-banner span,.coach-header-banner strong,.coach-header-banner em { display:block; } .coach-header-banner strong { margin-top:5px; } .coach-header-banner em { margin-top:6px; } }
.coach-hero-photo { height:100%; min-height:420px; margin:0; overflow:hidden; background:var(--bg-element); }
.coach-hero-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 28%; }
.coach-module-index { margin-top:34px; }
.coach-module-index li { padding-top:10px; padding-bottom:10px; margin-right:12px; }
.coach-module-index li:not(:last-child)::after { margin-left:12px; }
.coaching-page .contact-form-wrapper form label { display:block; color:var(--text-dark); font-size:.82rem; font-weight:600; letter-spacing:.02em; }
.coaching-page .contact-form-wrapper .form-control { min-height:50px; margin-top:8px; background:var(--text-light); color:var(--text-dark); border:1px solid var(--accent-blue); }
.coaching-page .contact-form-wrapper textarea.form-control { min-height:170px; }
.coaching-page .contact-form-wrapper .coaching-consent { color:var(--accent-blue); font-size:.8rem; font-weight:400; }
.coaching-page .contact-form-wrapper .coaching-consent input { accent-color:var(--accent-orange); }
.coach-waitlist-form .coaching-form-grid input,.coach-waitlist-form .coaching-form-grid select { border-color:var(--accent-blue); }
@media (max-width:699px) { .coach-hero-photo { min-height:360px; } }

/* Rounded coaching surfaces */
.coaching-page .coach-snapshot,
.coaching-page .coach-hero-photo,
.coaching-page .coach-waitlist-form,
.coaching-page .coach-module,
.coaching-page .contact-card,
.coaching-page .legal-card,
.coaching-page form,
.coaching-page input,
.coaching-page select,
.coaching-page textarea,
.coaching-page button,
.coaching-page .submit-btn,
.coaching-page .cta-primary,
.coaching-page .btn-outline { border-radius:12px; }
.coaching-page .coach-hero-photo { width:clamp(280px,36vw,470px); height:clamp(280px,36vw,470px); aspect-ratio:1 / 1; border-radius:50%; clip-path:circle(50% at 50% 50%); min-height:0; justify-self:end; }
.coaching-page .coach-hero-photo img { border-radius:50%; }
.coaching-page .coach-module { border-radius:12px; margin:0 0 12px; padding-left:24px; padding-right:24px; border:1px solid rgba(88,107,125,.2); }
.coaching-page .coach-module-list { border-top:0; }
.coaching-page .coach-waitlist-form { border:1px solid rgba(88,107,125,.2); }
@media (max-width:899px) { .coaching-page .coach-hero-photo { width:min(82vw,380px); height:min(82vw,380px); justify-self:center; } }
