/* Boutique direction: photographic opening, light surfaces and quiet product rows.
   Existing forms, inventory and bag behaviour retain their own styles. */
.hero.boutique-opening { display:grid; grid-template-columns:1.1fr 1fr; width:100%; max-width:none; margin:0; padding:0; gap:0; text-align:center; background:var(--surface); }
.boutique-photo { margin:0; position:relative; min-width:0; height:480px; overflow:hidden; }
.boutique-photo>img { width:100%; height:100%; display:block; object-fit:cover; object-position:center 43%; }
.boutique-photo figcaption { position:absolute; left:16px; bottom:12px; padding:3px 8px; background:rgba(255,255,255,.88); color:var(--text); font-size:10px; letter-spacing:.03em; }
.boutique-welcome { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:40px 38px; background:var(--surface); }
.boutique-opening .hero-tagline { max-width:480px; font-size:clamp(28px,3.2vw,44px); font-family:var(--serif); line-height:1.22; margin:0 0 28px; }
.boutique-opening .shop-first-actions { margin:0; gap:12px; max-width:440px; }
.boutique-opening .button { border:1px solid var(--text); border-radius:4px; min-height:46px; padding:12px 23px; font-size:13px; }
.boutique-opening .capsule-primary { flex-basis:100%; max-width:275px; }
.boutique-categories { display:grid; grid-template-columns:repeat(4,1fr); background:var(--lemon); padding:0 max(24px,calc((100% - 1180px)/2)); border-block:1px solid var(--border); }
.boutique-categories a { display:flex; align-items:center; justify-content:center; min-height:70px; padding:14px 12px; font-family:var(--serif); font-size:21px; text-align:center; }
.boutique-categories a+a { border-left:1px solid rgba(23,28,28,.13); }
.boutique-categories a:hover { background:var(--lemon-hover); }
#shop { padding-top:38px; }
.shop-heading { border:0; margin-bottom:22px; padding:0; }
.shop-intro h2 { font-size:clamp(30px,3.2vw,40px); }
.shop-intro>p:not(.eyebrow) { margin-top:10px; }
.shop-sample-note { border:0; border-radius:0; }
#shop .shop-toolbar { grid-template-columns:1fr 1fr; gap:16px 24px; align-items:end; }
#shop .shop-filter-heading { grid-column:1/-1; }
#shop .shop-select-filters { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
#shop .shop-search input,#shop .shop-select-filters select { border-radius:3px; }
.product-grid { gap:34px 24px; }
.product-card { border:0; border-radius:0; overflow:visible; }
.product-gallery { border:1px solid var(--border); }
.product-copy { padding:16px 0 0; }
.product-copy h3 { font-family:var(--sans); font-size:16px; line-height:1.45; letter-spacing:0; min-height:46px; }
.product-category { font-size:9px; letter-spacing:.08em; min-height:27px; margin-bottom:5px; }
.product-size { font-size:12px; margin-top:8px; }
.product-description { display:none; }
.product-price { font-size:17px; margin-top:10px; }
.product-action-row { margin-top:auto; padding-top:12px; gap:10px; }
.product-details-button { margin:0; border:0; padding:0; width:auto; font-size:11px; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
.product-bag-button { border-radius:3px; padding:9px 12px; font-size:11px; }
.product-condition-badge { border-radius:3px; }
.gallery-navigation { padding:0 4px; }
.cw-section { background:var(--surface); }
.cw-figure,.cw-rewear,.cw-season { border-radius:4px; }
.category-card { border-radius:4px; }
.brands-section { padding-block:44px; }
.brand-list { gap:14px 26px; }
.site-footer { background:var(--lemon-soft); }
@media(min-width:1500px) { .boutique-photo { height:550px; } }
@media(max-width:1000px) {
  #shop .shop-toolbar { grid-template-columns:1fr; }
  .boutique-photo { height:430px; }
  .boutique-welcome { padding:32px 26px; }
  .boutique-opening .hero-tagline { font-size:32px; }
  .boutique-opening .shop-first-actions { gap:10px; }
  .boutique-opening .button { padding-inline:18px; }
}
@media(max-width:720px) {
  .hero.boutique-opening { grid-template-columns:1fr; }
  .boutique-photo { height:330px; }
  .boutique-welcome { padding:26px 20px 30px; }
  .boutique-opening .hero-tagline { font-size:29px; max-width:390px; margin-bottom:20px; }
  .boutique-opening .shop-first-actions { max-width:400px; }
  .boutique-opening .capsule-primary { flex-basis:auto; max-width:none; }
  .boutique-opening .button { font-size:12px; padding:10px 16px; min-height:44px; }
  .boutique-categories { padding:0 12px; grid-template-columns:repeat(2,1fr); }
  .boutique-categories a { font-size:19px; min-height:52px; padding:10px; }
  .boutique-categories a:nth-child(3) { border-left:0; }
  .boutique-categories a:nth-child(n+3) { border-top:1px solid rgba(23,28,28,.13); }
  #shop { padding-top:28px; }
  #shop .shop-select-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-grid { gap:26px 14px; }
  .product-copy h3 { font-size:15px; min-height:44px; }
  .product-copy { padding-top:12px; }
  .product-category { font-size:8px; }
  .product-action-row { align-items:stretch; gap:3px; }
  .product-details-button { width:100%; justify-content:flex-start; min-height:36px; }
  .product-bag-button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Real lifestyle photography replaces the homepage character illustrations. */
.cw-season-photo { display:block; flex:0 0 125px; width:125px; height:125px; object-fit:cover; object-position:center; border-radius:4px; }
.cw-season-photo.winter-photo { object-position:center 38%; }
.category-card .category-art { padding:0; min-height:0; height:220px; overflow:hidden; }
.category-photo { display:block; width:100%; height:100%; object-fit:cover; }
.category-photo-clothing { object-position:center; }
.category-photo-shoes { object-position:center; }
.category-photo-outerwear { object-position:center 20%; }
.about-children-photo { display:block; order:3; margin-top:22px; width:min(100%,340px); height:auto; border-radius:4px; }
@media(max-width:720px) {
  .cw-season-photo { flex-basis:100px; width:100px; height:110px; }
  .category-card { display:flex; flex-direction:column; }
  .category-card .category-art { height:220px; }
  .about-children-photo { width:min(100%,340px); }
}
@media(max-width:360px) { .cw-season-photo { flex-basis:80px; width:80px; height:100px; } }

/* Compact search and filter area. */
#shop .shop-toolbar { gap:10px 18px; }
#shop .shop-search { gap:4px; }
#shop .shop-search label,#shop .shop-select-filters label { font-size:11px; gap:4px; }
#shop .shop-search input,#shop .shop-select-filters select { min-height:40px; padding-block:8px; font-size:14px; }
#shop .shop-category-filters { gap:7px; }
#shop .shop-category-filters button { min-height:38px; padding:7px 12px; font-size:11px; }
#shop .shop-clear-filters { min-height:38px; font-size:11px; padding:6px 2px; }
#shop .shop-results-bar { margin:14px 0 12px; }
#shop .shop-sample-note { margin-bottom:16px; padding-block:10px; }
@media(min-width:721px) {
  #shop .shop-toolbar { grid-template-columns:1.12fr 1fr; }
  #shop .shop-filter-heading { grid-column:auto; gap:8px; }
  #shop .shop-select-filters { grid-column:1/-1; }
}
@media(max-width:720px) {
  #shop .shop-search input,#shop .shop-select-filters select { font-size:16px; }
  #shop .shop-filter-heading { gap:0; }
  #shop .shop-category-filters { width:auto; flex:1 1 auto; }
  #shop .shop-clear-filters { margin-left:auto; }
}

/* Balanced story columns and a clean, aligned footer. */
.about-inner { grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:44px; align-items:center; padding-block:48px; }
.about-inner>.about-children-photo { order:0; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; object-position:center; margin:0; }
.about-text { min-width:0; }
.about-heading { display:block; }
.about-heading h2 { font-size:clamp(28px,3vw,38px); line-height:1.16; padding:0; }
.about-heading .eyebrow { margin-bottom:12px; }
.about-copy { padding:0; margin-top:22px; }
.about-section .about-lead { font-size:23px; line-height:1.35; margin-bottom:14px; }
.about-copy>p:not(.about-lead) { font-size:13px; line-height:1.85; }
.site-footer { padding-block:34px; }
.footer-inner { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:30px 56px; align-items:start; }
.footer-brand { width:auto; max-width:none; }
.footer-logo-link { display:block; width:100%; }
.footer-logo-tagline { text-align:left; margin-top:9px; line-height:1.6; }
.site-footer .footer-brand .footer-contact { margin:18px 0 0; line-height:1.8; }
.footer-links { display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; align-content:start; padding-top:5px; font-size:13px; }
.footer-links a { display:block; padding:3px 0; line-height:1.6; }
.footer-note { grid-column:1/-1; margin:0; }
@media(max-width:720px) {
 .about-inner { grid-template-columns:1fr; gap:24px; padding-block:34px; }
 .about-text { order:0; }
 .about-inner>.about-children-photo { order:1; max-width:none; }
 .about-heading h2 { font-size:32px; }
 .about-copy { margin-top:18px; }
 .about-section .about-lead { font-size:23px; }
 .footer-inner { grid-template-columns:1fr; gap:24px; }
 .footer-links { padding-top:0; gap:10px 20px; }
}

#shop .shop-results-actions { flex-direction:row; align-items:center; gap:16px; }
#shop .shop-results-actions .shop-clear-filters { margin:0; }
@media(max-width:600px) {
 #shop .shop-results-bar { align-items:center; }
 #shop .shop-results-actions { gap:12px; }
 #shop .shop-results-actions button { min-height:44px; }
}

/* One desktop row for search, the four filters and reset. */
#shop .shop-toolbar { grid-template-columns:minmax(160px,1.5fr) repeat(4,minmax(95px,1fr)) auto; gap:10px; align-items:end; }
#shop .shop-select-filters { display:contents; }
#shop .shop-toolbar>.shop-clear-filters { margin:0; min-height:40px; padding:8px 2px; white-space:nowrap; }
#shop .shop-search input { padding-inline:10px; }
#shop { padding-top:12px; }
#shop .shop-sample-note { margin-bottom:0; padding:6px 12px; }
#shop .shop-toolbar { margin-top:10px; }
.boutique-categories a[aria-current=true] { text-decoration:underline; text-underline-offset:5px; }
@media(min-width:721px) {
 #shop .shop-select-filters select { font-size:12px; padding-left:10px; padding-right:22px; }
}
@media(max-width:720px) {
 #shop .shop-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #shop .shop-search { grid-column:1/-1; }
 #shop .shop-toolbar>.shop-clear-filters { grid-column:1/-1; justify-self:end; }
}

/* A short homepage preview and larger, quieter product cards. */
.product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.product-cover { display:block; width:100%; aspect-ratio:4/5; padding:0; border:0; background:var(--page); cursor:pointer; overflow:hidden; }
.product-cover>.product-photo { display:block; width:100%; height:100%; object-fit:contain; }
.product-cover:focus-visible { outline:3px solid var(--text); outline-offset:-3px; }
.shop-view-all { display:flex; justify-content:center; padding-top:30px; }
.shop-view-all .button { border:1px solid var(--text); padding-inline:30px; border-radius:4px; }
.boutique-categories a { flex-direction:column; gap:2px; }
.boutique-categories small { font-family:var(--sans); font-size:10px; font-weight:400; line-height:1.4; }
.seller-teaser { display:flex; justify-content:space-between; align-items:center; gap:32px; background:var(--surface); padding:32px; margin-block:32px; border-radius:4px; }
.seller-teaser .eyebrow { margin-bottom:9px; }
.seller-teaser h2 { font-size:34px; }
.seller-teaser p:not(.eyebrow) { margin-top:12px; max-width:630px; font-size:14px; }
.seller-teaser>.button { flex:none; border:1px solid var(--text); border-radius:4px; }
.tag-us-section { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:40px 32px; margin-block:30px; border-block:1px solid var(--border); background:var(--lemon-soft); }
.tag-us-section h2 { font-size:34px; margin:8px 0 14px; }
.tag-us-section p:not(.eyebrow) { max-width:630px; font-size:14px; }
.tag-us-section p a { text-decoration:underline; text-underline-offset:3px; }
.instagram-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; flex:none; border:1px solid var(--text); border-radius:4px; }
.instagram-button svg { width:20px; height:20px; stroke:currentColor; stroke-width:1.7; fill:none; }
.selling-page .process-section { padding-top:36px; }
.selling-page #process-title { font-size:clamp(36px,4vw,48px); }
@media(min-width:1200px) { .product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:900px) { .tag-us-section { flex-direction:column; align-items:flex-start; gap:22px; } }
@media(max-width:720px) {
 .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .seller-teaser { flex-direction:column; align-items:flex-start; gap:22px; padding:25px 22px; }
 .tag-us-section { padding:28px 22px; }
 .tag-us-section h2 { font-size:29px; }
}

/* Keep the full Instagram invitation together inside one centred circle. */
.tag-us-section { flex-direction:column; align-items:center; text-align:center; background:var(--page); padding:36px 12px; }
.tag-us-section .tag-us-circle { width:min(560px,100%); aspect-ratio:1; border-radius:50%; background:var(--lemon); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px; padding:64px; box-sizing:border-box; }
.tag-us-circle #tag-us-title { margin:16px auto 20px; font-size:34px; line-height:1.2; }
.tag-us-circle p:not(.eyebrow) { margin:0 auto; max-width:390px; }
.tag-us-circle .instagram-button { align-self:center; flex-shrink:0; }
@media(max-width:600px) {
 .tag-us-section .tag-us-circle { padding:42px; gap:18px; }
 .tag-us-circle #tag-us-title { font-size:29px; margin:12px auto 16px; }
 .tag-us-circle .eyebrow { font-size:10px; }
}
@media(max-width:400px) {
 .tag-us-section .tag-us-circle { padding:30px; gap:14px; }
 .tag-us-circle #tag-us-title { font-size:25px; margin:10px auto 12px; }
 .tag-us-circle p:not(.eyebrow) { font-size:13px; line-height:1.4; }
 .tag-us-circle .instagram-button { padding:12px 16px; font-size:12px; }
}

.about-inner>.about-children-photo { object-position:center; }

/* Full-width yellow navigation with slightly larger, comfortable links. */
.site-header .header-inner { width:100%; }
.site-header .header-logo-link { width:min(1180px,calc(100% - 48px)); }
.site-header .header-navigation { padding:16px 20px; }
.site-header .site-nav { font-size:13px; gap:12px 18px; flex-wrap:wrap; justify-content:center; }
.site-header .site-nav>a:not(.nav-button) { padding:9px 3px; }
@media(max-width:720px) {
 .site-header .header-logo-link { width:calc(100% - 28px); }
 .site-header .header-navigation { padding:12px 18px; }
 .site-header .menu-toggle { font-size:13px; min-height:40px; padding:9px 15px; }
}

/* A restrained striped trim carries the Instagram badge motif onto the site. */
.site-header::after, .site-footer::before { content:''; display:block; height:16px; width:100%; background:repeating-linear-gradient(90deg,#b7e1df 0 20px,#ffffff 20px 40px); }
.site-footer { position:relative; }
.site-footer::before { position:absolute; top:0; left:0; }

/* Winter capsule uses the green of the SavvyStyle wordmark. */
.cw-season-winter { background:var(--accent); border-color:var(--control-border); color:var(--text); }
.cw-season-winter h3, .cw-season-winter .cw-eyebrow, .cw-season-winter .cw-price>span:first-child, .cw-season-winter .cw-examples li::marker { color:var(--text); }

/* A simple corner menu replaces the horizontal navigation bar. */
.site-header { padding:22px 0; }
.site-header .header-inner { position:relative; }
.site-header .header-logo-link { width:calc(100% - 140px); max-width:1100px; margin:0 auto; }
.site-header .brand-wordmark-header { font-size:clamp(32px,10.2vw,130px); }
.site-header .header-navigation { margin:0; padding:0; border:0; background:transparent; }
.site-header .menu-toggle { display:flex; position:absolute; left:18px; top:50%; transform:translateY(-50%); align-items:center; justify-content:center; width:46px; height:46px; padding:8px; border:0; border-radius:4px; background:transparent; color:var(--text); cursor:pointer; }
.site-header .menu-toggle span { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.site-header .menu-toggle svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; }
.has-js .site-header .site-nav { display:none; position:fixed; z-index:1001; inset:0 auto 0 0; width:min(340px,88vw); height:100dvh; overflow:auto; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:8px; padding:78px 28px 28px; background:var(--page); color:var(--text); border-right:1px solid var(--border); font-size:17px; box-sizing:border-box; }
.has-js .site-header .site-nav[data-open=true] { display:flex; }
.site-header .site-nav>a:not(.nav-button) { padding:13px 4px; }
.menu-close { position:absolute; right:20px; top:18px; width:44px; height:44px; border:0; background:transparent; font-size:30px; color:var(--text); cursor:pointer; }
.menu-backdrop { position:fixed; inset:0; z-index:1000; border:0; background:rgba(23,28,28,.35); cursor:pointer; }
.menu-backdrop[hidden] { display:none; }
body.menu-is-open { overflow:hidden; }
@media(max-width:720px) { .site-header { padding:20px 0; } .site-header .header-logo-link { width:calc(100% - 112px); } .site-header .brand-wordmark-header { font-size:clamp(24px,9.5vw,68px); } .site-header .menu-toggle { left:8px; } }
