@font-face { font-family: Amoret; src: url("assets/amoret.woff2") format("woff2"); font-display: swap; }
@font-face { font-family:"DM Sans"; src:url("assets/dm-sans-variable.ttf") format("truetype"); font-style:normal; font-weight:100 1000; font-display:swap; }

:root { --ink:#263b24; --muted:#59705f; --paper:#f7f4ec; --blush:#f2ece7; --line:rgba(38,59,36,.35); }
* { box-sizing:border-box; } [hidden] { display:none !important; } html { scroll-behavior:smooth; } body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; font-size:16px; }
[data-reveal] { opacity:0; transform:translateY(28px); transition:opacity 800ms cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms), transform 800ms cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms); } [data-reveal].is-visible { opacity:1; transform:none; } .reveal-delay-70 { --reveal-delay:70ms; } .reveal-delay-80 { --reveal-delay:80ms; } .reveal-delay-120 { --reveal-delay:120ms; } .reveal-delay-140 { --reveal-delay:140ms; } .reveal-delay-180 { --reveal-delay:180ms; } .reveal-delay-280 { --reveal-delay:280ms; } @media (prefers-reduced-motion: reduce) { [data-reveal] { opacity:1; transform:none; filter:none; transition:none; } }
.site-header { position:sticky; z-index:10; top:0; height:89px; padding:18px 5.6vw; background:rgba(247,244,236,.88); backdrop-filter:blur(7px); display:flex; align-items:center; justify-content:space-between; }
.brand img { width:52px; height:52px; display:block; } nav { display:flex; gap:12px; } nav a,.button { border:1px solid var(--line); border-radius:8px; color:var(--ink); background:rgba(247,244,236,.25); text-decoration:none; padding:10px 20px; font-size:14px; letter-spacing:.04em; font-weight:500; transition:.2s; } nav a:hover,.button:hover { background:var(--ink); color:var(--paper); }
.hero { min-height:774px; position:relative; overflow:hidden; display:flex; align-items:flex-end; } .hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; opacity:.58; } .hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(247,244,236,.1) 0%,rgba(247,244,236,.08) 34%,rgba(247,244,236,.98) 78%,var(--paper) 100%); }
.hero-copy { z-index:1; width:min(1160px,84vw); margin:0 auto; padding-bottom:116px; } h1,h2,h3,.statement p { font-family:Amoret,"Times New Roman",serif; font-weight:400; } h1 { max-width:700px; font-size:clamp(46px,5.5vw,80px); line-height:.96; margin:0 0 22px; text-transform:uppercase; letter-spacing:.02em; } .hero-copy p { margin:0 0 34px; font-size:17px; } .hero .button { display:inline-block; background:var(--ink); color:var(--paper); border-color:var(--ink); }
.container,.contact-inner { max-width:1160px; margin:auto; } .philosophy { position:relative; overflow:hidden; min-height:730px; padding:120px 8vw; background:#f4efe8 url("assets/fern-bg.svg") center top / 100% auto no-repeat; } .eyebrow { color:var(--muted); font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; margin:0 0 12px; } h2 { margin:0 0 16px; font-size:clamp(34px,3vw,48px); line-height:1.05; } .philosophy h2 { font-size:clamp(46px,4.2vw,63px); line-height:.9; text-transform:uppercase; letter-spacing:.02em; margin-bottom:26px; } .intro { max-width:610px; margin:0 0 62px; font-size:17px; line-height:1.7; } .values { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; padding:0; } .values article { position:relative; min-height:218px; padding:32px 28px; border:1px solid rgba(38,59,36,.08); border-radius:14px; background:rgba(255,253,250,.96); box-shadow:0 1px 1px rgba(38,59,36,.04); } .leaf { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:#f3eee9; color:var(--ink); font-size:22px; margin-bottom:20px; } h3 { font-size:25px; margin:0 0 12px; } .values h3 { font-size:27px; text-transform:uppercase; letter-spacing:.02em; } .values p { font-size:15px; line-height:1.65; margin:0; }
.products { padding:120px 8vw; background:var(--paper); } .products-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:54px; } .products-heading h2 { max-width:570px; margin:0; } .products-heading > p { max-width:320px; margin:0; color:var(--muted); line-height:1.6; } .product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; } .catalog-message { grid-column:1 / -1; margin:0; color:var(--muted); font-size:16px; } .product-card { position:relative; display:flex; flex-direction:column; border-radius:14px; overflow:hidden; background:#fbfaf5; } .product-card .catalog-card-media { display:grid; place-items:center; height:350px; padding:24px; overflow:hidden; } .product-card .catalog-card-media img { height:285px; width:100%; object-fit:contain; mix-blend-mode:normal; } .product-card .catalog-card-content { padding:30px 28px 32px; } .product-card .catalog-card-title { font-size:31px; margin-bottom:6px; text-transform:uppercase; } .catalog-card-subtitle { color:var(--muted); font-size:13px; text-transform:uppercase; letter-spacing:.06em; margin:0 0 20px; } .catalog-card-description { line-height:1.6; font-size:15px; margin:0 0 20px; } .catalog-card-action { display:flex; align-items:center; justify-content:space-between; gap:18px; } .catalog-card-price { font-size:23px; } .catalog-card-overlay-link { position:absolute; z-index:1; inset:0; border-radius:inherit; } .catalog-card-overlay-link:focus-visible { outline:2px solid var(--ink); outline-offset:-3px; } .catalog-add-button { position:relative; z-index:2; } .product-note { color:var(--muted); font-size:12px; line-height:1.5; margin:28px 0 0; }
.statement { min-height:450px; padding:70px 8vw; display:flex; flex-direction:column; align-items:center; justify-content:center; position:relative; overflow:hidden; text-align:center; } .statement-logo { width:200px; height:200px; z-index:1; } .statement p { position:relative; z-index:1; font-size:25px; margin:24px 0 0; max-width:510px; }
.review-author-label { color:var(--ink); font-weight:600; }
.reviews-section { padding:112px 8vw; background:var(--blush); }
.reviews-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:42px; }
.reviews-heading h2 { margin:0; }
.reviews-heading > p { max-width:330px; margin:0; color:var(--muted); line-height:1.6; }
.reviews-component { min-height:90px; }
.reviews-list { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.review-card { padding:24px; border:1px solid rgba(38,59,36,.14); border-radius:12px; background:rgba(255,253,250,.78); }
.review-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.review-card time { color:var(--muted); font-size:12px; }
.review-stars { display:flex; gap:2px; color:#c7cdbd; letter-spacing:.04em; }
.review-star.is-filled { color:#8c9e73; }
.review-product-label { margin:16px 0 4px; color:var(--muted); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.review-product { display:block; color:var(--ink); font-size:15px; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.review-comment { margin:17px 0 18px; line-height:1.6; white-space:pre-line; }
.review-author { margin:0; color:var(--muted); font-size:13px; }
.reviews-message { margin:0; color:var(--muted); line-height:1.6; }
.reviews-load-more { display:block; margin:30px auto 0; cursor:pointer; }
.product-reviews { max-width:1160px; margin:0 auto; padding-inline:0; background:transparent; }
.product-reviews .reviews-heading { margin-top:82px; }
.review-write-page { min-height:calc(100vh - 165px); }
.review-write-hero { padding:84px 8vw 70px; background:#dce1d5; text-align:center; }
.review-write-hero h1 { max-width:none; margin:0 auto 20px; font-size:clamp(50px,6vw,78px); }
.review-write-hero > p:last-child { max-width:550px; margin:0 auto; font-size:18px; line-height:1.65; }
.review-write-content { max-width:700px; margin:0 auto; padding:62px 8vw 110px; }
.review-product-context { margin:0 0 10px; font-family:Amoret,"Times New Roman",serif; font-size:28px; }
.review-rating { margin:0; padding:0; border:0; }
.review-rating legend { margin-bottom:10px; font-size:13px; font-weight:500; letter-spacing:.03em; }
.star-picker { display:flex; gap:5px; margin-bottom:8px; }
.star-picker label { position:relative; display:block; width:auto; cursor:pointer; }
.star-picker input { position:absolute; opacity:0; width:1px; height:1px; }
.star-picker label > span:not(.sr-only) { display:block; color:#c7cdbd; font-size:40px; line-height:1; transition:color .15s ease, transform .15s ease; }
.star-picker label:hover > span:not(.sr-only),.star-picker label:focus-within > span:not(.sr-only),.star-picker label.is-selected > span:not(.sr-only) { color:#8c9e73; transform:scale(1.05); }
.review-write-content form { gap:24px; }
.review-write-content form .button { align-self:flex-start; background:var(--ink); color:var(--paper); cursor:pointer; }
.review-write-content form .button:disabled { cursor:not-allowed; opacity:.55; }
.review-terms { flex-direction:row; align-items:flex-start; gap:11px; font-size:13px; font-weight:400; line-height:1.55; letter-spacing:0; }
.review-terms input { width:18px; height:18px; flex:none; margin:2px 0 0; accent-color:var(--ink); }
.review-terms a { color:var(--ink); text-underline-offset:3px; }
.review-form-status { min-height:64px; margin:0; padding:17px 19px; border:1px solid rgba(38,59,36,.2); border-left:4px solid var(--muted); border-radius:8px; background:#eef0e8; color:var(--ink); font-size:15px; font-weight:500; line-height:1.55; }
.review-form-status:empty { display:none; }
.review-form-status[data-state="success"] { border-color:rgba(38,59,36,.38); border-left-color:var(--ink); background:#e2eadc; }
.review-form-status[data-state="error"] { border-color:rgba(130,54,45,.32); border-left-color:#82362d; background:#fae9e5; color:#662d27; }
.review-form-status[data-state="pending"] { border-left-color:#8c9e73; }
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.contact { padding:104px 8vw 80px; } .contact-inner { max-width:900px; } .contact-subtitle { margin:0 0 38px; color:var(--muted); font-size:18px; } form { display:flex; flex-direction:column; gap:24px; } label { display:flex; flex-direction:column; gap:8px; font-size:13px; font-weight:500; letter-spacing:.03em; } input,textarea { border:0; border-bottom:1px solid var(--line); border-radius:0; padding:10px 0; font:16px "DM Sans",sans-serif; color:var(--ink); background:transparent; outline:0; } textarea { resize:vertical; } input:focus,textarea:focus { border-color:var(--ink); } .contact-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; } form .button { align-self:flex-start; background:var(--ink); color:var(--paper); cursor:pointer; } .contact-status { min-height:24px; margin:-8px 0 0; color:var(--muted); font-size:14px; } .captcha { font-size:12px; color:var(--muted); line-height:1.5; margin:0; } .captcha a { color:inherit; }
footer { background:var(--ink); color:rgba(247,244,236,.7); min-height:76px; padding:28px 8vw; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:22px; font-size:13px; } footer p { margin:0; } footer a { color:var(--paper); text-decoration:none; } .cookie-settings { padding:0; border:0; background:transparent; color:var(--paper); font:inherit; cursor:pointer; }
.cookie-banner[hidden] { display:none; } .cookie-banner { position:fixed; z-index:45; left:0; right:0; bottom:0; padding:22px 24px; background:#fff; border-top:1px solid #ddd; box-shadow:0 -5px 22px rgba(0,0,0,.08); display:flex; align-items:center; justify-content:space-between; gap:24px; color:#1f2937; } .cookie-banner h2 { max-width:none; padding:0; font:400 22px Amoret,"Times New Roman",serif; line-height:1.2; margin:0 0 6px; text-transform:uppercase; } .cookie-banner p { max-width:720px; margin:0; font-size:13px; line-height:1.5; } .cookie-banner a { color:inherit; text-underline-offset:2px; } .cookie-actions { display:flex; gap:10px; flex-shrink:0; } .cookie-actions button { padding:12px 16px; border:1px solid var(--ink); border-radius:8px; background:var(--ink); color:var(--paper); font:600 14px "DM Sans",sans-serif; cursor:pointer; } .cookie-actions button:focus-visible,.cookie-settings:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.legal-page { padding:88px 8vw 112px; } .legal-page-heading,.legal-content { max-width:820px; margin:0 auto; } .legal-page-heading { padding-bottom:54px; border-bottom:1px solid rgba(38,59,36,.2); } .legal-page-heading h1 { margin:0 0 22px; font-size:clamp(52px,6vw,80px); } .legal-updated { margin:0; color:var(--muted); font-size:14px; } .legal-content { padding-top:48px; font-size:16px; line-height:1.75; } .legal-content > p { font-size:18px; } .legal-content section { margin-top:44px; } .legal-content h2 { font-family:"DM Sans",Arial,sans-serif; font-size:20px; font-weight:600; line-height:1.3; margin-bottom:14px; } .legal-content p { margin:0 0 16px; } .legal-content address { margin:20px 0; padding:22px 24px; border-left:3px solid var(--ink); background:var(--blush); font-style:normal; line-height:1.65; } .legal-content a { color:var(--ink); text-decoration-thickness:1px; text-underline-offset:3px; } .cancellation-form { padding:28px 30px 14px; border:1px solid rgba(38,59,36,.22); border-radius:12px; background:var(--blush); }
.legal-table-wrap { margin:24px 0; overflow-x:auto; } .storage-table { width:100%; min-width:760px; border-collapse:collapse; font-size:14px; line-height:1.5; } .storage-table caption { padding:0 0 10px; text-align:left; font-weight:600; } .storage-table th,.storage-table td { padding:13px 12px; border-bottom:1px solid rgba(38,59,36,.16); text-align:left; vertical-align:top; } .storage-table th { background:var(--blush); font-weight:600; } .storage-table code { white-space:nowrap; }
@media (max-width:700px) { .site-header { padding:18px 24px; } .hero { min-height:760px; } .hero-copy { width:84%; padding-bottom:75px; } .hero-image { height:440px; } h1 { font-size:43px; } h1,h2 { max-width:100%; padding-block:.06em; line-height:1.08; } .hero-copy h1,h2 { font-size:clamp(28px,9vw,34px); overflow-wrap:normal; word-break:normal; } .philosophy h2 { line-height:1.06; } .hero-copy p { font-size:16px; } .philosophy,.products,.contact,.legal-page { padding:72px 8.2vw; } .values,.product-grid { grid-template-columns:1fr; gap:42px; padding:0 5%; } .products-heading { display:block; margin-bottom:40px; } .products-heading > p { margin-top:18px; } .product-card .catalog-card-media { height:330px; } .statement { min-height:390px; } footer { flex-direction:column; } .cookie-banner { align-items:flex-end; } .cookie-banner p { font-size:12px; } .legal-page-heading { padding-bottom:38px; } .legal-content { padding-top:34px; } .cancellation-form { padding:24px 20px 8px; } }
@media (max-width:780px) { .reviews-section { padding:76px 8.2vw; } .reviews-heading { display:block; } .reviews-heading > p { margin-top:16px; } .reviews-list { grid-template-columns:1fr; } .product-reviews { margin:0 6vw; padding-inline:0; } .product-reviews .reviews-heading { margin-top:55px; } .review-write-content { padding-inline:8.2vw; } }
@media (max-width:700px) { .review-write-hero { padding:64px 8.2vw 54px; } .review-write-hero h1 { font-size:clamp(42px,12vw,62px); } .review-write-hero > p:last-child { font-size:16px; } .review-write-content { padding-top:46px; padding-bottom:78px; } .reviews-section { padding-block:76px; } }
.star-picker label.is-selected > span:not(.sr-only) { color:#8c9e73 !important; transform:scale(1.05); }
@media (max-width:480px) { .cookie-banner { flex-direction:column; align-items:stretch; } .cookie-actions { justify-content:flex-end; } .statement-logo { width:160px; height:160px; } }

.site-header nav { margin-left:auto; } .cart-toggle { position:relative; margin-left:12px; padding:10px 16px; border:1px solid var(--line); border-radius:8px; background:var(--ink); color:var(--paper); font:500 14px "DM Sans",sans-serif; cursor:pointer; } .cart-toggle span { position:absolute; top:-8px; right:-8px; min-width:20px; height:20px; padding:2px 5px; border-radius:999px; background:#fff; color:var(--ink); font-size:11px; line-height:16px; text-align:center; box-shadow:0 2px 8px rgba(38,59,36,.18); }
.cart-backdrop { position:fixed; z-index:39; inset:0; width:100%; height:100%; border:0; background:rgba(24,35,23,.38); cursor:pointer; } .cart-backdrop[hidden] { display:none; } .cart-drawer { position:fixed; z-index:40; top:0; right:0; width:min(440px,100vw); height:100dvh; display:grid; grid-template-rows:auto 1fr auto; background:var(--paper); box-shadow:-18px 0 48px rgba(38,59,36,.18); transform:translateX(102%); visibility:hidden; transition:transform .32s cubic-bezier(.22,1,.36,1),visibility .32s; } .cart-drawer[aria-hidden="false"] { transform:translateX(0); visibility:visible; } .cart-drawer > header { display:flex; align-items:flex-start; justify-content:space-between; padding:30px 28px 22px; border-bottom:1px solid rgba(38,59,36,.12); } .cart-drawer h2 { margin:0; font-size:38px; } .cart-close { border:0; background:transparent; color:var(--ink); font-size:32px; line-height:1; cursor:pointer; } .cart-items { overflow:auto; padding:12px 28px; } .cart-empty { color:var(--muted); } .cart-item { display:grid; grid-template-columns:92px 1fr; gap:18px; padding:18px 0; border-bottom:1px solid rgba(38,59,36,.12); } .cart-item > img,.cart-item-image { width:92px; height:110px; object-fit:contain; border-radius:8px; background:#e3e5dc; } .cart-item-copy h3 { margin:0 0 5px; font-family:"DM Sans",Arial,sans-serif; font-size:15px; font-weight:600; } .cart-item-copy p { margin:0 0 9px; color:var(--muted); font-size:12px; } .cart-item-copy strong { font-size:15px; } .cart-item-controls { display:flex; align-items:center; gap:9px; margin-top:12px; } .cart-item-controls button { min-width:28px; height:28px; border:1px solid var(--line); border-radius:6px; background:transparent; color:var(--ink); cursor:pointer; } .cart-item-controls .cart-remove { width:auto; margin-left:auto; border:0; text-decoration:underline; } .cart-summary { padding:22px 28px 28px; border-top:1px solid rgba(38,59,36,.12); background:#f2ece7; } .cart-summary > div { display:flex; justify-content:space-between; font-size:18px; } .cart-summary > p { margin:12px 0 18px; color:var(--muted); font-size:12px; line-height:1.5; } .cart-summary .button { width:100%; background:var(--ink); color:var(--paper); cursor:pointer; } .cart-summary .button:disabled { cursor:not-allowed; opacity:.5; } .cart-status { min-height:18px; } .cart-open { overflow:hidden; }
.catalog-card-buttons { display:flex; align-items:center; justify-content:flex-end; gap:12px; flex-wrap:wrap; } .catalog-add-button { padding:9px 14px; border:1px solid var(--ink); border-radius:8px; background:transparent; color:var(--ink); font:600 13px "DM Sans",sans-serif; cursor:pointer; } .catalog-add-button:hover { background:var(--ink); color:var(--paper); } .catalog-add-button:disabled { cursor:not-allowed; opacity:.55; } .checkout-notice { margin:24px 8vw 0; padding:16px 20px; border:1px solid rgba(38,59,36,.2); border-radius:10px; background:#eef0e8; color:var(--ink); }
@media (max-width:700px) { .site-header nav { gap:5px; } .site-header nav a { padding:9px 11px; } .cart-toggle { margin-left:5px; padding:9px 11px; } .catalog-card-action { align-items:flex-start; flex-direction:column; } .catalog-card-buttons { justify-content:flex-start; } }
.site-header nav a[aria-current="page"] { background:var(--ink); color:var(--paper); }
@media (max-width:480px) { .site-header { height:auto; min-height:76px; padding:14px 4vw; flex-wrap:wrap; row-gap:12px; } .site-header .brand img { width:42px; height:42px; } .site-header nav { gap:4px; } .site-header nav a { padding:9px 7px; font-size:12px; letter-spacing:0; } .site-header .cart-toggle { padding:9px 8px; font-size:12px; } }
@media (max-width:360px) { .site-header .brand img { width:36px; height:36px; } .site-header nav a { padding:9px 5px; font-size:11px; } .site-header .cart-toggle { padding:9px 6px; font-size:11px; } }

.product-card .catalog-card-media { background:#dce1d5; }

/* Keep purchase controls aligned across cards with different copy lengths. */
.product-card,.collection-card { display:flex; flex-direction:column; container-type:inline-size; }
.product-card .catalog-card-media,.collection-card .catalog-card-media { flex-shrink:0; }
.catalog-card-content { display:flex; flex-direction:column; flex:1; }
.catalog-card-action { margin-top:auto; flex-direction:row; align-items:center; }
.catalog-card-price { white-space:nowrap; }
.catalog-card-buttons { flex-wrap:nowrap; flex-shrink:0; }
.catalog-add-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; white-space:nowrap; }
.catalog-add-icon { display:none; width:22px; height:22px; }
@container (max-width:320px) {
  .catalog-add-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .catalog-add-icon { display:block; }
  .catalog-add-button { width:44px; padding:9px; }
}
.site-header { flex-wrap:nowrap; }
.header-actions { display:flex; align-items:center; gap:8px; margin-left:auto; }
.site-menu { position:relative; margin-left:0; }
.site-menu summary { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--line); border-radius:8px; cursor:pointer; list-style:none; }
.site-menu summary::-webkit-details-marker { display:none; }
.menu-icon { width:20px; height:14px; border-top:2px solid currentColor; border-bottom:2px solid currentColor; position:relative; }
.menu-icon::after { content:""; position:absolute; left:0; right:0; top:5px; border-top:2px solid currentColor; }
.site-header .site-menu nav { position:absolute; top:calc(100% + 12px); right:0; display:flex; flex-direction:column; gap:6px; width:210px; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--paper); box-shadow:0 8px 24px rgba(38,59,36,.12); }
.site-header .site-menu nav a { padding:12px 16px; font-size:14px; }
.site-menu summary:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.cart-toggle { display:grid; place-items:center; width:44px; height:44px; margin:0; padding:9px; }
.cart-toggle svg { width:22px; height:22px; }
