:root {
  --paper:#f4f1eb;
  --white:#fbfaf7;
  --ink:#252a25;
  --muted:#676a62;
  --line:#d7d7cc;
  --accent:#944c32;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,Helvetica,sans-serif;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:14px/1.55 var(--sans);
}

body:has(dialog[open]) {
  overflow:hidden;
}

button,input,select {
  font:inherit;
}

button,a,input,select {
  -webkit-tap-highlight-color:transparent;
}

button {
  color:inherit;
  cursor:pointer;
}

a {
  color:inherit;
  text-decoration:none;
}

button:disabled {
  cursor:not-allowed;
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px;
}

button {
  border:0;
}

svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.4;
}

img {
  display:block;
  max-width:100%;
}

h1,h2,h3,p {
  margin:0;
}

h1,h2 {
  font-family:var(--serif);
  font-weight:400;
}

h2 {
  font-size:46px;
  line-height:1.16;
  letter-spacing:-1.6px;
}

em {
  font-weight:400;
}

h3 {
  font-size:17px;
  line-height:1.4;
  font-weight:500;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

[hidden] {
  display:none!important;
}

.skip-link {
  position:fixed;
  top:8px;
  left:8px;
  z-index:99;
  background:var(--ink);
  color:white;
  padding:12px;
  transform:translateY(-150%);
}

.skip-link:focus {
  transform:none;
}

.announcement {
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:42px;
  background:var(--ink);
  color:#e4e6dd;
  font-size:10px;
  letter-spacing:1.2px;
}

.announcement span {
  font-size:9px;
  color:#bfc4b7;
}

.header {
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  height:91px;
  padding:0 4.5%;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
  font-size:18px;
  letter-spacing:2px;
  font-weight:700;
}

.brand i {
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:1.3px;
}

.brand svg {
  width:45px;
  height:28px;
  stroke-width:1.5;
}

.header nav {
  display:flex;
  align-items:center;
  gap:27px;
  font-size:11px;
  letter-spacing:1px;
  text-transform:uppercase;
}

.header nav a {
  padding:8px 0;
  border-bottom:1px solid transparent;
}

.header nav a:hover {
  border-color:var(--ink);
}

.header-actions {
  display:flex;
  align-items:center;
  gap:15px;
}

.icon-button,.bag-button {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px;
  background:none;
}

.bag-button {
  gap:8px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:1px;
}

.bag-button b {
  font-size:10px;
  font-weight:400;
  background:var(--ink);
  color:white;
  width:19px;
  height:19px;
  border-radius:50%;
  display:grid;
  place-items:center;
}

.hero {
  position:relative;
  isolation:isolate;
  min-height:590px;
  height:min(690px,69vw);
  color:white;
  overflow:hidden;
  background:#292a25;
}

.hero-image,.hero-image img,.hero-shade {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.hero-image img {
  object-fit:cover;
  object-position:64% center;
}

.hero-shade {
  background:linear-gradient(90deg,rgba(10,16,14,.72),rgba(10,16,14,.2) 58%,rgba(10,16,14,.02)),linear-gradient(0deg,rgba(10,16,14,.42),transparent 35%);
}

.hero-content {
  position:relative;
  max-width:670px;
  padding:101px 0 100px 7.1%;
}

.eyebrow {
  font-size:9px;
  line-height:1.5;
  font-weight:600;
  letter-spacing:2.5px;
  color:var(--muted);
  text-transform:uppercase;
}

.eyebrow.light {
  color:#d5d8cb;
}

.hero h1 {
  font-size:clamp(60px,6.8vw,100px);
  line-height:1.04;
  letter-spacing:-3px;
  margin:23px 0;
}

.hero-content>p:not(.eyebrow) {
  color:#ebece3;
  font-size:15px;
  line-height:1.8;
  margin-bottom:32px;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:17px 23px;
  font-size:10px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  border:1px solid transparent;
  min-height:49px;
  transition:background .15s,color .15s;
}

.button span {
  font-size:20px;
  line-height:1;
}

.button-light {
  background:var(--paper);
  color:var(--ink);
}

.button-light:hover {
  background:white;
}

.button-dark {
  background:var(--ink);
  color:var(--paper);
}

.button-dark:hover {
  background:#444b40;
}

.button-dark:disabled {
  background:#7c8076;
}

.button-outline {
  border-color:var(--ink);
  background:transparent;
}

.hero-footer {
  position:absolute;
  bottom:29px;
  left:7.1%;
  right:5%;
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:9px;
  letter-spacing:2px;
  color:#dddcd1;
}

.section-wrap {
  padding:67px 5.5% 62px;
}

.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:30px;
  margin-bottom:34px;
}

.section-heading .eyebrow {
  margin-bottom:11px;
}

.section-heading>p {
  max-width:340px;
  font-size:12px;
  color:var(--muted);
  line-height:1.8;
}

.section-heading strong {
  font-weight:500;
  color:var(--ink);
}

.featured {
  border-bottom:1px solid var(--line);
}

.featured-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

.featured-card {
  position:relative;
  display:grid;
  grid-template-columns:55% 45%;
  align-items:center;
  background:#e7e6dd;
  min-height:370px;
  text-align:left;
  width:100%;
  padding:0;
  overflow:hidden;
}

.featured-card:hover .featured-image {
  transform:scale(1.035);
}

.featured-image {
  height:370px;
  object-fit:contain;
  width:100%;
  mix-blend-mode:multiply;
  transition:transform .3s;
}

.featured-copy {
  padding:28px 25px 28px 8px;
}

.featured-copy .eyebrow {
  font-size:8px;
  letter-spacing:1.6px;
  color:var(--accent);
}

.featured-copy h3 {
  text-wrap:balance;
  font-family:var(--serif);
  font-size:29px;
  line-height:1.17;
  margin:14px 0 15px;
}

.featured-copy p {
  font-size:11px;
  line-height:1.8;
  color:var(--muted);
}

.featured-price {
  display:block;
  font-size:23px;
  letter-spacing:-.5px;
  margin:18px 0;
}

.featured-link {
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  display:inline-flex;
  gap:30px;
  border-bottom:1px solid var(--ink);
  padding:8px 0;
}

.featured-index {
  position:absolute;
  top:20px;
  left:22px;
  font-size:9px;
  letter-spacing:1px;
  color:var(--muted);
}

.collection {
  padding-top:74px;
  scroll-margin-top:40px;
}

.collection-count {
  font-size:10px;
  letter-spacing:1px;
  color:var(--muted);
  padding-bottom:4px;
}

.collection-tools {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:20px 0;
  margin-bottom:30px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.filters {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.filters button {
  background:none;
  padding:8px 13px;
  font-size:11px;
  white-space:nowrap;
}

.filters button.active {
  background:var(--ink);
  color:var(--paper);
}

.filters button:hover:not(.active) {
  background:#e3e3d9;
}

.search-sort {
  display:flex;
  align-items:center;
  gap:18px;
}

.search-field {
  display:flex;
  align-items:center;
  gap:8px;
}

.search-field svg {
  width:16px;
  height:16px;
}

.search-field input {
  border:0;
  border-bottom:1px solid transparent;
  background:none;
  padding:7px 0;
  width:145px;
  font-size:11px;
  border-radius:0;
  color:var(--ink);
}

.sort-field select {
  border:0;
  background:none;
  padding:7px 18px 7px 0;
  font-size:10px;
  color:var(--ink);
  max-width:150px;
}

.product-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:38px 23px;
}

.product-card {
  position:relative;
  min-width:0;
}

.product-image-button {
  position:relative;
  width:100%;
  padding:0;
  background:#eaeae3;
  aspect-ratio:4/5;
  overflow:hidden;
  display:block;
}

.product-image-button img {
  width:100%;
  height:100%;
  object-fit:contain;
  mix-blend-mode:multiply;
  transition:transform .3s;
}

.product-image-button:hover img {
  transform:scale(1.04);
}

.product-tag {
  position:absolute;
  top:14px;
  left:14px;
  background:var(--paper);
  padding:5px 8px;
  font-size:8px;
  letter-spacing:1px;
  color:var(--accent);
  text-transform:uppercase;
}

.card-view {
  position:absolute;
  bottom:13px;
  right:14px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  font-size:20px;
  border:1px solid #bbbdb2;
  border-radius:50%;
  background:var(--paper);
  transition:background .15s;
}

.product-image-button:hover .card-view {
  background:var(--ink);
  color:var(--paper);
}

.product-meta {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:8px;
  letter-spacing:1.3px;
  text-transform:uppercase;
  color:var(--muted);
  margin:15px 0 7px;
}

.product-name {
  display:block;
  text-align:left;
  background:none;
  padding:0;
  font-size:13px;
  line-height:1.5;
  font-weight:500;
}

.product-name:hover {
  text-decoration:underline;
  text-underline-offset:3px;
}

.product-price {
  font-size:13px;
  margin-top:7px;
}

.product-price.featured {
  color:var(--accent);
  border:0;
  padding:0;
}

.catalog-note {
  color:var(--muted);
  font-size:10px;
  margin-top:40px;
}

.loading {
  color:var(--muted);
  padding:45px 0;
}

.empty-state {
  text-align:center;
  padding:55px 20px;
}

.empty-state h3 {
  font-family:var(--serif);
  font-size:32px;
}

.empty-state p {
  margin:12px 0 24px;
  color:var(--muted);
}

.perspective {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:40px;
  background:#293129;
  color:var(--paper);
  padding:78px 8% 85px;
}

.perspective-label {
  display:flex;
  flex-direction:column;
  gap:50px;
}

.perspective-label svg {
  width:90px;
  height:55px;
  color:#9ba892;
}

.perspective h2 {
  font-size:49px;
  line-height:1.2;
}

.perspective>div>p {
  max-width:590px;
  color:#c9cfbf;
  font-size:13px;
  line-height:1.9;
  margin:28px 0;
}

.text-link {
  display:inline-flex;
  gap:70px;
  padding:9px 0;
  border-bottom:1px solid #b6bfac;
  font-size:10px;
  letter-spacing:1.3px;
  text-transform:uppercase;
}

.footer {
  padding:44px 5.5% 23px;
  background:var(--paper);
}

.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:30px;
  padding-bottom:40px;
}

.footer-top .brand {
  font-size:20px;
}

.footer-top p {
  font-size:12px;
  color:var(--muted);
}

.footer-top nav {
  display:flex;
  gap:22px;
  font-size:10px;
}

.footer-top nav button {
  background:none;
  padding:0;
  font-size:10px;
}

.footer-top a:hover,.footer-top button:hover {
  text-decoration:underline;
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--line);
  padding-top:20px;
  font-size:9px;
  color:var(--muted);
}

