/* Shared storefront foundations. System fonts, no external requests. */
:root {
 --cream:#fffaf6; --rose:#eed5d3; --ink:#3f302b; --muted:#73635b;
 --line:#e9ded6; --accent:#844958; --accent-dark:#693543; --sage:#e5e8dc;
 --radius:18px; --space:clamp(1.125rem,4vw,3.5rem);
 --shadow:0 14px 40px rgb(80 49 36 / 7%);
}
* { box-sizing:border-box; }
html { scroll-padding-top:2rem; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; font-size:15px; line-height:1.7; }
a { color:inherit; text-underline-offset:.25em; }
img { max-width:100%; height:auto; vertical-align:middle; }
svg { vertical-align:middle; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:default; }
button,.button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button {
 display:inline-flex; justify-content:center; align-items:center; gap:.7rem; min-height:48px;
 padding:.8rem 1.35rem; border:1px solid transparent; border-radius:999px; background:var(--accent);
 color:#fff; font-weight:600; text-decoration:none; line-height:1.4;
}
button:not(:disabled):hover,.button:hover { background:var(--accent-dark); }
button:disabled { background:#e2d5ce; color:#6f5f57; }
input,select,textarea { max-width:100%; border:1px solid #ac9385; border-radius:10px; padding:.7rem; background:#fff; color:var(--ink); }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
[hidden] { display:none!important; }
.container { width:min(calc(100% - 2 * var(--space)),1280px); margin-inline:auto; }
.icon { flex-shrink:0; width:24px; height:24px; }
.announcement-bar { background:var(--rose); color:#56393d; font-size:.74rem; font-weight:500; letter-spacing:.07em; }
.announcement-bar .container { display:flex; align-items:center; justify-content:center; gap:1rem; min-height:36px; }
.announcement-bar p { margin:.4rem 0; text-align:center; }
.announcement-bar .icon { width:13px; height:13px; }
.site-header { background:#fffdfa; }
.header-row { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; padding-block:1.15rem; }
.brand { flex-shrink:0; font-family:Georgia,"Times New Roman",serif; }
.wordmark { display:flex; gap:.6rem; align-items:center; text-decoration:none; }
.brand-symbol { display:grid; place-items:center; width:30px; height:42px; border:1px solid #bb8b82; border-radius:20px 20px 8px 8px; color:var(--accent); }
.brand-symbol .icon { width:23px; height:23px; }
.brand-name { display:block; max-width:110px; font-size:1.12rem; line-height:1.12; letter-spacing:-.03em; overflow-wrap:anywhere; }
.brand-name small { display:block; font-family:system-ui,sans-serif; margin-top:.5rem; font-size:.55rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.custom-logo { max-width:145px; max-height:70px; width:auto; }
.search-form { display:flex; align-items:center; border:1px solid var(--line); background:#f8f4f0; border-radius:999px; width:100%; order:3; }
.search-form:focus-within { outline:2px solid var(--accent); outline-offset:2px; }
.search-form input[type=search] { min-width:0; width:0; flex:1; border:0; border-radius:999px; background:transparent; font-size:.82rem; padding:.8rem 1rem; min-height:46px; }
.search-form input:focus { outline:0; }
.search-form button { flex-shrink:0; background:transparent; color:var(--ink); padding:.65rem .9rem; min-height:46px; }
.search-form button:hover { background:var(--rose); }
.search-form button:focus-visible { outline-offset:-4px; }
.header-actions { display:flex; align-items:center; gap:.1rem; margin-left:auto; }
.header-action { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:.15rem; min-width:40px; min-height:44px; padding:.35rem; border:0; border-radius:8px; font-size:.59rem; line-height:1.3; text-decoration:none; color:var(--ink); background:transparent; font-weight:500; }
.header-action .icon { width:22px; height:22px; }
.header-action:hover,.header-action:not(:disabled):hover { background:#f3e8e2; }
.future-action { position:relative; }
.future-action button:disabled { background:transparent; color:var(--muted); }
.future-action small { display:block; text-align:center; font-size:.5rem; line-height:1; color:var(--muted); }
.primary-nav { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.primary-nav ul { list-style:none; margin:0; padding:0; }
.primary-nav .menu { display:flex; flex-direction:column; padding-block:.5rem; }
.primary-nav a { display:block; padding:.8rem .5rem; text-decoration:none; font-size:.8rem; font-weight:500; }
.primary-nav a:hover,.primary-nav a:focus-visible { color:var(--accent); text-decoration:underline; }
.primary-nav .sub-menu { margin-left:1rem; border-left:1px solid var(--line); padding-left:.8rem; }
.site-main { min-height:55vh; padding-block:var(--space); }
.front-main { padding-top:1.5rem; padding-bottom:0; }
h1,h2,h3 { font-family:Georgia,"Times New Roman",serif; font-weight:400; line-height:1.15; }
h1 { font-size:clamp(2.25rem,5vw,4.5rem); letter-spacing:-.035em; }
h2 { font-size:clamp(1.9rem,3.6vw,3rem); letter-spacing:-.035em; }
h3 { font-size:1.2rem; }
article { margin-bottom:2rem; }
.text-link { display:inline-flex; align-items:center; gap:.65rem; color:var(--accent); text-decoration:none; font-size:.85rem; font-weight:600; min-height:44px; }
.text-link:hover { text-decoration:underline; }
.text-link .icon { width:20px; height:20px; }
.site-footer { margin-top:2rem; background:#f2e8df; padding-top:3.5rem; border-top:1px solid var(--line); }
.footer-grid { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem 1.5rem; padding-bottom:3rem; }
.footer-intro,.footer-contact { grid-column:1 / -1; }
.footer-intro p { max-width:300px; }
.site-footer h2 { font-family:system-ui,sans-serif; font-size:.86rem; font-weight:600; letter-spacing:0; margin-top:0; line-height:1.5; }
.site-footer p,.site-footer li,.site-footer nav { color:var(--muted); font-size:.8rem; }
.site-footer ul { list-style:none; margin:0; padding:0; }
.site-footer li { margin-bottom:.55rem; }
.site-footer a { text-decoration:none; }
.site-footer a:hover { text-decoration:underline; }
.footer-signoff { display:flex; align-items:center; gap:.6rem; color:var(--accent); font-family:Georgia,serif; font-style:italic; }
.footer-signoff .icon { width:18px; }
.contact-link { overflow-wrap:anywhere; color:var(--accent); font-weight:600; font-size:.85rem; }
.footer-bottom { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; border-top:1px solid #dccbbd; padding-block:1.25rem; font-size:.7rem; color:var(--muted); }
.footer-bottom ul { display:flex; flex-wrap:wrap; gap:1rem; }
.footer-bottom li { margin:0; }
.footer-made { display:flex; align-items:center; gap:.5rem; }
.footer-made .icon { width:15px; height:15px; }
.fine-print { font-size:.73rem; line-height:1.65; color:var(--muted); }
.skip-link { position:absolute; top:0; left:1rem; transform:translateY(-150%); background:#fff; padding:1rem; z-index:100; }
.skip-link:focus { transform:translateY(0); }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Retain native WooCommerce flows; only presentation is styled here. */
.woocommerce ul.products li.product img { border-radius:var(--radius); }
.woocommerce ul.products li.product .price { color:var(--accent); }
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea { padding:.7rem; }
.woocommerce table.shop_table { background:#fff; border-radius:var(--radius); }
@media (max-width:359px) {
 .brand-name { max-width:120px; font-size:1.15rem; }
 .brand-symbol { display:none; }
 .custom-logo { max-width:125px; }
 .header-row { gap:.5rem; }
 .header-action { min-width:34px; }
 .header-action > span { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
}
@media (min-width:48rem) {
 .header-row { flex-wrap:nowrap; gap:1.5rem; padding-block:1.6rem; }
 .search-form { order:0; width:auto; flex:1; max-width:430px; margin-inline:auto; }
 .header-actions { margin-left:0; gap:.5rem; }
 .header-action { min-width:50px; font-size:.65rem; }
 .brand-name { max-width:210px; font-size:1.55rem; }
 .brand-symbol { width:42px; height:54px; }
 .custom-logo { max-width:200px; }
 .primary-nav .menu { flex-direction:row; flex-wrap:wrap; justify-content:center; gap:.1rem 1.3rem; padding-block:.25rem; }
 .primary-nav .menu > li { position:relative; }
 .primary-nav .sub-menu { display:none; position:absolute; top:100%; left:0; width:220px; margin:0; padding:.6rem; background:#fffdfa; box-shadow:var(--shadow); border:1px solid var(--line); border-radius:12px; z-index:20; }
 .primary-nav li:hover > .sub-menu,.primary-nav li:focus-within > .sub-menu { display:block; }
 .primary-nav .menu > li:last-child > .sub-menu { left:auto; right:0; }
 .footer-grid { grid-template-columns:1.3fr 1fr 1fr; gap:2.5rem; }
 .footer-intro { grid-column:auto; }
 .footer-contact { grid-column:1 / -1; max-width:500px; }
 .front-main { padding-top:2rem; }
}
@media (min-width:64rem) {
 .header-actions { gap:.9rem; }
 .brand-name { max-width:220px; }
 .footer-grid { grid-template-columns:1.4fr .8fr 1fr 1.1fr; gap:3rem; }
 .footer-contact { grid-column:auto; }
}
@media (prefers-reduced-motion:no-preference) {
 a,button { transition:background-color .18s ease,color .18s ease; }
}
