/* StudioBook V3.31 — Larger, more comfortable reading sizes, desktop + mobile.
   This file is deliberately loaded after the existing stylesheets.
   Sora remains the customer/directory typeface; other pages retain their established fonts.
   iOS form controls stay >=16px without disabling the user's pinch-to-zoom. */
body{font-size:16px;line-height:1.6}
:where(button,input,select,textarea){line-height:1.45}

/* CUSTOMER AREA — readable forms, navigation, cards and account details */
.cu-header nav{font-size:14px}
.cu-heading p,.cu-auth-info p{font-size:16px;line-height:1.65}
.cu-eyebrow,.cu-note,.cu-auth-perks{font-size:13px}
.cu-auth-info h2{font-size:clamp(25px,3vw,32px)}
.cu-auth-form label,.cu-danger label,.cu-settings-card label{font-size:15px;line-height:1.5}
.cu-auth-tabs button{font-size:16px;line-height:1.4}
.cu-auth-form input,.cu-auth-form select,.cu-auth-form textarea,
.cu-settings-card input,.cu-settings-card select,.cu-settings-card textarea,
.cu-danger input{font-size:16px;line-height:1.45}
.cu-text-button,.cu-outline,.cu-danger-btn,.cu-side button{font-size:14px}
.cu-primary{font-size:16px;line-height:1.45}
.cu-welcome p,.cu-verify p,.cu-section-header p,.cu-entry p,.cu-placeholder,
.cu-danger p,.cu-account-details,.cu-pending-email,.cu-settings-title p{font-size:14px;line-height:1.6}
.cu-entry h4{font-size:17px}
.cu-tag{font-size:12px;padding:6px 12px}
.cu-section-header h3{font-size:clamp(20px,2.3vw,24px)}
.cu-settings-title h4{font-size:18px}
.cu-footer{font-size:13px}
.cu-status{font-size:15px}

/* DIRECTORY — wider text hierarchy and higher legibility without sacrificing layout */
body:has(.dir-header){font-size:15px;line-height:1.6}
.dir-header nav{font-size:14px}
.dir-client-link,.dir-pro-link{font-size:14px}
.dir-hero p{font-size:16px}
.dir-eyebrow{font-size:12px}
.dir-search-field>span,.dir-city-field label span{font-size:13px}
.dir-search input,.dir-search select{font-size:16px;min-height:29px}
.dir-search-submit{font-size:15px}
.dir-city-suggestions button,.dir-city-suggestions small,.dir-city-suggestions .dir-suggestion-caption{font-size:13px}
.dir-cities-row,.dir-cities-row button{font-size:13px}
.dir-categories button{font-size:14px}
.dir-content-head p,.dir-status{font-size:15px}
.dir-count,.dir-sort-label,.dir-sort-label select,.dir-search-chip,.dir-clear-search{font-size:14px}
.dir-filter-top strong{font-size:17px}
.dir-filter-top button,.dir-filter-group>strong,.dir-filter-group legend,
.dir-filter-group label,.dir-filter-city{font-size:14px}
.dir-filter-help,.dir-filter-help strong,.dir-filter-help p{font-size:13px;line-height:1.6}
.dir-card h3{font-size:19px;line-height:1.35;letter-spacing:-.02em}
.dir-card-title p,.dir-card .dir-meta,.dir-card .dir-description{font-size:14px;line-height:1.6}
.dir-rating small,.dir-no-reviews,.dir-rental-notice,
.dir-card-availability-title,.dir-availability-loading,.dir-slot-unavailable,
.dir-slot-context{font-size:13px;line-height:1.5}
.dir-slot-day,.dir-slot-day strong,.dir-slot-day small{font-size:12px}
.dir-demo,.dir-card .dir-demo{font-size:11px}
.dir-book,.dir-info{font-size:14px;line-height:1.4;min-height:44px}
.dir-pagination button,.dir-pagination span{font-size:14px}
.dir-map-head strong{font-size:16px}
.dir-map-head small,.dir-map-note,.dir-map-status,.dir-map-close{font-size:13px;line-height:1.5}
.dir-map-popup,.dir-map-popup strong,.dir-map-popup small,.dir-map-popup a{font-size:13px}
.dir-footer p,.dir-footer a{font-size:13px}
.dir-has-search .dir-card h3{font-size:17px}
.dir-has-search .dir-card .dir-meta,.dir-has-search .dir-card .dir-description,
.dir-has-search .dir-card-title p{font-size:13px;line-height:1.5}
.dir-has-search .dir-book,.dir-has-search .dir-info{font-size:13px;min-height:43px}
.dir-has-search .dir-slot-day strong,.dir-has-search .dir-slot-day small{font-size:12px}
.dir-has-search .dir-card .dir-demo{font-size:10px}