dialog {
  border:0;
  padding:0;
  background:var(--paper);
  color:var(--ink);
  box-shadow:0 20px 90px #0003;
}

dialog::backdrop {
  background:#151b17a6;
  backdrop-filter:blur(3px);
}

.dialog-close {
  position:absolute;
  right:15px;
  top:13px;
  z-index:3;
  border:1px solid var(--line);
  background:var(--paper);
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  font-size:28px;
  line-height:1;
  font-weight:300;
}

.product-dialog {
  width:min(1020px,94vw);
  max-height:92dvh;
}

.detail-layout {
  display:grid;
  grid-template-columns:54% 46%;
}

.detail-gallery {
  background:#e7e7df;
  padding:25px 24px 20px;
  min-width:0;
}

.detail-main-image {
  width:100%;
  height:480px;
  object-fit:contain;
  mix-blend-mode:multiply;
}

.gallery-thumbs {
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:15px;
}

.gallery-thumbs button {
  width:65px;
  height:75px;
  padding:0;
  border:1px solid transparent;
  background:var(--paper);
}

.gallery-thumbs button[aria-pressed=true] {
  border-color:var(--ink);
}

.gallery-thumbs img {
  width:100%;
  height:100%;
  object-fit:contain;
  mix-blend-mode:multiply;
}

