/* Purity of Nature - modern leaf theme (colors from the logo) */
:root{
  --ds-page:#f2f7ef;
  --ds-raised:#e7f1e1;
  --ds-ink:#22402a;
  --ds-ink-2:#4c6353;
  --ds-ink-3:#89a192;
  --ds-ink-4:#c0d1c4;
  --ds-hairline:#d7e6d2;
  --ds-teal:#4c9448;
  --ds-hover:color-mix(in srgb,#2f6b34 6%,transparent);
  --ds-hover-strong:color-mix(in srgb,#2f6b34 12%,transparent);
  --brand-deep:#2f6b34;
  --brand-leaf:#5da35c;
}
body::before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--brand-leaf),var(--brand-deep));}
a{color:var(--brand-deep);}
.file-nav a{transition:color .15s ease;}
.file-nav a:hover{color:var(--brand-deep);}
.file-nav a[aria-current=page]{color:var(--brand-deep);box-shadow:inset 0 -2px 0 var(--brand-leaf);}
.brand img{filter:drop-shadow(0 3px 12px rgb(47 107 52 / .16));}
.file-button{border-radius:999px;}
.file-button[data-variant="primary"]{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff;box-shadow:0 3px 10px rgb(47 107 52 / .28);}
.file-button[data-variant="primary"]:hover{background:#245428;}
.book-btn,.auth-submit{background:var(--brand-deep) !important;border-radius:999px;box-shadow:0 3px 10px rgb(47 107 52 / .28);}
.book-btn:hover,.auth-submit:hover{background:#245428 !important;}
input,textarea,select{border-radius:10px;}
input:focus,textarea:focus,select:focus{outline:2px solid var(--brand-leaf);outline-offset:1px;border-color:var(--brand-leaf);}
.hero-art img{border-radius:16px;box-shadow:0 10px 30px rgb(34 64 42 / .12);}
.machine img,.catalog-card img,.product-placeholder{border-radius:14px;}
.cart-count{background:var(--brand-leaf) !important;}
.file-closing{margin-top:48px;padding:26px 18px;background:var(--brand-deep);color:#d8e8dc;border-radius:14px;}
.file-closing a{color:#fff;}
/* Cart icon, top right - appears when the cart has items (theme-modern.js) */
#cartFab{position:fixed;top:14px;right:16px;z-index:9999;display:none;align-items:center;justify-content:center;width:46px;height:46px;background:#fff;border:1.5px solid var(--brand-leaf);border-radius:999px;box-shadow:0 4px 14px rgb(47 107 52 / .25);text-decoration:none;}
#cartFab:hover{background:#f2f8f0;}
#cartFab svg{width:22px;height:22px;stroke:var(--brand-deep);}
#cartFabN{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--brand-deep);color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;font-family:var(--ds-font-text);}
/* Section label at the left of the menu row (e.g. "Shop") - logo green, a bit bigger */
.nav-title{color:var(--brand-leaf);font-size:19px;}
@media (max-width:700px){ .nav-title{position:static;transform:none;width:100%;font-size:17px;padding:8px 0 2px;} }

/* Quantity stepper (+/-) */
.qty-stepper{display:inline-flex;align-items:center;border:1px solid var(--ds-hairline,#d7e3d4);border-radius:10px;overflow:hidden;background:#fff}
.qty-stepper button{width:38px;height:42px;border:0;background:#fff;font-size:18px;line-height:1;cursor:pointer;color:var(--brand-deep)}
.qty-stepper button:hover{background:#eef5ec}
.qty-stepper span{min-width:34px;text-align:center;font-size:15px}
/* Add-to-cart icon button on product cards */
.product-card{position:relative}
.card-add{position:absolute;right:10px;bottom:10px;width:38px;height:38px;border-radius:50%;border:1px solid var(--brand-deep);background:#fff;color:var(--brand-deep);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.card-add:hover{background:var(--brand-deep);color:#fff}
.card-add svg{width:19px;height:19px}
/* Site footer: contact, disclaimer, cards */
#siteFooter{max-width:720px;margin:28px auto 0;text-align:center;font-size:13px;color:#5d6f62;line-height:1.7}
#siteFooter .sf-disc{margin:0 0 10px}
#siteFooter .sf-contact{margin:0 0 10px}
#siteFooter .sf-contact a{color:#2f6b34;text-decoration:none;font-weight:600}
#siteFooter .sf-sep{color:#c3cfc0;padding:0 8px}
#siteFooter .sf-cards{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:6px}
#siteFooter .sf-note{font-size:12px}
#siteFooter .sf-card{border:1px solid #d7e3d4;border-radius:6px;padding:3px 10px;font-size:11px;font-weight:700;letter-spacing:.05em;background:#fff;color:#264d31}

#siteFooter .sf-card.sf-logo{padding:3px 8px;display:inline-flex;align-items:center;line-height:0}

.sf-contactus{margin:14px 0 6px;text-align:center}
.sf-ctitle{display:block;font-family:Georgia,'Times New Roman',serif;font-size:19px;color:#264d31;margin-bottom:6px}

/* Phone header: page title + cart on the logo row, Book appointment takes cart's place in the nav row */
@media (max-width:700px){
  .file-nav{display:flex;flex-wrap:wrap;align-items:center;column-gap:9px;row-gap:8px;justify-content:flex-start}
  .file-nav::before{content:'';order:2;flex-basis:100%;height:0}
  .file-nav .nav-title{order:0;position:static;width:auto;padding:0;font-size:17px;line-height:1.2}
  .file-nav a[href$="/cart/"]{order:1;margin-left:auto;font-size:13px}
  .file-nav a{order:3;font-size:12px}
  #navBook{order:4;margin-left:auto !important;background:none !important;color:var(--brand-deep) !important;border-radius:0 !important;padding:0 !important;font-size:12px !important;font-weight:600;min-height:30px !important}
  .file-nav{border-top:0 !important}
  .file-nav a[href$="/cart/"]{font-size:0 !important;position:relative;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0}
  .file-nav a[href$="/cart/"]::before{content:'';width:22px;height:22px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232f6b34' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.5'/%3E%3Ccircle cx='18' cy='20' r='1.5'/%3E%3Cpath d='M2 3h3l2.7 12.4a1 1 0 0 0 1 .8h8.9a1 1 0 0 0 1-.8L20 7H6'/%3E%3C/svg%3E")}
  .file-nav a[href$="/cart/"] .cart-count{position:absolute;top:-4px;right:-6px;margin:0;font-size:11px}
}

/* tighter logo area (user: too much space around the logo) */
.file-card > .brand{padding:12px 0;margin-bottom:-24px}
@media (max-width:700px){
  .file-card[data-width]{padding-top:8px}
  .file-card > .brand{padding:4px 0;margin-bottom:-32px}
}
@media (min-width:701px){ #cartFab{top:72px;right:28px} }
