/* A quiet editorial rhythm, shared across the public site and private workspace. */
::selection{background:#d9e6d3;color:#244b38}
:focus-visible{outline:3px solid #b78157;outline-offset:4px}
[hidden]{display:none!important}
.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{position:relative;z-index:2}
.button,.nav-cta{border-radius:8px;transition:background .18s,box-shadow .18s}
.button:hover{box-shadow:0 5px 18px #284c3920}
.hero{background:radial-gradient(ellipse at 90% 30%,#e7ecdf75,transparent 62%)}
.hero-art{box-shadow:18px 20px 0 #edece480;border-radius:48% 48% 12px 12px}
.card,.form-panel{border-radius:12px}
.card{box-shadow:0 4px 20px #2c453005}
.section-heading .eyebrow,.page-hero .eyebrow{margin-bottom:18px}
.page-hero.compact+.section{padding-top:24px}
.portrait-placeholder{border-radius:130px 130px 10px 10px}
.closing{position:relative;background:radial-gradient(ellipse at top right,#426f59,transparent 65%),#30594c}
.booking-steps{list-style:none;padding:0;margin:34px 0 0;display:flex;flex-wrap:wrap;gap:24px;font-size:13px;color:#536b5c}
.booking-steps li{display:flex;align-items:center;gap:10px}
.booking-steps span{display:grid;place-items:center;width:27px;height:27px;border:1px solid #cadac8;border-radius:50%;font-size:12px;background:#eff3e9}
.booking-steps li:first-child span{color:#fff;background:#30594c;border-color:#30594c}
.booking-layout .form-panel{padding:36px 42px}
.calendar-intro{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:24px;flex-wrap:wrap}
.calendar-intro .field-label{margin:0}
.calendar-intro .text-link{font-size:12px}
.calendar-intro+.hint{margin:0 0 16px}
.availability-calendar{border-radius:12px;background:#fafbf7;padding:22px}
.calendar-day{border-radius:9px;min-height:38px}
.calendar-day.is-available{background:#e5efdf;border-color:#d2e1ca}
.calendar-day.is-selected{background:#30594c;border-color:#30594c}
.calendar-legend{flex-wrap:wrap}
.legend-selected{width:12px;height:12px;border-radius:3px;background:#30594c;margin-left:8px}
.calendar-days:empty{min-height:0}
.calendar-day.is-available:after{content:'';height:3px;width:3px;background:currentColor;border-radius:50%;position:absolute;bottom:7px}
.calendar-day{position:relative}
.booking-summary{padding:20px 24px;background:#eaf1e4;border:1px solid #c4d8bd;border-left:4px solid #608460;border-radius:8px;margin-top:22px;font-size:14px;color:#30543e}
.slot-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start}.slot-list:has(>.slot){min-height:0}.slot-list .slot{min-height:46px;padding:10px 6px;overflow-wrap:anywhere}.slot-list:not(:has(>.slot)){display:block}
@media(max-width:400px){.slot-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.aside-sticky{position:sticky;top:24px}
.therapist-avatar{display:grid;place-items:center;font:italic 34px Georgia,serif;background:#e5ebde;color:#496c50;width:76px;height:76px;border-radius:50%;margin-top:28px}
.booking-aside h2{font-size:32px;margin-top:20px}
.reassurance-list{padding:0;list-style:none;font-size:14px}
.reassurance-list li{margin:14px 0;padding-left:25px;position:relative}
.reassurance-list li:before{content:'✓';position:absolute;left:0;color:#6b8e69}
.mini-faq{border-top:1px solid #dce5d7;margin-top:24px;padding-top:20px;font-size:14px}
summary{cursor:pointer}
.faq-section{display:grid;grid-template-columns:1fr 1fr;gap:90px;border-top:1px solid #e3e7df}
.faq-section>div>p:not(.eyebrow){color:#66776d}
.faq-list details{border-bottom:1px solid #d9e2d5;padding:22px 0}
.faq-list summary{font-weight:600;font-size:16px;padding-right:20px}
.faq-list details p{font-size:15px;color:#617565;line-height:1.85}
.faq-list details[open] summary{color:#406746}
.appointment-ticket{border-top:4px solid #86a580}
.appointment-date{font-size:20px;color:#375b43!important}
.ticket-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:24px 0}
.prep-card{border-radius:10px;margin-bottom:24px}
.prep-card li{margin:9px 0;font-size:15px}
.manage-disclosure{margin-top:24px}
.manage-disclosure>summary{font-size:17px;font-weight:600;display:flex;justify-content:space-between;align-items:center}
.panel-nav{margin-top:32px;display:flex;gap:8px;flex-wrap:wrap;background:#eaf0e5;border-radius:10px;padding:8px;width:fit-content}
.panel-nav>a{padding:9px 16px;border-radius:6px;font-size:13px;text-decoration:none}
.panel-nav>a:hover{background:#fff;color:#30594c}
.panel-nav form{margin:0 8px}.panel-nav .text-link{font-size:13px}
.dashboard-section{padding:20px 0 100px}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:58px}
.metric{border:1px solid #dce5d7;background:white;border-radius:12px;padding:24px}
.metric span,.metric small{display:block;color:#687a68;font-size:12px}.metric span{text-transform:uppercase;letter-spacing:.09em;font-weight:700}
.metric strong{font:48px/1.5 Georgia,serif;color:#365b42}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:24px}
.section-title h2{font-size:38px}
.empty-state{padding:42px;background:#edf2e8;border:1px dashed #c8d8c1;border-radius:12px;grid-column:1/-1;text-align:center;color:#61725d}
.empty-state h3{font:28px Georgia,serif;color:#3f5b43;margin:10px 0}
.empty-state>span{display:inline-grid;place-items:center;background:#dce8d5;color:#60865a;width:42px;height:42px;border-radius:50%;margin-bottom:14px}
.agenda-list{display:grid;gap:14px}
.agenda-item{display:flex;gap:28px;padding:28px;background:white;border:1px solid #e1e7dc;border-radius:12px;align-items:flex-start}
.date-tile{min-width:65px;max-width:75px;text-align:center;background:#eaf0e3;border-radius:8px;padding:10px;color:#456443}
.date-tile strong{display:block;font:32px Georgia,serif}.date-tile span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.agenda-info{min-width:0;flex:1}.agenda-info h3{margin:8px 0}.agenda-info p{font-size:14px;color:#66776d;overflow-wrap:anywhere;margin:5px 0}
.agenda-tools{font-size:13px;border-top:1px solid #e5eadd;margin-top:14px;padding-top:14px}
.agenda-tools summary{color:#45664b}.agenda-tools label{display:block;margin:15px 0 8px}
.agenda-tools input{width:100%;padding:10px;border:1px solid #cbd7cc;border-radius:4px}
.search-form{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:30px}
.search-form input,.search-form select{padding:14px 18px;border:1px solid #d4dfcd;border-radius:8px;background:white;min-width:0}
.search-form input{flex:1;min-width:200px}.search-form select{max-width:100%}
.pagination{display:flex;justify-content:center;gap:24px;align-items:center;margin-top:40px;font-size:13px}
.row-actions{display:flex;align-items:center;gap:12px;font-size:13px}
.blog-section{padding-bottom:100px}.blog-search{max-width:720px;margin-bottom:44px}
.blog-card{padding:0;overflow:hidden;display:flex;flex-direction:column}.blog-card .post-cover{margin:0;height:220px}.blog-card-body{padding:28px;flex:1}
.blog-card-body h2{font-size:29px;margin:18px 0}.blog-card-body .card-number{font-size:10px}
.post-art{height:220px;background:radial-gradient(circle at 78% 33%,#faf8e9 0 19%,transparent 19.5%),linear-gradient(135deg,#dbe5d0,#b8cdb4);display:flex;align-items:flex-end;padding:28px}
.post-art span{font:30px/1.1 Georgia,serif;color:#3e5e45}.post-art em{color:#618264}
.blog-card:nth-child(even) .post-art{background:radial-gradient(circle at 78% 33%,#f9f3e5 0 19%,transparent 19.5%),linear-gradient(135deg,#e9dece,#d2bfa9)}
.article-heading{max-width:850px}.article-heading h1{font-size:clamp(42px,5.5vw,68px)}
.author-line{display:flex;align-items:center;gap:12px;font-size:13px;color:#61735f;margin-top:30px}
.author-monogram{width:35px;height:35px;display:grid;place-items:center;background:#e2ead9;border-radius:50%;font:italic 18px Georgia,serif}
.article-body{font-size:18px;line-height:1.9}.article-body blockquote{border-left:3px solid #8aaa7c;padding:5px 25px;background:#edf3e5;margin:30px 0;font-family:Georgia,serif;font-size:24px}
.article-body pre{overflow:auto;padding:20px;background:#eef1e8;font-size:14px}.article-cover{border-radius:12px}
.article-endnote{margin-top:50px;border-top:1px solid #dbe4d3;padding-top:24px}
.break-section,.editor-section{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding-bottom:100px}.break-intro{padding:20px 0}.break-intro p:not(.eyebrow){max-width:460px;color:#66776d}
.editor-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.editor-preview{padding:30px;border:1px solid #dce5d7;background:#fff;border-radius:12px}.editor-preview .article-body{padding-bottom:0;font-size:16px;overflow-wrap:anywhere}.editor-preview .article-body h2{font-size:30px}
@media(max-width:800px){.break-section,.editor-section{grid-template-columns:1fr;gap:25px}}
@media(max-width:800px){.metric-grid{grid-template-columns:repeat(2,1fr)}.faq-section{gap:35px}.booking-layout .form-panel{padding:24px}.section-title .hint{max-width:260px}}
@media(max-width:600px){.faq-section{grid-template-columns:1fr;gap:10px}.booking-steps{gap:10px;flex-direction:column}.metric{padding:16px}.metric strong{font-size:38px}.agenda-item{padding:18px;gap:14px}.date-tile{min-width:52px}.availability-calendar{padding:12px}.calendar-legend{font-size:10px}.panel-nav>a{padding:8px}.ticket-actions .button{width:100%}.section-title h2{font-size:32px}.hero-art{box-shadow:none}.row-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
.texts-section{padding-bottom:110px;max-width:860px}
.texts-section h2{font-size:38px;margin-top:60px}
.texts-form .text-field+.text-field{margin-top:6px}
.texts-form textarea{resize:vertical;line-height:1.6}
.badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:20px;background:#e3ede1;color:#3f6a52;font-size:11px;font-weight:700;letter-spacing:.06em;vertical-align:middle}
.photo-preview{display:block;max-width:240px;border-radius:120px 120px 8px 8px;margin-bottom:10px}
.portrait-photo{width:100%;height:490px;object-fit:cover;border-radius:130px 130px 10px 10px;display:block}
.portrait-photo.small{height:430px}
@media(max-width:700px){.portrait-photo,.portrait-photo.small{height:380px}}