.detail-copy {
  padding:60px 32px 35px;
}

.detail-copy h2 {
  font-size:34px;
  line-height:1.12;
  margin:12px 0 18px;
}

.detail-price {
  font-size:25px;
  margin:18px 0;
  color:var(--ink);
}

.detail-copy .product-description {
  font-size:12px;
  line-height:1.9;
  color:var(--muted);
  margin:15px 0 22px;
}

.detail-sku {
  font-size:9px;
  color:var(--muted);
  letter-spacing:1px;
  text-transform:uppercase;
}

.size-label {
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-bottom:11px;
  font-size:10px;
}

.size-label span:last-child {
  color:var(--muted);
  font-size:9px;
}

.size-options {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-bottom:18px;
}

.size-options button {
  height:36px;
  min-width:37px;
  padding:0 9px;
  border:1px solid #bfc1b5;
  background:none;
  font-size:10px;
}

.size-options button[aria-pressed=true] {
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
}

.size-options button:hover {
  border-color:var(--ink);
}

.add-button {
  width:100%;
  margin-bottom:9px;
}

.size-error {
  font-size:11px;
  color:#953d2b;
  min-height:18px;
  margin-bottom:10px;
}

.detail-preview-note {
  font-size:9px;
  color:var(--muted);
  line-height:1.8;
}

