/* Review v4: restrained surfaces, readable copy and human service details. */
:root { --forest:#174833; --content:1240px; --header-height:142px; }
body { font-size:16px; }
button, .button { border-radius:8px; }
.button { min-height:50px; font-size:14px; padding:14px 22px; }
.icon-button { width:42px; height:42px; border-radius:50%; }
.icon-button svg { width:23px; height:23px; stroke-width:1.6; }
.utilities { gap:12px; }
.bag-count { min-width:18px; height:18px; font-size:10px; top:0; right:0; }
.brand small { font-size:11px; }
.topline, .mast-left { font-size:12px; }
.main-nav a, .main-nav button { font-size:13px; }
.campaign-copy .kicker { font-size:12px; }
.campaign-copy p { font-size:17px; line-height:1.7; }
.campaign-copy .quiet-link { font-size:15px; }
.image-caption {
  left:auto; right:28px; bottom:30px; padding:0; max-width:calc(100% - 56px);
  border:0; background:transparent; box-shadow:none; color:#173d2c; text-align:right;
  text-shadow:0 1px 3px #fff9, 0 0 18px #fff9;
}
.image-caption>span:first-child { font-size:12px; letter-spacing:1.8px; }
.image-caption>span:last-child { font-size:20px; }
.hero-price-anchor { margin-bottom:14px; }
.hero-price-anchor small { font-size:13px; color:#526453; }
.benefits { padding-block:25px; }
.benefit { gap:15px; }
.benefit>svg { width:36px; height:36px; padding:5px; box-sizing:content-box; background:#f0f4ed; border-radius:50%; stroke-width:1.3; }
.benefit strong { font-size:16px; }
.benefit span { font-size:14px; }
.kicker { font-size:12px; }
h2 { font-weight:550; }
.category-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px 22px; }
.category-card { border-radius:10px; text-align:left; }
.category-image { height:195px; border-radius:10px; transition:background .2s ease; }
.category-image img { transition:transform .35s ease; }
.category-card:hover .category-image { background:#e9eee2; }
.category-card:hover img { transform:scale(1.035); }
.category-label { font-size:16px; padding-top:15px; align-items:flex-start; }
.category-label small { display:block; margin-top:5px; color:#66755e; font-size:13px; font-weight:400; }
.category-more { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-top:27px; }
.category-more p { font-size:14px; color:#67725f; }
.catalog-toolbar { gap:19px; }
.filter-tabs { gap:6px 22px; }
.filter-tabs button { font-size:14px; border-radius:0; }
.filter-selects { align-items:center; justify-content:flex-end; gap:14px; flex-wrap:wrap; }
.filter-selects select { min-height:43px; border-radius:7px; font-size:14px; max-width:295px; }
.budget-range {
  position:relative; display:block; padding:0; margin:0; width:290px; min-width:240px;
  background:none; border:0; color:var(--forest);
}
.budget-range>summary {
  display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer;
  min-height:43px; padding:10px 15px; border:1px solid #ccd7c3; border-radius:7px; background:#fff;
  list-style:none; font-size:14px;
}
.budget-range>summary::-webkit-details-marker { display:none; }
.budget-range>summary>strong { margin-left:auto; font-size:13px; font-weight:500; }
.budget-range[open]>summary { border-color:#8ca381; }
.budget-popover {
  position:absolute; top:calc(100% + 10px); right:0; z-index:21; width:350px; max-width:calc(100vw - 40px);
  padding:21px 22px 17px; border:1px solid #d7e0d0; border-radius:12px; background:#fff;
  box-shadow:0 12px 35px #1b3d2117;
}
.budget-popover>p { font-size:14px; margin-bottom:16px; color:#5c6c53; }
.budget-numbers { gap:18px; justify-content:space-between; }
.budget-numbers label { font-size:13px; gap:7px; }
.budget-numbers label>span { padding:5px 8px; border-radius:5px; border-color:#d4dfcb; }
.budget-numbers input { font-size:17px; width:66px; font-weight:500; }
.budget-numbers input::-webkit-inner-spin-button { opacity:0; }
.budget-sliders { height:32px; margin-top:15px; }
.budget-sliders:before { height:2px; top:15px; }
.budget-sliders input::-webkit-slider-thumb { width:15px; height:15px; border-width:2px; box-shadow:0 0 0 1px #375c3e; }
.budget-sliders input::-moz-range-thumb { width:12px; height:12px; border-width:2px; }
.budget-done { display:block; margin-top:13px; margin-left:auto; font-size:13px; font-weight:500; color:var(--forest); padding:4px 0; }
.catalog-meta, .pending-toggle { font-size:13px; }
.catalog-meta { margin-top:24px; }
.product-card { overflow:hidden; border-radius:12px; border:1px solid #dde3d7; transition:box-shadow .25s ease, transform .25s ease; }
.product-card:hover { box-shadow:0 10px 28px #1b3d2110; transform:translateY(-3px); }
.product-image img { transition:transform .35s ease; }
.product-card:hover .product-image img { transform:scale(1.025); }
.product-info h3 { font-size:22px; }
.product-info h3>span { font-size:16px; }
.product-type { font-size:12px; letter-spacing:.5px; }
.product-specs { font-size:14px; line-height:1.7; }
.product-badge { background:none; font-size:12px!important; padding:0; }
.offer-reference { font-size:13px; min-height:45px; }
.offer-reference strong { font-size:13px; }
.product-price-note { font-size:13px!important; }
.product-info .button { border-radius:7px; font-size:14px; }
.compare-control { font-size:14px; }
.trust-section { padding-top:64px; padding-bottom:56px; }
.trust-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:35px; }
.trust-grid article { border-top:1px solid #d8e1cf; padding-top:22px; }
.trust-grid svg { width:32px; height:32px; color:var(--forest); margin-bottom:16px; }
.trust-symbol { display:block; height:32px; margin-bottom:16px; font-family:Georgia,serif; font-size:29px; color:var(--forest); line-height:1.1; }
.trust-grid h3 { font-size:20px; margin-bottom:11px; }
.trust-grid p { font-size:15px; color:#617157; line-height:1.75; }
.trust-grid .text-link { margin-top:14px; font-size:14px; }
.online-promise { display:grid; grid-template-columns:6px auto 1fr; align-items:start; gap:15px; border-top:1px solid #d8e1cf; margin-top:35px; padding-top:23px; }
.online-promise>.location-dot { margin-top:10px; }
.online-promise strong { font-size:16px; }
.online-promise p { font-size:15px; color:#63755a; }
.personal-copy>p { font-size:17px; }
.personal-tool { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:0; margin-top:19px; color:#e6eddd; font-size:14px; text-align:left; line-height:1.7; }
.personal-tool:hover { color:white; text-decoration:underline; text-underline-offset:4px; }
.carlos-signature { margin-top:34px; }
.carlos-signature strong { font-size:17px; }
.carlos-signature small { font-size:14px; line-height:1.65; margin-top:4px; }
.carlos-avatar { width:46px; height:46px; font-size:15px; }
.personal-list { font-size:17px; line-height:1.7; gap:18px; }
.personal-location { font-size:13px; letter-spacing:1.15px; line-height:1.7; }
.steps article p { font-size:16px; }
.faq-list summary { font-size:18px; }
.faq-list p { font-size:16px; }
footer { padding-block:52px 24px; }
.footer-main { grid-template-columns:1.05fr 1.15fr 1.05fr 1.15fr; gap:36px; }
.footer-main>div { font-size:14px; line-height:1.7; }
.footer-main strong { font-size:16px; margin-bottom:10px; }
.footer-main a, .footer-main span, .footer-link { font-size:14px; line-height:1.75; }
.footer-main .footer-phone { font-size:21px; color:white; font-weight:550; margin-bottom:1px; letter-spacing:-.3px; }
.footer-brand { align-items:flex-start; }
.footer-brand-copy { margin-top:16px; font-size:14px; line-height:1.7; color:#bfcebf; max-width:240px; }
.footer-main>div>span { display:block; color:#c3d0c1; margin:3px 0 9px; }
.footer-link { display:block; padding:0; color:#d6dfd1; text-align:left; margin-bottom:6px; }
.footer-link:hover { text-decoration:underline; text-underline-offset:4px; }
.footer-bottom { margin-top:34px; padding-top:21px; color:#b0c1ac; font-size:13px; line-height:1.7; gap:26px; }
.footer-bottom span { font-size:13px; }
.selection-bar { min-height:80px; box-shadow:0 -4px 23px #183a1910; }
.selection-bar strong { font-size:16px; }
.selection-bar small { font-size:13px; }
.selection-bar .button { font-size:14px; border-radius:8px; }
.cart-drawer { width:min(1060px,calc(100vw - 40px)); max-width:none; border:1px solid #dae2d3; border-radius:18px; padding:30px 32px; box-shadow:0 24px 90px #0d281527; }
.dialog-heading h2 { font-size:29px; }
.dialog-heading .kicker { font-size:12px; }
.close-dialog { width:35px; height:35px; border-radius:50%; background:#eef2e8; color:#536b43; font-size:25px; }
.checkout-steps { border:0; margin:23px 0 30px; gap:12px; }
.checkout-step { display:flex; flex:1; align-items:center; justify-content:flex-start; gap:9px; padding:11px 15px; border:1px solid #e0e6d8; border-radius:8px; font-size:14px; }
.checkout-step.active { background:#eef3e8; border-color:#a2b695; }
.checkout-step>span { height:24px; width:24px; font-size:12px; }
.checkout-layout { grid-template-columns:minmax(0,1fr) 305px; gap:30px; align-items:start; }
.checkout-main>p { font-size:15px; line-height:1.7; color:#65735d; margin-top:9px; }
.checkout-item { margin-top:20px; padding:18px; display:grid; grid-template-columns:70px 1fr 28px; gap:18px; border:1px solid #dce4d2; background:#fff; border-radius:10px; }
.checkout-item img { width:70px; height:92px; object-fit:contain; }
.checkout-item strong { display:block; font-size:16px; line-height:1.45; margin-bottom:5px; }
.checkout-item small { font-size:13px; line-height:1.65; }
.remove-item { align-self:start; padding:0; color:#78916c; font-size:24px; border-radius:50%; line-height:1; width:28px; height:28px; }
.remove-item:hover { color:var(--forest); background:#eef2e7; }
.quantity { display:inline-flex; align-items:center; gap:15px; margin-top:13px; min-height:32px; border:1px solid #d9e2cf; border-radius:6px; }
.quantity button { width:30px; height:31px; font-size:18px; color:#3f6430; padding:0; }
.quantity span { font-size:14px; font-weight:600; min-width:12px; text-align:center; }
.cart-protection { border-top:1px solid #e1e7da; padding-top:13px; margin-top:13px; }
.cart-protection label { font-size:13px; color:#5b734c; display:block; margin-bottom:7px; }
.cart-protection select { max-width:100%; border:1px solid #d4dfcb; border-radius:6px; background:white; padding:8px; color:#4e6840; font-size:13px; }
.cart-protection small { display:block; font-size:12px; line-height:1.7; margin-top:7px; color:#6a7e5e; }
.order-summary { border-radius:12px; padding:22px; background:#f2f5eb; }
.order-summary h3 { font-size:19px; }
.summary-row { font-size:13px; line-height:1.65; }
.complete-price { border-radius:8px; padding:17px; border-color:#d7e1cc; }
.complete-price>strong { font-size:29px; }
.complete-price>small, .summary-invoices { font-size:12px; line-height:1.7; }
.summary-complete { margin-inline:0; background:white; }
.summary-full { font-size:13px; }
.summary-full strong { font-size:14px; }
.summary-protection { font-size:13px; color:#597447; background:#e9efe1; padding:12px; border-radius:7px; margin-top:14px; line-height:1.7; }
.checkout-bottom .button { border-radius:8px; font-size:14px; }
.field input, .field select, .field textarea { border-radius:7px; font-size:16px; }
.field label { font-size:14px; }
.review-message { border-radius:9px; font-size:13px; line-height:1.8; max-height:270px; overflow:auto; }
.review-caption { font-size:13px; }
.detail-copy h2>span { font-size:21px; }
.detail-panel, .detail-panel p { font-size:15px; }
.detail-actions .text-link { font-size:14px; }
.detail-guarantee { font-size:13px; line-height:1.65; }
.product-dialog, .advisor-dialog, .search-dialog, .compare-dialog, .info-dialog, .legal-dialog { border-radius:16px; }
.legal-dialog { width:min(780px,calc(100vw - 40px)); max-height:90dvh; padding:30px; }
#legalContent { font-size:15px; line-height:1.75; }
#legalContent h2 { font-size:22px; margin:28px 0 12px; }
#legalContent h3 { font-size:18px; margin:24px 0 10px; }
#legalContent p, #legalContent ul { margin:12px 0; }
#legalContent a { color:var(--forest); text-decoration:underline; text-underline-offset:3px; }
.document-page { width:min(780px,calc(100% - 44px)); margin:50px auto; font-size:16px; line-height:1.8; }
.document-page>h1 { font-size:34px; line-height:1.2; margin:30px 0; }
.document-page h2 { font-size:24px; margin:28px 0 12px; }
.document-page h3 { font-size:19px; margin:22px 0 8px; }
.document-page p, .document-page ul { margin:12px 0; }
.document-page>a:first-child { font-family:Georgia,serif; font-size:28px; color:var(--forest); }
.is-inview { animation:softReveal .7s ease both; }
@keyframes softReveal { from { opacity:.85; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1050px) {
  .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px; }
  .category-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .online-promise { grid-template-columns:6px 1fr; }
  .online-promise p { grid-column:2; }
  .checkout-layout { grid-template-columns:1fr 280px; gap:22px; }
}
@media(max-width:700px) {
  .trust-grid { grid-template-columns:1fr; gap:25px; }
  .cart-drawer { width:calc(100vw - 20px); padding:24px 20px; }
  .checkout-layout { grid-template-columns:1fr; }
  .order-summary { position:static; }
  .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
  :root { --header-height:87px; }
  .topline { font-size:10px; }
  .brand small { font-size:10px; }
  .main-nav a, .main-nav button { font-size:15px; }
  .campaign-copy p { font-size:16px; }
  .campaign-copy .kicker { font-size:11px; }
  .image-caption { right:18px; bottom:24px; max-width:calc(100% - 36px); }
  .image-caption>span:first-child { font-size:10px; }
  .image-caption>span:last-child { font-size:16px; }
  .category-grid { gap:24px 15px; }
  .category-image { height:157px; }
  .category-label { font-size:14px; }
  .category-label small { font-size:12px; }
  .category-more { align-items:flex-start; flex-direction:column; gap:12px; }
  .catalog-toolbar { gap:18px; }
  .filter-selects { gap:10px; justify-content:flex-start; }
  .filter-selects select { width:100%; max-width:none; font-size:14px; }
  .budget-range { width:100%; min-width:0; }
  .budget-range>summary { min-height:43px; }
  .budget-popover { width:100%; max-width:none; padding:19px; }
  .budget-numbers { gap:16px; }
  .product-info h3 { font-size:22px; }
  .product-info h3>span { font-size:16px; }
  .benefit>svg { width:29px; height:29px; padding:6px; }
  .benefit strong { font-size:15px; }
  .benefit span { font-size:13px; }
  .trust-section { padding-block:42px; }
  .trust-grid h3 { font-size:20px; }
  .trust-grid p { font-size:15px; }
  .personal-copy>p { font-size:17px; }
  .personal-list { font-size:16px; }
  .personal-location { font-size:12px; }
  .carlos-signature strong { font-size:16px; }
  .carlos-signature small { font-size:14px; }
  .personal-tool { font-size:14px; }
  .footer-main { grid-template-columns:1fr; gap:31px; }
  .footer-brand-copy { max-width:100%; }
  .footer-main>div, .footer-main a, .footer-main span, .footer-link { font-size:15px; }
  .footer-main strong { font-size:18px; }
  .footer-main .footer-phone { font-size:24px; }
  .footer-bottom, .footer-bottom span { font-size:13px; }
  .selection-bar { padding-inline:16px; gap:12px; }
  .selection-bar strong { font-size:13px; }
  .selection-bar small { font-size:11px; }
  .selection-bar .button { font-size:12px; padding:12px; }
  .checkout-step { font-size:12px; padding:9px; gap:6px; }
  .checkout-step>span { width:21px; height:21px; font-size:11px; }
  .checkout-item { grid-template-columns:56px 1fr 24px; padding:14px; gap:12px; }
  .checkout-item img { width:56px; height:85px; }
  .checkout-item strong { font-size:15px; }
  .checkout-item small { font-size:13px; }
  .cart-protection select { width:100%; font-size:13px; }
  .review-message { font-size:13px; }
  .review-actions .button { font-size:14px; }
  .legal-dialog { padding:24px 20px; width:calc(100vw - 20px); }
}
@media(prefers-reduced-motion:reduce) {
  .is-inview { animation:none; }
  .product-card:hover { transform:none; }
  .product-card:hover .product-image img, .category-card:hover img { transform:none; }
}

@media(max-width:600px){.selection-bar{min-height:76px;padding-block:12px}.selection-bar small{display:none}.selection-bar>div{min-width:0;max-width:135px}.selection-bar .button{flex-shrink:0}}