/* PUBLIC RENTAL & SERVICES: distinct template layouts, consistent comfortable body text */
body:has(.pub-header),body:has(.sb33-header){font-size:16px;line-height:1.6}
.pub-header-link,.sb33-header-link,.sb-public-toplinks a,
.sb-public-toplinks .pub-header-link,.sb-public-toplinks .sb33-header-link{font-size:14px}
.pub-brand small,.sb33-brand small{font-size:13px}
.pub-kicker,.sb33-eyebrow{font-size:13px}
.pub-hero-card ol,.sb33-hero-aside ol,.pub-hero-card small,.sb33-hero-aside p{font-size:15px;line-height:1.6}
.public-dress p,.request-head p,.request-note,.request-message,
.availability-caption,.pub-terms-copy,.sb33-message,.sb33-info,.sb33-modal-meta{font-size:14px;line-height:1.6}
.availability-form label,.request-grid label,.sb33-fields label{font-size:14px}
.public-status,.public-dress-category,.sb33-service-bottom small,.sb33-inline-demo-note{font-size:12px}
.sb33-count,.sb33-cat,.sb33-duration,.sb33-category-filter button{font-size:14px}
.sb33-inline-demo-aside,.sb33-demo-section-note{font-size:14px}
.pub-footer span,.pub-footer small,.sb33-footer span,.sb33-footer small{font-size:13px}
.public-request,.public-try,.picker-empty{font-size:14px}
.studio-directory-optin small{font-size:13px}
.sb-showcase{font-size:15px}
.sb-showcase-eyebrow,.sb-showcase-category,.sb-verified-label,.sb-admin-verified{font-size:12px}
.sb-showcase-sub,.sb-showcase-work p,.sb-showcase-review blockquote,
.sb-showcase-review footer,.sb-showcase-form label,.sb-showcase-status,.sb-showcase-empty,
.sb-verified-hint,.sb-verified-error{font-size:14px;line-height:1.6}
.sb-admin-form label,.sb-admin-work strong,.sb-admin-review blockquote,.sb-invite-info strong{font-size:14px}
.sb-admin-upload small,.sb-admin-review-head small,.sb-invite-info small{font-size:13px}
.sb-admin-actions button,.sb-admin-review-actions button,.sb-invite-copy input{font-size:14px}