.detail-features {
  margin-top:20px;
  border-top:1px solid var(--line);
  padding-top:15px;
  font-size:10px;
  line-height:1.8;
}

.detail-features summary {
  cursor:pointer;
  font-size:10px;
  letter-spacing:1px;
  text-transform:uppercase;
}

.detail-features ul {
  padding-left:16px;
}

.bag-dialog {
  margin:0 0 0 auto;
  height:100dvh;
  max-height:100dvh;
  width:min(470px,100vw);
  padding:30px;
  max-width:100vw;
}

.bag-heading {
  position:relative;
  padding:15px 40px 25px 0;
  border-bottom:1px solid var(--line);
}

.bag-heading h2 {
  font-size:34px;
  margin-top:8px;
}

.bag-heading .dialog-close {
  top:0;
  right:-10px;
}

.bag-items {
  padding:10px 0;
}

.bag-item {
  display:grid;
  grid-template-columns:85px 1fr;
  gap:18px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}

.bag-item img {
  width:85px;
  height:113px;
  object-fit:contain;
  mix-blend-mode:multiply;
  background:#e5e5dc;
}

.bag-item h3 {
  font-size:13px;
}

.bag-item-meta {
  font-size:10px;
  color:var(--muted);
  margin:5px 0;
}

.bag-item-price {
  font-size:12px;
}

.quantity-line {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:12px;
}

.quantity-control {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:11px;
}

.quantity-control button {
  background:none;
  border:1px solid var(--line);
  width:25px;
  height:25px;
  font-size:15px;
  padding:0;
}

.remove-button {
  background:none;
  padding:5px 0;
  text-decoration:underline;
  font-size:9px;
  color:var(--muted);
}

.bag-total {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:14px;
  margin:28px 0 20px;
}

.bag-preview {
  font-size:11px;
  color:var(--muted);
  line-height:1.8;
  background:#e6e7dd;
  padding:16px 18px;
}

.bag-empty {
  padding:55px 5px;
  text-align:center;
}

.bag-empty h3 {
  font-family:var(--serif);
  font-size:28px;
}

