/*
Theme Name: Rustic Roots
Theme URI: https://rusticrootshealthretreat.com
Author: Rustic Roots
Description: A native block theme for Rustic Roots Health Retreat.
Version: 1.2.0
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: rustic-roots
*/

:root { --rr-forest:#234536; --rr-deep:#132e24; --rr-ivory:#f5f1e7; --rr-sand:#ddd2bf; --rr-terra:#a96345; --rr-charcoal:#292b27; }
html { scroll-behavior:smooth; }
body { margin:0; background:#faf8f2; color:var(--rr-charcoal); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.65; }
h1,h2,h3,h4 { color:inherit; font-family:Georgia,"Times New Roman",serif; font-weight:400; line-height:1.1; letter-spacing:-.025em; }
h2 { font-size:clamp(2.2rem,5vw,4.2rem); max-width:18ch; }
h3 { font-size:clamp(1.55rem,2.4vw,2.15rem); }
a { color:var(--rr-forest); text-underline-offset:.2em; }
a:hover { color:var(--rr-terra); }
:focus-visible { outline:3px solid var(--rr-terra); outline-offset:4px; }
.wp-site-blocks { overflow:clip; }
.rr-shell { box-sizing:border-box; width:min(100%,80rem); max-width:80rem; margin-inline:auto; padding-inline:clamp(1.25rem,4vw,4rem); }
.rr-header { position:relative; z-index:20; background:#fffdf8; border-bottom:1px solid rgba(19,46,36,.15); }
.rr-header-inner { min-height:6rem; gap:1rem 2rem; }
.rr-brand-mark { margin:0; flex:none; }
.rr-brand-mark img { display:block; width:3.2rem; height:5.2rem; object-fit:contain; }
.rr-navigation { font-size:.92rem; font-weight:650; }
.rr-navigation .wp-block-navigation__container { gap:clamp(.75rem,1.8vw,1.8rem); }
.rr-header-cta { margin:0; }
.rr-header-cta a { display:inline-block; padding:.65rem 1.1rem; border:1px solid var(--rr-forest); border-radius:100px; font-size:.9rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.rr-header-cta a:hover { background:var(--rr-forest); color:white; }
.rr-hero { background:#fffdf8; padding-block:clamp(3.5rem,7vw,7rem); }
.rr-hero-grid { display:grid!important; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(2.5rem,5vw,6rem); }
.rr-hero h1 { max-width:13ch; margin-block:1.3rem; color:var(--rr-deep); font-size:clamp(3.1rem,5.2vw,5.5rem); }
.rr-hero p:not(.rr-eyebrow):not(.rr-hero-note) { max-width:35rem; font-size:clamp(1.05rem,1.4vw,1.23rem); }
.rr-hero-image { position:relative; margin:0; min-height:27rem; height:clamp(30rem,46vw,40rem); overflow:hidden; border-radius:.35rem; box-shadow:1.5rem 1.5rem 0 var(--rr-sand); }
.rr-hero-image img { width:100%; height:100%; object-fit:cover; object-position:75% center; }
.rr-hero-actions { gap:.6rem 1rem; margin-top:1.8rem; }
.rr-button-link .wp-block-button__link { background:transparent; color:var(--rr-forest); padding:.88rem .25rem; font-weight:700; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.35em; }
.rr-button-link .wp-block-button__link:hover { background:transparent; color:var(--rr-terra); }
.rr-hero-note { max-width:32rem; margin-top:2.2rem; padding-top:1rem; border-top:1px solid #cfcabc; color:#4e5d50; font-size:.86rem; font-weight:650; letter-spacing:.03em; }
.rr-eyebrow { margin-bottom:.7rem; color:var(--rr-forest); font-size:.74rem; font-weight:750; letter-spacing:.18em; text-transform:uppercase; }
.rr-button .wp-block-button__link { display:inline-block; background:var(--rr-terra); border:0; border-radius:100px; color:#fff; font-weight:700; padding:.88rem 1.35rem; text-decoration:none; }
.rr-button .wp-block-button__link:hover { background:#8b4d37; color:#fff; }
.rr-section { padding-block:clamp(4.5rem,8vw,8rem); }
.rr-section--sand { background:var(--rr-sand); }
.rr-section--forest { background:var(--rr-forest); color:var(--rr-ivory); }
.rr-section--forest a { color:#fff; }
.rr-section--forest .rr-eyebrow { color:#e9c798; }
.rr-intro { max-width:44rem; font-size:clamp(1.05rem,1.4vw,1.2rem); }
.rr-programmes { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.2rem,3vw,2.5rem); margin-top:2.8rem; }
.rr-programme { overflow:hidden; background:#fffdf8; border:1px solid rgba(19,46,36,.12); border-radius:.35rem; box-shadow:0 18px 48px rgba(19,46,36,.06); }
.rr-programme .wp-block-image { margin:0; }
.rr-programme .wp-block-image img { width:100%; height:clamp(16rem,25vw,21rem); object-fit:cover; }
.rr-programme-body { padding:clamp(1.5rem,2.5vw,2.2rem); }
.rr-programme-body h3 { margin-top:.2rem; }
.rr-programme-body .rr-eyebrow { color:#725028; }
.rr-text-link a { font-weight:750; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:.2rem; }
.rr-text-link a:hover { border-color:var(--rr-terra); }
.rr-imagery-note { margin-top:1.2rem; color:#5f6b60; font-size:.8rem; }
.rr-editorial-image { margin:2.5rem 0 0; height:clamp(15rem,30vw,24rem); overflow:hidden; border-radius:.35rem; }
.rr-editorial-image img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.rr-values { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.2rem,3vw,2.5rem); margin-top:2rem; }
.rr-value { padding:1.6rem 0 0; border-top:1px solid rgba(245,241,231,.45); }
.rr-value h3 { margin-top:.25rem; }
.rr-value-icon { width:3.5rem; height:3.5rem; margin:0 0 1.3rem; }
.rr-value-icon img { display:block; width:100%; height:100%; }
.rr-value-number { color:#e9c798; font-size:.8rem; font-weight:800; letter-spacing:.13em; }
.rr-approach h2 { max-width:19ch; }
.rr-approach .rr-intro { color:#e0e9df; }
.rr-step-number { color:var(--rr-terra); font-size:.85rem; font-weight:800; letter-spacing:.13em; }
.rr-steps { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.2rem,3vw,2.5rem); margin-top:2.7rem; }
.rr-step { padding-top:1.25rem; border-top:1px solid #b4b9ae; }
.rr-step h3 { max-width:14ch; }
.rr-step p:last-child { max-width:31ch; }
.rr-location { display:grid!important; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.rr-place .rr-location h2 { max-width:15ch; }
.rr-place-panel { display:flex; flex-direction:column; justify-content:space-between; min-height:19rem; padding:clamp(2rem,4vw,4rem); background:var(--rr-deep); border-radius:.35rem; color:var(--rr-ivory); box-shadow:1.2rem 1.2rem 0 #c8bca5; }
.rr-place-panel p:first-child { max-width:12ch; margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.4rem,4vw,4.5rem); line-height:1.1; }
.rr-place-panel-note { margin:2rem 0 0; color:#e9c798; font-size:.8rem; font-weight:750; letter-spacing:.12em; line-height:1.8; text-transform:uppercase; }
.rr-faq .rr-shell { max-width:64rem; }
.rr-faq details { border-top:1px solid #bec7bc; padding:1.2rem 0; }
.rr-faq details:last-child { border-bottom:1px solid #bec7bc; }
.rr-faq summary { cursor:pointer; color:var(--rr-deep); font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.3; }
.rr-faq details p { max-width:50rem; margin:1rem 0 .2rem; }
.rr-final-cta h2 { max-width:15ch; }
.rr-form { display:grid; gap:1rem; max-width:40rem; }
.rr-form label { display:grid; gap:.35rem; font-weight:700; }
.rr-form input,.rr-form textarea { box-sizing:border-box; width:100%; border:1px solid #727c72; border-radius:.3rem; font:inherit; padding:.75rem; }
.rr-form textarea { min-height:8rem; }
.rr-form button { cursor:pointer; justify-self:start; background:var(--rr-terra); border:0; border-radius:100px; color:#fff; font:inherit; font-weight:700; padding:.88rem 1.35rem; }
.rr-form .rr-honeypot { position:absolute; left:-10000px; }
.rr-notice { border-left:4px solid var(--rr-terra); padding:.75rem 1rem; }
.rr-whatsapp-float { position:fixed; z-index:30; right:1rem; bottom:1rem; padding:.8rem 1.05rem; background:#146c43; border-radius:100px; box-shadow:0 6px 24px rgba(0,0,0,.18); color:#fff; font-size:.9rem; font-weight:700; text-decoration:none; }
.rr-whatsapp-float:hover { background:#0f5434; color:#fff; }
.rr-footer { padding-block:3.5rem 5rem; background:var(--rr-deep); color:var(--rr-ivory); }
.rr-footer h2 { font-size:clamp(2rem,4vw,3.4rem); }
.rr-footer a { color:#f2d69e; }
.rr-footer-note { max-width:43rem; margin-top:2rem; color:#cbd8cf; font-size:.83rem; }
.rr-page { min-height:52vh; }
.rr-page h1 { margin-bottom:2rem; padding-bottom:1.2rem; border-bottom:1px solid #cfcabc; color:var(--rr-deep); font-size:clamp(3rem,6vw,5rem); }
.rr-page > .wp-block-post-content { max-width:72rem; margin-inline:0!important; }
.rr-page .wp-block-post-content > p { max-width:54rem; margin-inline:0!important; }
.rr-page .wp-block-post-content > h2 { margin:2.5rem 0 0; font-size:clamp(2.1rem,4vw,3.4rem); }
.rr-page-intro { font-size:clamp(1.15rem,1.7vw,1.4rem); }
.rr-detail-programmes { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.2rem,3vw,2.5rem); margin:3rem 0 0; }
.rr-detail-programme { overflow:hidden; border:1px solid rgba(19,46,36,.13); border-radius:.35rem; background:#fffdf8; }
.rr-detail-programme .wp-block-image { margin:0; }
.rr-detail-programme .wp-block-image img { display:block; width:100%; height:clamp(15rem,23vw,20rem); object-fit:cover; }
.rr-detail-programme-body { padding:clamp(1.5rem,3vw,2.4rem); }
.rr-detail-programme h2 { margin:.6rem 0 1.2rem; font-size:clamp(2rem,3vw,2.8rem); }
.rr-detail-programme-body .rr-eyebrow { color:#725028; }
.rr-page-callout { max-width:72rem; margin-top:4rem; padding:clamp(2rem,4vw,4rem); border-radius:.35rem; background:var(--rr-forest); color:var(--rr-ivory); }
.rr-page-callout h2 { margin:.6rem 0 1rem; font-size:clamp(2.2rem,4vw,3.5rem); }
.rr-page-callout .rr-eyebrow { color:#e9c798; }
.rr-page-callout .rr-text-link a { color:#fff; }
.rr-medical-note { padding-top:1.5rem; border-top:1px solid #cfcabc; color:#4e5d50; font-size:.88rem; }
@media (max-width:900px) { .rr-header-cta { display:none; } .rr-hero-grid { grid-template-columns:1fr; } .rr-hero-image { height:28rem; min-height:0; box-shadow:.8rem .8rem 0 var(--rr-sand); } .rr-steps { grid-template-columns:1fr; } .rr-step h3,.rr-step p:last-child { max-width:none; } }
@media (max-width:640px) { .rr-header-inner { min-height:4.7rem; } .rr-brand-mark img { width:2.6rem; height:4.2rem; } .rr-hero { padding-block:2.4rem 4rem; } .rr-hero h1 { font-size:clamp(2.9rem,11vw,4.2rem); } .rr-hero-image { height:21rem; } .rr-hero-actions { align-items:flex-start; } .rr-hero-note { font-size:.78rem; } .rr-programmes,.rr-values,.rr-location,.rr-detail-programmes { grid-template-columns:1fr; } .rr-programme .wp-block-image img,.rr-detail-programme .wp-block-image img { height:15rem; } .rr-editorial-image { height:13rem; } .rr-place-panel { min-height:15rem; } .rr-whatsapp-float { right:.75rem; bottom:.75rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; } }