/* PROFESSIONAL DASHBOARD — labels, navigation and action text */
body:has(#app){font-size:16px;line-height:1.55}
body:has(#app) label,body:has(#app) button,body:has(#app) input,
body:has(#app) select,body:has(#app) textarea{font-size:15px}
body:has(#app) input,body:has(#app) select,body:has(#app) textarea{line-height:1.45}
.side .nav button{font-size:14px}
.side>.muted,.side .superadmin-context{font-size:14px}
.side .superadmin-context small,.sb-app-top-business span{font-size:12px}
.sb-app-top-create,.sbp-new,.sbp-search input,.sbp-view-link{font-size:14px}
.sbp-heading p,.sbp-empty p,.sbp-chart-empty,.sbp-revenue-note,
.sbp-revenue-sub,.sbp-stat-copy>span,.sbp-event-meta,
.sbp-quick-grid button,.sbp-week-head strong{font-size:13px;line-height:1.5}
.sbp-stat-copy small,.sbp-day-caption small,.sbp-bar-col small,
.sbp-event-info small{font-size:12px}
.sbp-event-info strong,.sbp-day-caption span{font-size:14px}
.sbp-kicker,.eyebrow,.panel-kicker,.hero-label,.search-group-title{font-size:12px}
.badge,.status,.nav-badge,.requests-top .request-count{font-size:12px}
.stat-card small,.date-box small,.hero-facts small,
.client-summary-card span,.client-summary-card small,.dress-summary-card span,
.dress-summary-card small,.dress-spec-grid span,.dress-reservation-date small,
.client-last-activity,.review-note,.mini-main small{font-size:12px}
.client-contact-line,.dress-body p,.availability-note,.search-empty,.search-loading,
.client-notes p,.client-appointment-notes{font-size:15px;line-height:1.55}
.mobile-nav small,.mobile-nav button small,.mobile-nav .sb-mobile-quick-add small{font-size:11px}

/* TEAM PORTAL */
body:has(.team-layout){font-size:16px;line-height:1.6}
body:has(.team-layout) label,.filters button,.appointment-details span,.team-page-nav .outline,
.privacy-note,.message,.count{font-size:14px}
.team-footer,.appointment-clock small,.week-date,.week-appt time,
.week-appt small,.week-empty,.off-label{font-size:13px}
.week-appt strong,.week-day h2{font-size:15px}
.week-appt .status,.perm-badge{font-size:12px}

/* Give controls a readable focus size on mobile Safari, without preventing user zoom. */
@media(max-width:760px){
 body{font-size:16px}
 .cu-main{padding-left:16px;padding-right:16px}
 .cu-header nav{font-size:13px}
 .cu-heading p{font-size:15px}
 .cu-auth-info p,.cu-content p{line-height:1.65}
 .cu-auth-tabs button{font-size:15px}
 .cu-side{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
 .cu-side button{font-size:13px;line-height:1.35;padding:12px 5px;overflow-wrap:break-word}
 .cu-section-header h3{font-size:20px}
 .cu-entry p{font-size:14px}
 .dir-header nav{font-size:13px}
 .dir-client-link,.dir-pro-link{font-size:12px;padding:9px 10px}
 .dir-hero p{font-size:15px}
 .dir-search input,.dir-search select{font-size:16px}
 .dir-cities-row,.dir-cities-row button{font-size:12px}
 .dir-categories button{font-size:13px}
 .dir-content h2{font-size:clamp(24px,6vw,29px)}
 .dir-content-head p{font-size:14px}
 .dir-card h3,.dir-has-search .dir-card h3{font-size:17px;line-height:1.35}
 .dir-card-title p,.dir-card .dir-meta,.dir-card .dir-description,
 .dir-has-search .dir-card-title p,.dir-has-search .dir-card .dir-meta,
 .dir-has-search .dir-card .dir-description{font-size:13px;line-height:1.5}
 .dir-card .dir-description{-webkit-line-clamp:3}
 .dir-book,.dir-info,.dir-has-search .dir-book,.dir-has-search .dir-info{font-size:13px;min-height:42px;white-space:normal;overflow-wrap:anywhere;text-align:center}
 .dir-sort-label,.dir-sort-label select,.dir-count{font-size:13px}
 .dir-map-mobile-toggle{font-size:14px}
 .dir-favorite{font-size:20px}
 .dir-has-search .dir-result-layout{display:flex;flex-direction:column}
 .dir-has-search .dir-card-actions{flex-wrap:wrap}
 .dir-categories{scrollbar-width:thin}
 .sb-showcase,.sb33-hero-aside p,.pub-hero-card ol{font-size:15px}
 body:has(#app) input,body:has(#app) select,body:has(#app) textarea,
 body:has(.team-layout) input,body:has(.team-layout) select{font-size:16px}
 }
@media(min-width:761px) and (max-width:1120px){
 /* Preserve comfortable listing text on medium-width laptops: avoid two cramped columns. */
 .dir-has-search .dir-result-layout{display:grid;grid-template-columns:minmax(0,1fr)}
 .dir-has-search .dir-map-col{position:relative;top:auto}
 .dir-has-search .dir-card{grid-template-columns:170px minmax(0,1fr)}
 .dir-has-search .dir-cover-link{min-height:210px}
 .dir-has-search .dir-card-actions{grid-column:2}
 }
@media(max-width:420px){
 .cu-side button{font-size:13px;padding:11px 3px}
 .cu-header nav{font-size:12px}
 .dir-card,.dir-has-search .dir-card{grid-template-columns:34% minmax(0,1fr)}
 .dir-card-body,.dir-has-search .dir-card-body{padding:11px;gap:8px;min-width:0}
 .dir-card h3,.dir-has-search .dir-card h3{font-size:16px}
 .dir-card .dir-description,.dir-card .dir-meta,
 .dir-has-search .dir-card .dir-description,.dir-has-search .dir-card .dir-meta{font-size:14px}
 .dir-card-title p{font-size:12px}
 .dir-card-actions,.dir-has-search .dir-card-actions{grid-column:1/-1;flex-direction:row;gap:7px;padding:8px 11px 12px}
 .dir-book,.dir-info,.dir-has-search .dir-book,.dir-has-search .dir-info{font-size:14px;min-height:44px;flex:1 1 125px}
 .dir-demo{font-size:10px}
 .dir-pro-link{display:none}
 }

/* V3.35: keep the fourth account tab readable on phones. */
@media(max-width:790px){
 .cu-side{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .cu-side button{min-height:48px;padding:12px 8px;font-size:13px;line-height:1.4}
 .cu-side button[data-tab="notifications"]{justify-content:center}
}
