/* Readable type and immediate native actions across phone, tablet and desktop. */
html{scroll-behavior:auto;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:18px;line-height:1.7}
.ui-icon{display:inline-block;width:24px;height:24px;flex-shrink:0;vertical-align:middle}
.btn,.entry-action,.header-book{gap:10px}
.site-header{position:relative;z-index:11}
.site-header .header-book,.entry-page .site-header .header-book{font-size:17px;min-height:54px;padding:12px 20px;position:relative;z-index:1}
.site-header nav{font-size:16px;gap:24px}.site-header nav a{min-height:48px;display:flex;align-items:center}
.brand small,.entry-page .brand small{font-size:13px;line-height:1.5}
.contact-strip{font-size:15px;line-height:1.5}
.btn,.experience-page .btn,.entry-page .entry-action,.mobile-bar>.btn{font-size:17px!important;min-height:54px}
.text-link,.plain-link,.back-link,.questions-help,.hero-call,.booking-extras{font-size:17px}
.entry-page .entry-intro h1{font-size:clamp(34px,4.2vw,48px);line-height:1.15}
.entry-page .entry-intro>p:last-child{font-size:18px;line-height:1.6}
.entry-page .entry-card h2{font-size:30px;line-height:1.2}
.entry-page .entry-card h2 span{font-size:16px;line-height:1.5}
.entry-page .entry-copy>p{font-size:17px;line-height:1.65;margin-top:7px}
.entry-page .avatar-caption,.entry-page .calendar-art span{font-size:17px}
.entry-page .entry-help{font-size:17px;line-height:1.7}
.entry-footer{font-size:15px;line-height:1.7;padding-bottom:24px}
.entry-footer a{min-height:44px;display:inline-flex;align-items:center}
.calendar-art svg{width:64px;height:64px;stroke-width:1.4}
.entry-art.calendar-art{justify-content:center}
.experience-page p:not(.eyebrow):not(.sr-only):not(.image-label),.experience-page li{font-size:18px!important;line-height:1.75!important}
.experience-page .eyebrow,.hero-values,.image-label,.hero-photo-label span,.herb-visual>span{font-size:14px;line-height:1.6;letter-spacing:.05em}
.experience-page .service-name h3,.addon-card h3,.learning-card h3,.choice-option h3{font-size:28px;line-height:1.25}
.experience-page .service-duration,.addon-card>span,.service-special span,.collection-card .eyebrow{font-size:15px}
.experience-page .service-price{font-size:22px}
.experience-page .offer-actions,.choice-option-actions,.choice-option>div,.choice-footer,.concern-links,.addon-card>a,.learning-card span,.frequency-list a,.care-question>a,.community-detail>a,.source-links{font-size:16px;line-height:1.6}
.experience-page .service-action,.experience-page .service-direct{font-size:16px!important;min-height:48px;white-space:normal}
.service-card-actions{flex-wrap:wrap;gap:12px 18px}
.experience-page .filter-buttons button,.choice-buttons button,.section-rail a{font-size:16px!important;min-height:48px}
.experience-page .search-field input{font-size:18px;min-height:54px;width:260px}
.experience-page .faq-list summary,.frequency-list summary,.herb-safety summary,.education-sources summary{font-size:18px;min-height:56px;line-height:1.6}
.experience-page .price-table td,.experience-page .comparison-table td{font-size:17px;line-height:1.7}
.experience-page .price-table td:last-child{font-size:20px}
.comparison-table thead th{font-size:16px}.comparison-table tbody th{font-size:25px}
.community-detail{font-size:14px;line-height:1.6;letter-spacing:.03em}
.site-footer,.site-footer p,.site-footer>div>a,.site-footer .plain-link{font-size:16px;line-height:1.7}
.site-footer .footer-bottom{font-size:14px;line-height:1.7}
.site-footer a,.site-footer button{min-height:44px;display:inline-flex;align-items:center}
.quick-dock>button,.mobile-consult,.mobile-bar>a:first-child{font-size:16px;min-height:48px}
.chat-head h2{font-size:24px}.chat-head p,.chat-scope,.voice-note,.chat-foot{font-size:15px;line-height:1.6}
.person-copy strong{font-size:21px}.person-copy>p,.person-copy #voice-status{font-size:16px}
.message{font-size:17px;line-height:1.75}.message-links{font-size:16px;line-height:1.5}
.voice-controls button,.chat-prompts button,#chat-form .btn{font-size:16px;min-height:48px}
#chat-input{font-size:18px;height:54px}
.addon-icon{width:56px;height:56px;padding:12px;border-radius:18px;background:var(--look-card);color:var(--green);margin-bottom:20px}
.addon-icon .ui-icon{width:100%;height:100%}
.collection-mark{opacity:1;top:28px;width:52px;height:52px;padding:10px;border-radius:17px;background:var(--look-card);color:var(--green)!important}
.collection-mark .ui-icon,.community-symbol .ui-icon{width:100%;height:100%}
.community-symbol{width:70px;height:70px}
.collection-card .eyebrow{margin-bottom:55px;padding-right:58px}
.btn:hover,.entry-page .entry-card:hover,.experience-page .service-card:hover,.service-card:hover .service-image img{transform:none;filter:none}
.btn,.entry-page .entry-card,.experience-page .service-card,.service-image img{transition:none}
.entry-action::after{border-radius:24px}
.icon-btn{display:flex;align-items:center;justify-content:center}
.icon-btn .ui-icon{width:24px;height:24px}
a[data-booking],.demo-top-book,.demo-book{touch-action:manipulation;pointer-events:auto}
a[data-booking] .ui-icon,.demo-top-book .ui-icon,.demo-book .ui-icon{pointer-events:none}
/* A native anchor owns the complete booking card, with no pseudo-element hit area. */
a.entry-book{cursor:pointer;text-decoration:none;isolation:isolate}
a.entry-book:hover{text-decoration:none}
a.entry-book .entry-action::after{content:none;display:none}
a.entry-book .entry-action,a.entry-book .entry-art,a.entry-book .entry-copy{pointer-events:none}
a[data-booking]{-webkit-user-select:none;user-select:none}
/* Branded portrait and direct voice controls, including browsers without speech APIs. */
.portrait-wrap{width:180px;height:180px;padding:0;border-radius:50%;overflow:hidden}
.portrait-wrap img{border-radius:50%;object-position:center;object-fit:contain}
.entry-art .entry-avatar{border-radius:50%!important;object-fit:contain}
.quick-dock>button img,.mobile-consult img{border-radius:50%;object-fit:contain}
.care-question img{border-radius:50%;object-fit:contain}
.voice-controls{grid-template-columns:1fr;gap:10px}
.voice-controls button{touch-action:manipulation;border-radius:16px;font-size:16px;line-height:1.4;min-height:52px;padding:12px}
html[data-theme] #voice-replay{background:var(--green);color:var(--look-buttonInk);border-color:var(--green)}
.voice-help{margin-top:12px;grid-column:1/-1;min-width:0}
.voice-help summary{cursor:pointer;font-size:15px;line-height:1.5;min-height:44px;display:list-item;list-style:disclosure-closed inside;padding:10px 0}
.voice-help[open] summary{list-style-type:disclosure-open}
#voice-toggle{font-size:15px;min-height:48px;width:100%;border:1px solid var(--line);border-radius:14px;background:var(--look-card);color:var(--ink);padding:10px}
html[data-theme] #voice-toggle[aria-pressed=true]{background:var(--green);color:var(--look-buttonInk)}
.entry-page .voice-note,.experience-page .voice-note{font-size:15px!important;line-height:1.6!important;margin:12px 0}
.voice-full-page{display:inline-flex;align-items:center;min-height:48px;font-size:16px;color:var(--green);text-decoration:underline}
.message-play{display:block;min-height:44px;margin-top:12px;padding:8px 15px;font-size:16px;font-weight:600;border:1px solid var(--line);border-radius:14px;background:var(--look-card);color:var(--green);touch-action:manipulation;white-space:normal}
.experience-page .chat-head p,.experience-page .chat-scope,.experience-page .person-copy>p{font-size:15px!important;line-height:1.5!important}
.person-copy strong{font-size:23px}
#chat-dialog{border-radius:24px}
@media(min-width:700px) and (max-width:1000px){
  .entry-card{padding:18px 16px}.entry-page .entry-card h2{font-size:27px}
  .entry-page .entry-copy>p{font-size:17px;min-height:0}
  .entry-page .entry-action{padding:12px 15px}
}
@media(max-width:819px){
  .experience-page .section{padding:38px 22px}
  .experience-page h2,.experience-page .section-heading h2{font-size:34px}
  .experience-page .service-name h3,.addon-card h3,.learning-card h3{font-size:27px}
  .experience-page .filter-buttons button{padding:11px 14px}
  .addon-grid,.learning-grid{grid-template-columns:1fr}
  .addon-card{padding:25px;border-radius:24px}
  .learning-card{display:flex;gap:0}.learning-image{height:190px;margin-bottom:18px}
  .learning-card .eyebrow{font-size:14px}
  .experience-page .search-field input{width:100%;font-size:18px;min-height:54px}
  .experience-page .faq-list summary{font-size:18px;min-height:58px}
  .site-footer{padding-bottom:108px}
  .mobile-bar{gap:12px;padding-left:18px;padding-right:18px}
  .mobile-bar>.btn{min-width:112px;max-width:none;font-size:17px!important}
}
@media(max-width:699px){
  .entry-page .site-header{padding:16px 18px;gap:12px;align-items:center}
  .entry-page .brand img{width:38px;height:38px}.entry-page .brand>span{font-size:23px}
  .entry-page .brand small{display:none}
  .entry-page .site-header .header-book{font-size:17px;min-height:54px;padding:12px 16px;white-space:nowrap}
  .entry-shell{padding:0 18px}.entry-intro{padding:22px 0 24px}
  .entry-page .entry-intro h1{font-size:36px;margin-bottom:12px}
  .entry-page .entry-intro>p:last-child{font-size:17px}
  .entry-page .entry-card{grid-template-columns:52px minmax(0,1fr) 36px;gap:0 12px;min-height:112px;padding:18px 16px;border-radius:24px}
  .entry-art,.entry-art .entry-avatar{width:52px;height:52px}
  .calendar-art svg{width:42px;height:42px}
  .entry-page .entry-card h2{font-size:26px}
  .entry-page .entry-card h2 span{font-size:15px;margin-top:6px}
  .entry-page .entry-copy>p{font-size:16px;line-height:1.5;margin:6px 0 0}
  .entry-page .entry-consult .entry-copy>p{display:none}
  .entry-page .entry-action{width:36px;min-height:54px;padding:0}
  .entry-page .entry-action .ui-icon{width:24px;height:24px}
  html[data-theme] .entry-page .entry-book .entry-action{background:transparent;border-color:transparent;color:var(--look-accent)}
  .entry-help{margin:22px 0}.entry-contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
  .entry-page .entry-contact-actions a{flex:1 1 100%;font-size:17px;min-height:54px;padding:12px 18px;border-radius:22px}
  .entry-page .entry-footer{font-size:15px;gap:8px 20px;margin:0 18px;padding-bottom:28px}
  .entry-footer address{overflow-wrap:anywhere}
  .chat-head{padding:14px}.chat-head h2{font-size:22px}.chat-head p{font-size:14px}
  .consult-person{grid-template-columns:64px minmax(0,1fr);padding:14px;gap:0 14px}
  .portrait-wrap{width:64px;height:64px}
  .person-copy strong{font-size:20px}.person-copy>p{font-size:15px}.person-copy #voice-status{font-size:15px}
  .voice-controls{gap:8px}.voice-controls button{font-size:15px;min-height:48px}
  .voice-note{font-size:14px;line-height:1.5}.chat-scope{font-size:14px;line-height:1.6}
  .message{font-size:17px}.chat-prompts button{font-size:15px;min-height:46px}
  #chat-input{font-size:18px;height:52px}#chat-form .btn{font-size:16px;min-height:52px}
  .chat-foot{font-size:15px;flex-wrap:wrap;gap:10px 16px}.chat-foot a,.chat-foot button{min-height:44px}
  .consult-layout{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .consult-person{grid-template-columns:96px minmax(0,1fr);padding:12px 14px;gap:0 14px}
  .portrait-wrap{width:96px;height:96px;border-radius:50%}.portrait-wrap img{border-radius:50%}
  .voice-controls{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
  .voice-controls button{font-size:16px;min-height:52px;padding:10px 8px}
  .voice-help{margin-top:2px}.voice-help summary{font-size:15px;min-height:40px;padding:8px 0}
  .chat-conversation{flex:1 0 340px;overflow:visible}
  .chat-messages{min-height:130px}
  .chat-prompts{gap:6px}.chat-prompts button{font-size:14px;min-height:40px;padding:6px 9px}
  #chat-form{position:sticky;bottom:0;z-index:2;background:var(--look-card)}
  #chat-dialog.keyboard-open .chat-conversation{flex:1;min-height:0}
  #chat-dialog.keyboard-open .chat-messages{min-height:40px}
}
@media(max-width:360px){
  .entry-page .site-header{padding:14px;gap:8px}.entry-page .brand{gap:8px}
  .entry-page .brand img{width:32px;height:32px}.entry-page .brand>span{font-size:22px}
  .entry-page .site-header .header-book{padding:12px;font-size:16px}
  .entry-page .entry-card{grid-template-columns:40px minmax(0,1fr) 28px;gap:0 9px;padding:18px 14px}
  .entry-art,.entry-art .entry-avatar{width:40px;height:40px}.calendar-art svg{width:36px;height:36px}
  .entry-page .entry-card h2{font-size:25px}.entry-page .entry-action{width:28px}
  .mobile-consult{gap:5px;font-size:15px}.mobile-consult img{width:26px;height:26px}
}
/* Arrow-free floating cards. Homepage controls themselves own the whole surface. */
.entry-card{cursor:pointer;text-decoration:none!important}
button.entry-card{font:inherit;text-align:left;color:var(--ink);width:100%}
.entry-card .entry-art,.entry-card .entry-copy{pointer-events:none}
.entry-title{display:block;font:30px/1.2 Georgia,'Times New Roman',serif;letter-spacing:-.025em;margin:0 0 8px}
.entry-subtitle{display:block;font:16px/1.5 Arial,Helvetica,sans-serif;color:var(--muted);letter-spacing:0;margin-top:6px}
.entry-description{display:block;font-size:17px;line-height:1.65;margin-top:7px;color:var(--muted)}
html[data-theme] .entry-card,html[data-theme] .service-card,html[data-theme] .offer-card,html[data-theme] .addon-card,html[data-theme] .collection-card,html[data-theme] .learning-card,html[data-theme] .choice-option{box-shadow:0 10px 30px #41203a12,0 2px 6px #41203a08;border-radius:26px;cursor:pointer}
.site-header nav a,.section-rail a{border:1px solid var(--line);border-radius:18px;background:var(--look-card);padding:10px 16px;box-shadow:0 5px 16px #41203a0b;text-decoration:none}
.site-header nav{flex-wrap:wrap;gap:10px}
.back-link:before{content:none}
.addon-card,.collection-card{text-decoration:none!important}
.addon-cta{display:block;margin-top:16px;color:var(--green);font-size:16px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  html[data-theme] .entry-card:hover,html[data-theme] .service-card:hover,html[data-theme] .offer-card:hover,html[data-theme] .addon-card:hover,html[data-theme] .collection-card:hover,html[data-theme] .learning-card:hover,html[data-theme] .choice-option:hover{transform:translateY(-3px);box-shadow:0 15px 36px #41203a1b;transition:transform .16s,box-shadow .16s}
}
@media(max-width:699px){
  .entry-page .entry-card{grid-template-columns:52px minmax(0,1fr);min-height:112px;gap:0 16px}
  .entry-page .entry-title{font-size:26px;margin:0}
  .entry-page .entry-subtitle{font-size:15px;margin-top:6px}
  .entry-page .entry-description{display:none}
}
@media(max-width:360px){.entry-page .entry-card{grid-template-columns:40px minmax(0,1fr);gap:0 14px}.entry-page .entry-title{font-size:25px}}
/* Contact and privacy precede the final social-only row. */
.entry-footer address,.entry-footer .footer-contact,.entry-footer .footer-socials{width:100%}
.footer-contact{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}
.entry-footer .footer-socials,.site-footer .footer-socials{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 24px;border-top:1px solid var(--line);padding-top:12px}
.site-footer{grid-template-columns:1.5fr 1fr}
.site-footer .footer-socials{grid-column:1/-1}

.footer-socials .external-link-help{flex-basis:100%;font-size:16px}.external-link-help summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.external-link-help p{max-width:48em;line-height:1.6;margin:8px 0}.external-link-help summary:before,.external-link-help summary:after{content:none}.external-link-help summary::-webkit-details-marker{display:none}

/* Keep the composer and newest reply inside one bounded mobile conversation. */
@media(max-width:699px){
 #chat-dialog{width:calc(100vw - 16px);height:var(--consult-height,calc(100dvh - 24px));max-height:calc(100dvh - 16px)}
 .consult-layout{overflow:hidden;min-height:0}
 .consult-person{grid-template-columns:64px minmax(0,1fr);max-height:190px;overflow:auto;padding:10px 12px;flex-shrink:0}
 .portrait-wrap{width:64px;height:64px}
 .person-copy>p{margin:2px 0}.person-copy #voice-status{margin:2px 0;font-size:14px}
 .voice-controls{margin-top:6px}.voice-controls button{min-height:44px;padding:6px}
 .voice-help{grid-column:1/-1}
 .chat-conversation{flex:1 1 0;min-height:0;overflow:hidden}
 .chat-scope{font-size:14px;padding:6px 12px}
 .chat-messages{flex:1 1 0;min-height:0;height:auto;overflow:auto;-webkit-overflow-scrolling:touch;padding:10px 12px}
 .chat-prompts{flex-wrap:nowrap;overflow-x:auto;padding:6px 12px;gap:6px}.chat-prompts button{flex-shrink:0}
 #chat-form{position:relative;flex-shrink:0;padding:8px 12px;background:var(--look-card)}
 .chat-foot{flex-shrink:0;font-size:14px;padding:0 12px 4px;gap:8px}
 #chat-dialog.keyboard-open .consult-person,#chat-dialog.keyboard-open .chat-prompts,#chat-dialog.keyboard-open .chat-scope,#chat-dialog.keyboard-open .chat-foot{display:none}
 #chat-dialog.keyboard-open .chat-messages{min-height:0}
}

.footer-socials>a{width:48px;height:48px;display:inline-flex;justify-content:center;align-items:center;border-radius:14px;background:var(--look-card)}.social-icon{width:24px;height:24px}.redbook-icon{width:40px}.footer-socials>a[aria-label="Instagram"]{color:#b94372}.footer-socials>a[aria-label="Facebook"]{color:#1877f2}.footer-socials>a[aria-label="TikTok"]{color:var(--ink)}.footer-socials>a[aria-label="Redbook"]{color:#ec2841}