.bag-empty p {
  color:var(--muted);
  font-size:12px;
  margin:10px 0 24px;
}

.info-dialog {
  padding:50px 38px 38px;
  width:min(580px,92vw);
  max-height:90dvh;
}

.info-dialog h2 {
  font-size:34px;
  margin:12px 0 20px;
}

.info-dialog p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted);
  margin:15px 0;
  line-height:1.85;
}

.info-dialog .button {
  margin-top:12px;
}

.toast {
  position:fixed;
  bottom:25px;
  left:50%;
  transform:translate(-50%,20px);
  z-index:80;
  background:var(--ink);
  color:var(--paper);
  padding:13px 22px;
  min-width:220px;
  max-width:90vw;
  text-align:center;
  font-size:11px;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s,transform .2s;
}

.toast.visible {
  opacity:1;
  transform:translate(-50%,0);
}

@media(min-width:1600px) {
  .section-wrap,.header,.footer {
    padding-left:max(5.5%,calc((100vw - 1450px)/2));
    padding-right:max(5.5%,calc((100vw - 1450px)/2));
  }
  .hero-content {
    padding-left:max(7.1%,calc((100vw - 1400px)/2));
  }
}

@media(max-width:1100px) {
  .header {
    gap:15px;
    padding:0 4%;
    height:80px;
  }
  .header nav {
    gap:17px;
    font-size:10px;
  }
  .brand {
    font-size:15px;
  }
  .brand svg {
    width:35px;
  }
  .collection-tools {
    flex-wrap:wrap;
  }
  .search-sort {
    margin-left:auto;
  }
  .featured-card {
    grid-template-columns:50% 50%;
    min-height:310px;
  }
  .featured-image {
    height:310px;
  }
  .featured-copy {
    padding-right:18px;
  }
  .featured-copy h3 {
    font-size:26px;
  }
  .product-grid {
    gap:32px 17px;
  }
  .detail-copy {
    padding:60px 25px 30px;
  }
  .detail-main-image {
    height:430px;
  }
  .perspective h2 {
    font-size:42px;
  }
}

