/* Shared text and interaction defaults, loaded after each page's visual styles. */
:root{--muted:#43543f;--readable-secondary:#43543f}
a[href]{cursor:pointer;text-decoration:none;}

a.button,a.wordmark,a.footer-mark,a.opening-brand,a.follow-button,a.hero-spotlight,a.featured-card,a.article-card,a.care-guide-card,a.care-teaser-photo{text-decoration:none}
a.button.primary{color:#fff}
.hero-spotlight span,.featured-copy>span,.article-card span,.care-guide-copy>span{text-decoration:none;}
a[href]:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #38652d;outline-offset:3px;box-shadow:0 0 0 2px #fffefa}
.site-footer a:focus-visible,.admin-sidebar button:focus-visible{outline-color:#f7f5ee;box-shadow:0 0 0 2px #193d2d}
summary{cursor:pointer}
summary:hover{text-decoration:none;}
.link-button,.remove-button,.choose-button{cursor:pointer;text-decoration:none;font-weight:600}
.reading-aside a,.site-footer a:not(.footer-mark),.breadcrumb a,.planter-guide-links a{font-weight:500}
.rich-prose a,.admin-content a:not(.button),.care-basics-note a,.care-planter-feature aside a{font-weight:600}
input,select,textarea,.admin-controls select,#sale-form input[type=datetime-local],.admin-input{font-size:1rem}
#main input,#main select,#main textarea{font-size:1rem}
input::placeholder,textarea::placeholder{color:#586653;opacity:1}
small{font-size:.875rem;line-height:1.65}

/* Storefront navigation, cards, and supporting copy. */
.mode-banner,.hero-spotlight small,.featured-copy small,.featured-image>span,
.card-heading small,.card-image .tag,.breadcrumb,.footer-bottom,.footer-brand>span,
.draft-links span,.article-card span,.bag-button>span:last-child{font-size:.875rem;line-height:1.6}
.wordmark small{font-size:.75rem;letter-spacing:2.5px}
.quiet-note,.shop-toolbar>span,.card-details,.hero-caption,.hero-notes,
.featured-copy p,.reference-caption,.rich-prose figcaption,.size-price-grid span,.size-price-grid p,
.care-kicker,.care-search,.care-hub-hero figcaption,.care-botanical,.care-guide-mark span,
.care-guide-copy>p:not(.care-botanical),.care-guide-copy>span,.care-basics-note a,
.reading-aside,.catalog-reference{font-size:.9375rem;line-height:1.7}
.quiet-note,.card-details,.hero-spotlight small,.featured-copy p,.featured-copy small,
.reference-caption,.rich-prose figcaption,.size-price-grid span,.care-botanical,
.care-hub-hero figcaption{color:var(--readable-secondary)}
.choose-button,.carousel-controls #featured-pause,.menu-toggle{font-size:.875rem;line-height:1.5}
.featured-section .eyebrow{font-size:.875rem;line-height:1.65}
.catalog-intro>p,.catalog-intro>span,.care-guide-mark{color:var(--readable-secondary)}
.photo-pending small{font-size:.875rem!important;line-height:1.65}
.reference-design-grid p{font-size:1rem;line-height:1.75}
.reference-design-grid summary{font-size:.9375rem;min-height:44px;line-height:1.6}
.care-guide-copy>p:not(.care-botanical){min-height:0}
.care-guide-copy>span{font-weight:600}
.care-grid dd{font-size:1rem;line-height:1.75;color:#354b37}
.care-grid>p{grid-column:1/-1;margin:0;line-height:1.75}
.site-footer p,.site-footer a:not(.footer-mark){font-size:.9375rem;line-height:1.7}
.site-footer .footer-brand>span,.site-footer .footer-bottom{font-size:.875rem;line-height:1.65}
.site-footer .footer-bottom{color:#d0ddc5}
.site-footer .footer-brand>span,.site-footer p{color:#dbe6d2}

/* Bag, checkout, contact forms, and order dialogs. */
.field,.field-title,.checkbox-label,.delivery-option,.summary-item,.cart-line p,
.care-text,.notice,.error,.order-facts p,.connection-box p{font-size:.9375rem;line-height:1.7}
.field small,.delivery-option small,.summary-item small,.remove-button,.status-chip{font-size:.875rem;line-height:1.65}
.field small,.delivery-option small,.summary-item small,.cart-line p,.care-text{color:var(--readable-secondary)}
.notice.demo{color:#49345b}
.checkbox-label>span{min-width:0}
.summary-item>span{min-width:0;overflow-wrap:anywhere}
.cart-line p{overflow-wrap:anywhere}

/* Owner Studio: descriptions, helper labels, tables, and chart captions. */
.admin-top p,.admin-panel>p,.admin-save p,.metric>span,.metric small,
.checklist-progress>span,.launch-tasks small,.checklist-message,.pot-preview-note,
.technical-checklist p,.technical-checklist strong,.delivery-zone small,
.report-period,.report-stat>span,.report-stat>small,.report-mix>div,.report-average span,.report-average p,
.social-plan-list span,.social-plan-list small{font-size:.9375rem;line-height:1.7}
.panel-head a,.panel-head button,.picture-strip button,.variant-photo-button,
.media-choice span,.library-grid figcaption,.report-week>span,.traffic-column>span,
.chart-col span,.chart-col small,.checklist li,.admin-sidebar button,.launch-tasks button,
.report-details summary,.variant-table th,.variant-table td,th,td small{font-size:.875rem;line-height:1.65}
.admin-sidebar>p,.admin-sidebar .admin-bottom{font-size:.875rem;line-height:1.65;color:#d4dfcc}
.admin-panel>p,.admin-top p,.metric>span,.metric small,th,td small{color:var(--readable-secondary)}
th{font-weight:600}
.report-average p{opacity:1}
.report-week-chart{grid-template-columns:repeat(var(--weeks),minmax(40px,1fr))}
.admin-controls{flex-wrap:wrap;min-width:0}
.admin-panel,.admin-content,.panel-head>div,.admin-top>div{min-width:0}
.admin-split>*,.metric{min-width:0}
.sales-chart{overflow-x:auto;gap:10px;padding-bottom:32px}
.chart-col{min-width:44px}
.admin-save{flex-wrap:wrap}
.admin-save .button{font-size:.9375rem}
.admin-content :is(p,small,td,figcaption){overflow-wrap:anywhere}
.media-choice span,.library-grid figcaption{overflow-wrap:anywhere}
.technical-checklist summary,.report-details summary,.faq-answer summary{min-height:44px;padding-top:12px;padding-bottom:12px}

/* Public coming-soon screen and owner sign-in. */
.opening-card .opening-status,.opening-card .opening-location,.opening-card .opening-note,
.opening-card .owner-entry a{font-size:.9375rem;line-height:1.65;color:#3e503b}
.opening-card .opening-copy{font-size:1rem;line-height:1.75}
.opening-card .opening-brand small{font-size:.75rem}
.opening-card .owner-entry a{min-height:44px;align-items:center;font-weight:600}
body.owner-signin main>a{font-weight:600;line-height:1.7}
body.owner-signin small{font-size:.9375rem;color:#43543f}

@media(max-width:740px){
 .header nav,.header .bag-button,.header .menu-toggle{font-size:.9375rem}
 .header .menu-toggle,.header .bag-button,.carousel-controls #featured-pause{min-height:44px}
 .reading-aside a,.site-footer a:not(.footer-mark){display:inline-flex;align-items:center;min-height:44px}
 .site-footer a:not(.footer-mark){display:flex}
 .reading-aside{gap:8px 18px}
 .field input,.field select,.field textarea,.admin-controls select,.admin-input{font-size:1rem}
 .small-button,.remove-button,.link-button,.choose-button,.admin-sidebar button,
 .picture-strip button,.variant-photo-button,.launch-tasks button{min-height:44px;font-size:.875rem}
 .quantity-control button,.quantity-control input{min-width:44px;min-height:44px}
 .admin-sidebar{flex-shrink:0}
 .panel-head{flex-wrap:wrap;gap:12px}
 .card-bottom .choose-button{display:inline-flex;align-items:center}
 .preorder-strip span{font-size:.9375rem;line-height:1.7}
 .reference-design-grid details{min-width:0}
}
@media(max-width:380px){
 .care-guide-grid{grid-template-columns:1fr}
 .delivery-options{grid-template-columns:1fr}
 .card-heading h3{font-size:1.125rem}
 .admin-content{padding-left:16px;padding-right:16px}
}

/* Email recovery stays readable while owners review a delivery on a phone. */
.email-job{padding:20px;margin-top:16px;border:1px solid #d6ddcf;border-radius:16px;min-width:0}
.email-job-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-weight:600}
.email-job-header>span{color:#34502e}
.email-job details>summary{cursor:pointer;text-decoration:none;min-height:44px;padding:12px 0;font-weight:600}
.email-job form{display:grid;gap:16px;margin-top:16px;max-width:40rem}
.email-job .checkbox-label{align-items:flex-start;white-space:normal}
.email-job .checkbox-label input{flex:0 0 auto;margin-top:5px}
.email-job .button{justify-self:start;white-space:normal}
.email-job .field :is(input,select){width:100%;min-width:0}