@media(max-width:800px) {
  .header nav {
    display:none;
  }
  .header {
    height:73px;
  }
  .announcement {
    font-size:8px;
    gap:10px;
    letter-spacing:.6px;
  }
  .announcement span {
    font-size:7px;
  }
  .hero {
    height:610px;
    min-height:0;
  }
  .hero-image img {
    object-position:61% center;
  }
  .hero-shade {
    background:linear-gradient(90deg,#101713a1,#10171324),linear-gradient(0deg,#1017136b,transparent 60%);
  }
  .hero-content {
    padding:100px 6% 85px;
    max-width:520px;
  }
  .hero h1 {
    font-size:77px;
  }
  .hero-footer {
    left:6%;
    right:6%;
    font-size:8px;
    letter-spacing:1.3px;
  }
  .section-wrap {
    padding:50px 5%;
  }
  .section-heading {
    gap:18px;
  }
  h2 {
    font-size:38px;
  }
  .section-heading>p {
    font-size:11px;
  }
  .featured-grid {
    gap:16px;
  }
  .featured-card {
    grid-template-columns:1fr;
    min-height:0;
    align-content:start;
  }
  .featured-image {
    height:280px;
  }
  .featured-copy {
    padding:10px 23px 25px;
  }
  .featured-copy h3 {
    font-size:27px;
  }
  .featured-copy p {
    display:none;
  }
  .featured-price {
    margin:14px 0 5px;
  }
  .product-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:30px 16px;
  }
  .collection-tools {
    gap:16px;
  }
  .filters {
    gap:4px;
  }
  .filters button {
    font-size:10px;
    padding:8px 12px;
  }
  .search-sort {
    width:100%;
    justify-content:space-between;
    margin:0;
  }
  .search-field input {
    width:190px;
  }
  .perspective {
    grid-template-columns:1fr;
    padding:55px 7%;
    gap:30px;
  }
  .perspective-label {
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
  .perspective-label svg {
    width:60px;
    height:35px;
  }
  .perspective h2 {
    font-size:40px;
  }
  .footer-top {
    flex-wrap:wrap;
  }
  .footer-top .brand {
    font-size:17px;
  }
  .footer-top nav {
    width:100%;
    gap:30px;
  }
  .detail-layout {
    grid-template-columns:1fr;
  }
  .detail-main-image {
    height:390px;
  }
  .detail-copy {
    padding:30px;
  }
  .product-dialog {
    width:90vw;
  }
  .detail-gallery {
    padding:20px;
  }
  .footer-bottom {
    font-size:8px;
  }
  .collection .eyebrow {
    max-width:340px;
  }
}

@media(max-width:480px) {
  html {
    scroll-padding-top:85px;
  }
  .announcement {
    justify-content:space-between;
    padding:0 16px;
    font-size:7px;
    letter-spacing:.25px;
  }
  .announcement span {
    font-size:6px;
    letter-spacing:.6px;
  }
  .header {
    padding:0 18px;
    height:68px;
    gap:12px;
  }
  .brand {
    font-size:14px;
    letter-spacing:1.2px;
    gap:6px;
  }
  .brand i {
    letter-spacing:.7px;
  }
  .brand svg {
    width:32px;
    height:25px;
  }
  .header-actions {
    gap:5px;
  }
  .bag-button {
    padding:5px;
    gap:6px;
  }
  .bag-button>span {
    display:none;
  }
  .icon-button {
    padding:5px;
  }
  .header-actions svg {
    width:20px;
    height:20px;
  }
  .hero {
    height:560px;
  }
  .hero-image img {
    object-position:61% center;
  }
  .hero-shade {
    background:linear-gradient(90deg,#101713b0,#10171336),linear-gradient(0deg,#10171370,transparent 60%);
  }
  .hero-content {
    padding:91px 24px 65px;
  }
  .hero h1 {
    font-size:clamp(48px,16vw,65px);
    letter-spacing:-2px;
    margin:23px 0;
  }
  .hero-content>p:not(.eyebrow) {
    font-size:12px;
    line-height:1.8;
    margin-bottom:27px;
  }
  .hero-content .eyebrow {
    font-size:8px;
    letter-spacing:1.9px;
  }
  .hero-footer {
    left:24px;
    right:24px;
    bottom:23px;
    font-size:7px;
    letter-spacing:1px;
  }
  .hero-footer span:last-child {
    display:none;
  }
  .button {
    font-size:9px;
    padding:15px 19px;
    min-height:47px;
  }
  .section-wrap {
    padding:43px 20px;
  }
  .section-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:15px;
    margin-bottom:25px;
  }
  .section-heading .eyebrow {
    font-size:7px;
    letter-spacing:1.7px;
  }
  .section-heading>p br {
    display:none;
  }
  .section-heading>p {
    font-size:11px;
  }
  .section-heading h2 {
    font-size:34px;
    letter-spacing:-1px;
  }
  .featured-grid {
    gap:12px;
  }
  .featured-image {
    height:211px;
    padding:8px 0;
  }
  .featured-copy {
    padding:6px 13px 21px;
  }
  .featured-copy .eyebrow {
    font-size:6px;
    letter-spacing:1.15px;
  }
  .featured-copy h3 {
    font-size:23px;
    margin:9px 0 10px;
  }
  .featured-index {
    top:12px;
    left:12px;
    font-size:7px;
  }
  .featured-price {
    font-size:20px;
  }
  .featured-link {
    font-size:7px;
    letter-spacing:.7px;
    gap:17px;
    padding:6px 0;
  }
  .collection-count {
    font-size:9px;
  }
  .collection-tools {
    padding:15px 0;
    margin-bottom:24px;
    gap:16px;
  }
  .filters {
    gap:2px;
    width:100%;
    justify-content:space-between;
  }
  .filters button {
    font-size:9px;
    padding:8px 9px;
  }
  .search-sort {
    gap:10px;
  }
  .search-field input {
    width:140px;
    font-size:10px;
  }
  .sort-field select {
    font-size:9px;
    padding-right:12px;
    max-width:127px;
  }
  .product-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:25px 13px;
  }
  .product-tag {
    top:9px;
    left:9px;
    font-size:6px;
    padding:4px 5px;
    letter-spacing:.7px;
  }
  .card-view {
    bottom:10px;
    right:10px;
    width:23px;
    height:23px;
    font-size:17px;
  }
  .product-meta {
    font-size:6px;
    letter-spacing:.8px;
    margin:11px 0 5px;
    gap:3px;
  }
  .product-name {
    font-size:11px;
  }
  .product-price {
    font-size:12px;
    margin-top:5px;
  }
  .catalog-note {
    font-size:9px;
    margin-top:30px;
  }
  .perspective {
    padding:43px 24px;
    gap:24px;
  }
  .perspective h2 {
    font-size:34px;
    letter-spacing:-1px;
  }
  .perspective>div>p {
    font-size:12px;
    margin:20px 0;
  }
  .footer {
    padding:32px 20px 20px;
  }
  .footer-top {
    gap:20px;
    padding-bottom:30px;
  }
  .footer-top .brand {
    font-size:16px;
  }
  .footer-top p {
    font-size:10px;
  }
  .footer-top nav {
    font-size:9px;
    gap:23px;
  }
  .footer-top nav button {
    font-size:9px;
  }
  .footer-bottom {
    flex-direction:column;
    gap:9px;
  }
  .product-dialog {
    width:100vw;
    max-width:100vw;
    max-height:100dvh;
    height:100dvh;
    margin:0;
  }
  .detail-gallery {
    padding:40px 20px 20px;
  }
  .detail-main-image {
    height:330px;
  }
  .detail-copy {
    padding:30px 23px;
  }
  .detail-copy h2 {
    font-size:32px;
  }
  .bag-dialog {
    padding:22px;
  }
  .bag-heading h2 {
    font-size:31px;
  }
  .info-dialog {
    padding:48px 25px 25px;
  }
  .info-dialog h2 {
    font-size:30px;
  }
  .info-dialog p:not(.eyebrow) {
    font-size:12px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    transition:none!important;
  }
}

.size-error.success {
  color:#415a39;
}

.checkout-dialog {
  width:min(1040px,94vw);
  max-height:92dvh;
  padding:32px 38px 38px;
}

.checkout-heading {
  position:relative;
  padding:10px 45px 25px 0;
  border-bottom:1px solid var(--line);
  margin-bottom:28px;
}

.checkout-heading h2 {
  font-size:39px;
  margin:8px 0 9px;
}

.checkout-heading>div>p:last-child {
  font-size:12px;
  color:var(--muted);
}

.checkout-heading .dialog-close {
  right:0;
  top:0;
}

.checkout-layout,.checkout-review-layout {
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);
  gap:38px;
  align-items:start;
}

.checkout-fields {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  border:0;
  padding:0;
  margin:0 0 24px;
  min-width:0;
}

.checkout-fields legend {
  font-size:10px;
  letter-spacing:1.3px;
  text-transform:uppercase;
  padding:0 0 19px;
}

.checkout-field.full {
  grid-column:1/-1;
}

.checkout-field label {
  font-size:10px;
  display:block;
  margin-bottom:7px;
}

.checkout-field input,.checkout-field textarea {
  display:block;
  width:100%;
  min-width:0;
  border:1px solid #bfc1b5;
  border-radius:0;
  background:var(--white);
  color:var(--ink);
  padding:11px 12px;
  font-size:12px;
  line-height:1.5;
}

.checkout-field textarea {
  min-height:82px;
  resize:vertical;
}

.checkout-field [aria-invalid=true],.checkout-consent input[aria-invalid=true] {
  border-color:#a3432b;
  outline:1px solid #a3432b;
  outline-offset:0;
}

.checkout-field-error,.checkout-form-error {
  display:block;
  font-size:10px;
  color:#913d29;
  line-height:1.6;
  margin-top:6px;
}

.checkout-form-error:empty {
  display:none;
}

.checkout-form-error {
  margin:14px 0;
}

.checkout-hint {
  font-size:10px;
  color:var(--muted);
  line-height:1.8;
  margin:13px 0;
}

.checkout-consent {
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:20px 0 8px;
  font-size:11px;
  line-height:1.8;
  cursor:pointer;
}

.checkout-consent input {
  accent-color:var(--ink);
  margin:4px 0 0;
  width:15px;
  height:15px;
  flex-shrink:0;
}

.checkout-summary {
  background:#e6e7dd;
  padding:24px;
  min-width:0;
}

.checkout-lines {
  padding-top:12px;
}

.checkout-line {
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding:15px 0;
  border-bottom:1px solid #cfd1c3;
  font-size:12px;
}

.checkout-line>span {
  flex-shrink:0;
}

.checkout-line-name {
  font-size:12px;
  line-height:1.6;
}

.checkout-line-meta {
  font-size:9px;
  color:var(--muted);
  margin-top:5px;
}

.checkout-totals {
  margin:20px 0;
  font-size:11px;
}

.checkout-totals>div {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:6px 0;
}

.checkout-totals>div:first-child {
  font-size:13px;
  padding-bottom:16px;
}

.checkout-totals>div:not(:first-child) {
  color:var(--muted);
}

.checkout-totals dd {
  margin:0;
  text-align:right;
}

.checkout-primary {
  width:100%;
  margin-top:15px;
}

.checkout-back-link {
  background:none;
  font-size:10px;
  border-bottom:1px solid var(--ink);
  padding:8px 0;
  margin-top:13px;
}

.checkout-review h3 {
  font-family:var(--serif);
  font-size:31px;
  line-height:1.25;
  letter-spacing:-.7px;
  margin:14px 0;
}

.checkout-review-intro {
  font-size:12px;
  line-height:1.8;
  color:var(--muted);
  max-width:390px;
}

.checkout-review-details h4 {
  font-size:10px;
  font-weight:400;
  letter-spacing:1.2px;
  text-transform:uppercase;
  margin:24px 0 9px;
}

.checkout-review-details p {
  font-size:12px;
  line-height:1.9;
  overflow-wrap:anywhere;
}

.checkout-notes {
  white-space:pre-wrap;
}

.checkout-download-status {
  font-size:11px;
  line-height:1.8;
  color:var(--ink);
  margin-top:15px;
}

@media(max-width:800px) {
  .checkout-dialog {
    padding:28px;
  }
  .checkout-layout,.checkout-review-layout {
    grid-template-columns:1fr;
    gap:28px;
  }
  .checkout-summary {
    padding:22px;
  }
}

@media(max-width:480px) {
  .checkout-dialog {
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    margin:0;
    padding:26px 22px;
  }
  .checkout-heading {
    padding-bottom:22px;
    margin-bottom:25px;
  }
  .checkout-heading h2 {
    font-size:34px;
  }
  .checkout-heading>div>p:last-child {
    font-size:11px;
  }
  .checkout-fields {
    gap:15px 12px;
  }
  .checkout-field input,.checkout-field textarea {
    font-size:16px;
    padding:10px;
  }
  .checkout-field:has(input[type=email]),
  .checkout-field:has(input[type=tel]),
  .checkout-field:has(input[name=country]) {
    grid-column:1/-1;
  }
  .checkout-review h3 {
    font-size:29px;
  }
  .checkout-summary {
    padding:19px;
  }
}
