/* Love With Reborns storefront styles
   Organized as: foundations, layout, components, motion, responsive rules. */

:root {
  --ink:#3f3935;
  --muted:#887d76;
  --rose:#b4776f;
  --rose-dark:#955c57;
  --cream:#f8f4ef;
  --paper:#fffdfa;
  --line:#e8dfd7;
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Manrope',Arial,sans-serif
}
/* Base reset */
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button {
  cursor:pointer
}
/* Announcement and site header */
.announcement {
  text-align:center;
  background:#eee5dc;
  color:#756860;
  padding:8px;
  font-size:11px;
  letter-spacing:.09em;
  text-transform:uppercase
}
.site-header {
  height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 clamp(24px,6vw,96px);
  background:var(--paper);
  border-bottom:1px solid var(--line)
}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--serif);
  font-size:18px;
  line-height:1.05
}
.brand small {
  display:block;
  font:10px var(--sans);
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--muted);
  margin-top:5px
}
.brand-mark {
  font-size:35px;
  color:var(--rose);
  line-height:1
}
.site-header nav {
  display:flex;
  gap:34px;
  font-size:13px;
  color:#635b56
}
.site-header nav a:hover,.text-link:hover {
  color:var(--rose-dark)
}
.cart-link {
  font-size:13px
}
.cart-link span {
  display:inline-grid;
  place-items:center;
  border:1px solid var(--rose);
  border-radius:50%;
  height:24px;
  width:24px;
  margin-left:5px;
  color:var(--rose)
}
h1,h2 {
  font-family:var(--serif);
  font-weight:500;
  line-height:1.12;
  margin:0
}
h1 {
  font-size:clamp(46px,7vw,90px);
  letter-spacing:-.04em
}
h2 {
  font-size:clamp(34px,4vw,58px);
  letter-spacing:-.03em
}
h3 {
  font-family:var(--serif);
  font-size:20px;
  font-weight:500;
  margin:0
}
.eyebrow {
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--rose-dark);
  margin:0 0 18px
}
/* Homepage hero banner */
.hero {
  max-width:1440px;
  margin:auto;
  min-height:610px;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  padding:80px clamp(24px,8vw,120px);
  gap:70px
}
.hero h1 em,h1 em,h2 em {
  font-style:italic;
  color:var(--rose)
}
.hero-text {
  max-width:420px;
  color:var(--muted);
  font-size:16px;
  margin:28px 0
}
.actions {
  display:flex;
  align-items:center;
  gap:25px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  border:0;
  padding:14px 22px;
  font-size:12px;
  letter-spacing:.05em
}
.button.primary {
  background:var(--rose);
  color:#fff
}
.button.primary:hover {
  background:var(--rose-dark)
}
.button.outline {
  border:1px solid var(--rose);
  color:var(--rose);
  background:transparent
}
.button.full {
  width:100%
}
.text-link {
  font-size:12px;
  border-bottom:1px solid var(--rose);
  padding-bottom:4px
}
.hero-art {
  height:450px;
  position:relative
}
.sun {
  position:absolute;
  width:360px;
  height:360px;
  border-radius:50%;
  background:#ead9cc;
  right:40px;
  top:20px
}
.hero-card {
  position:absolute;
  width:270px;
  height:350px;
  right:130px;
  top:70px;
  background:#d1a892;
  box-shadow:20px 20px 0 #eee0d4;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:20px
}
.doll-silhouette {
  height:260px;
  display:grid;
  place-items:center;
  font-size:130px;
  color:#f2ded2
}
.hero-card-caption {
  display:flex;
  justify-content:space-between;
  align-items:end;
  font-size:10px;
  color:#fff
}
.hero-card-caption strong {
  font:18px var(--serif)
}
.hero-note {
  position:absolute;
  right:0;
  bottom:30px;
  writing-mode:vertical-rl;
  font:italic 14px var(--serif);
  color:var(--rose)
}
.hero-note i {
  margin-top:10px
}
.section {
  max-width:1240px;
  margin:auto;
  padding:100px clamp(24px,6vw,80px)
}
.intro {
  max-width:850px;
  text-align:center
}
.intro p:last-child {
  max-width:580px;
  margin:28px auto;
  color:var(--muted)
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  margin-bottom:45px
}
.product-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px
}
/* Product cards and catalog */
.product-card {
  min-width:0
}
.product-image {
  display:block;
  position:relative;
  aspect-ratio:1/1.14;
  background:#e8d8cd;
  overflow:hidden
}
.product-image img,.detail-image img {
  width:100%;
  height:100%;
  object-fit:cover
}
.image-placeholder {
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#e9dcd3,#cda58e);
  color:#f8eee8;
  font-size:100px
}
.image-placeholder.large {
  min-height:450px
}
.stock {
  position:absolute;
  top:14px;
  left:14px;
  background:var(--paper);
  color:var(--rose-dark);
  padding:5px 9px;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase
}
.stock-sold {
  color:#847b75
}
.product-meta {
  display:flex;
  align-items:start;
  justify-content:space-between;
  gap:20px;
  padding:17px 0 4px
}
.product-meta p {
  margin:4px 0 0;
  color:var(--muted);
  font-size:12px
}
.price,.detail-price {
  color:var(--rose-dark);
  font-size:17px;
  white-space:nowrap
}
.add-cart {
  border:0;
  background:transparent;
  color:var(--rose-dark);
  padding:6px 0;
  font-size:12px
}
.add-cart span {
  margin-left:10px
}
/* Story, values, and editorial sections */
.story {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:100px;
  align-items:center;
  background:#eee4db;
  max-width:none;
  padding-left:calc((100% - 1080px)/2);
  padding-right:calc((100% - 1080px)/2)
}
.story-image {
  background:#d3a994
}
.story-copy>p:not(.eyebrow) {
  color:var(--muted);
  max-width:430px;
  margin:25px 0
}
.value-list {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  margin-top:44px
}
.value-list span {
  color:var(--rose);
  font-size:12px
}
.value-list h3 {
  margin:18px 0 8px
}
.value-list p {
  font-size:13px;
  color:var(--muted)
}
.quote {
  padding:120px 24px;
  text-align:center;
  background:#dfc6b6;
  color:#fff
}
.quote p {
  font:italic 36px var(--serif);
  max-width:730px;
  margin:auto
}
.quote span {
  display:block;
  margin-top:25px;
  font-size:12px;
  letter-spacing:.1em
}
.newsletter {
  text-align:center
}
.newsletter>p:not(.eyebrow) {
  color:var(--muted);
  max-width:470px;
  margin:20px auto
}
.newsletter form {
  max-width:500px;
  margin:30px auto;
  display:flex;
  border-bottom:1px solid var(--rose)
}
.newsletter input {
  flex:1;
  border:0;
  background:transparent;
  padding:12px 0;
  outline:none
}
.newsletter form .button {
  border-radius:0
}
/* Interior pages */
.page {
  max-width:1240px;
  margin:auto;
  padding:95px clamp(24px,6vw,80px)
}
.page>h1 {
  margin-bottom:50px
}
.page-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  margin-bottom:50px
}
.page-heading>p {
  max-width:260px;
  color:var(--muted)
}
.filters {
  display:flex;
  gap:12px;
  margin-bottom:38px
}
.filters input,.filters select {
  border:1px solid var(--line);
  background:var(--paper);
  padding:12px 15px;
  outline-color:var(--rose);
  color:var(--ink)
}
.filters input {
  flex:1
}
.filters .button {
  padding:10px 18px
}
.empty-state {
  grid-column:1/-1;
  background:var(--paper);
  padding:45px;
  color:var(--muted);
  text-align:center
}
.empty-state a {
  color:var(--rose-dark);
  text-decoration:underline
}
.detail-page {
  padding-top:50px
}
.back-link {
  font-size:12px;
  color:var(--rose-dark)
}
.detail-grid {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:90px;
  margin-top:35px
}
.detail-image {
  aspect-ratio:1/1.1;
  background:#e7d5c8
}
.detail-copy {
  padding-top:30px
}
.detail-copy h1 {
  font-size:55px;
  margin-bottom:15px
}
.detail-price {
  font-size:26px;
  margin-bottom:17px
}
.lead {
  color:var(--muted);
  font-size:17px;
  margin:30px 0 15px
}
.prose.small {
  font-size:14px;
  color:var(--muted)
}
.specs {
  border-top:1px solid var(--line);
  margin:25px 0
}
.specs div {
  display:flex;
  justify-content:space-between;
  padding:11px 0;
  border-bottom:1px solid var(--line);
  font-size:12px
}
.specs span {
  color:var(--muted)
}
.shipping-note {
  font-size:11px;
  color:var(--muted);
  text-align:center
}
.shipping-note a {
  color:var(--rose-dark);
  text-decoration:underline
}
.related {
  margin-top:110px
}
.cart-list {
  margin:40px 0;
  border-top:1px solid var(--line)
}
.cart-row {
  display:grid;
  grid-template-columns:80px 1fr auto auto;
  gap:22px;
  align-items:center;
  padding:20px 0;
  border-bottom:1px solid var(--line)
}
.cart-thumb {
  width:80px;
  height:90px;
  background:#e5d2c5;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:30px
}
.cart-thumb img {
  width:100%;
  height:100%;
  object-fit:cover
}
.cart-row p {
  margin:3px 0;
  color:var(--muted);
  font-size:12px
}
.cart-row>strong {
  color:var(--rose-dark)
}
.remove {
  border:0;
  background:none;
  color:var(--muted);
  font-size:11px
}
.cart-total {
  display:flex;
  justify-content:flex-end;
  gap:80px;
  margin:25px 0 30px;
  font-size:20px
}
.cart-total strong {
  color:var(--rose-dark)
}
.checkout-grid {
  display:grid;
  grid-template-columns:1fr 300px;
  gap:70px
}
.checkout-step {
  display:grid;
  grid-template-columns:44px 1fr;
  gap:15px;
  padding:25px 0;
  border-bottom:1px solid var(--line)
}
.checkout-step>span {
  color:var(--rose-dark);
  font-size:12px
}
.checkout-step h2 {
  font-size:27px;
  margin-bottom:22px
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}
.form-grid .wide {
  grid-column:1/-1
}
.form-grid label,.contact-form label,.login-card label {
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:11px;
  color:var(--muted);
  letter-spacing:.06em;
  text-transform:uppercase
}
.form-grid input,.contact-form input,.contact-form textarea,.login-card input {
  border:1px solid var(--line);
  padding:12px;
  background:var(--paper);
  outline-color:var(--rose)
}
.payment-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px
}
.payment-option input {
  display:none
}
.payment-option span {
  display:block;
  border:1px solid var(--line);
  padding:13px;
  font-size:12px;
  text-align:center;
  background:var(--paper)
}
.payment-option input:checked+span {
  border-color:var(--rose);
  background:#f0e2d9;
  color:var(--rose-dark)
}
.order-summary {
  background:var(--paper);
  padding:25px;
  height:max-content
}
.order-summary h3 {
  margin-bottom:20px
}
.order-summary>div {
  display:flex;
  justify-content:space-between;
  font-size:12px;
  padding:8px 0;
  gap:15px
}
.summary-total {
  font-size:17px!important
}
.summary-total strong {
  color:var(--rose-dark)
}
.success-page {
  text-align:center;
  max-width:650px
}
.success-page p:not(.eyebrow) {
  color:var(--muted);
  margin:20px auto 32px
}
.success-mark {
  font-size:70px;
  color:var(--rose)
}
.prose {
  max-width:650px;
  color:var(--muted);
  font-size:17px
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px
}
.contact-grid>div>p {
  color:var(--muted);
  max-width:360px
}
.contact-email {
  color:var(--rose-dark);
  font:24px var(--serif)
}
.muted {
  font-size:12px;
  color:var(--muted)
}
.contact-form {
  display:grid;
  gap:16px
}
.post-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px
}
.post-grid article .image-placeholder {
  height:260px;
  margin-bottom:20px
}
.post-grid h2 {
  font-size:28px;
  margin-bottom:10px
}
.post-grid article>p:last-child {
  font-size:13px;
  color:var(--muted)
}
.article {
  max-width:850px
}
.article .lead {
  font-size:23px
}
.login-page {
  min-height:600px;
  display:grid;
  place-items:center
}
.login-card {
  width:min(400px,90vw);
  background:var(--paper);
  padding:45px
}
.login-card form {
  display:grid;
  gap:16px
}
.dashboard {
  padding-top:55px
}
.dashboard-head {
  display:flex;
  justify-content:space-between;
  align-items:end;
  margin-bottom:40px
}
.stats {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px
}
.stats>div {
  background:var(--paper);
  padding:22px
}
.stats span,.stats small {
  display:block;
  color:var(--muted);
  font-size:11px
}
.stats strong {
  display:block;
  font:38px var(--serif);
  margin:10px 0
}
.dashboard-panel {
  background:var(--paper);
  margin-top:25px;
  padding:25px;
  overflow:auto
}
.panel-head {
  display:flex;
  justify-content:space-between;
  margin-bottom:20px
}
.panel-head span {
  font-size:11px;
  color:var(--muted)
}
table {
  width:100%;
  border-collapse:collapse;
  font-size:12px
}
th,td {
  text-align:left;
  padding:12px;
  border-bottom:1px solid var(--line)
}
th {
  color:var(--muted);
  font-weight:400
}
.status-pill {
  color:var(--rose-dark);
  background:#f0e2d9;
  padding:5px 8px;
  font-size:10px
}
/* Footer */
footer {
  background:#3f3935;
  color:#eee5df;
  padding:65px clamp(24px,6vw,80px) 25px
}
.footer-main {
  max-width:1240px;
  margin:auto;
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.5fr;
  gap:50px
}
.brand.light {
  color:#fff
}
.footer-main p {
  max-width:300px;
  color:#bbb0a9;
  font-size:13px;
  margin-top:20px
}
.footer-main h4 {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#d9a69b;
  font-weight:500
}
.footer-main>div>a:not(.brand) {
  display:block;
  color:#c7beb8;
  font-size:12px;
  margin:10px 0
}
.footer-bottom {
  max-width:1240px;
  border-top:1px solid #5d554f;
  margin:50px auto 0;
  padding-top:18px;
  display:flex;
  justify-content:space-between;
  color:#988e88;
  font-size:11px
}
@media(max-width:800px) {
  .site-header {
    height:75px
  }
  .site-header nav {
    display:none
  }
  .hero {
    grid-template-columns:1fr;
    min-height:0;
    padding-top:65px
  }
  .hero-art {
    height:380px;
    order:-1
  }
  .hero-card {
    right:18%;
    top:50px
  }
  .sun {
    right:5%;
    width:300px;
    height:300px
  }
  .section {
    padding-top:70px;
    padding-bottom:70px
  }
  .product-grid,.post-grid {
    grid-template-columns:1fr 1fr
  }
  .story {
    grid-template-columns:1fr;
    gap:40px;
    padding:70px 24px
  }
  .value-list {
    grid-template-columns:1fr
  }
  .quote p {
    font-size:27px
  }
  .page-heading,.contact-grid,.detail-grid,.checkout-grid {
    display:block
  }
  .page-heading>p {
    margin-top:25px
  }
  .filters {
    flex-wrap:wrap
  }
  .filters input {
    flex-basis:100%
  }
  .detail-copy {
    padding-top:45px
  }
  .order-summary {
    margin-top:40px
  }
  .footer-main {
    grid-template-columns:1fr 1fr
  }
  .footer-main>div:first-child {
    grid-column:1/-1
  }
  .footer-bottom {
    display:block
  }
  .footer-bottom span {
    display:block;
    margin-top:8px
  }
  .form-grid {
    grid-template-columns:1fr
  }
  .form-grid .wide {
    grid-column:auto
  }
  .payment-grid {
    grid-template-columns:1fr 1fr
  }
  .cart-row {
    grid-template-columns:65px 1fr auto
  }
  .cart-row .remove {
    grid-column:2
  }
  .cart-row>strong {
    grid-column:3;
    grid-row:1/3
  }
  .image-placeholder.large {
    min-height:320px
  }

}
/* Premium motion and image treatment */
.hero-card {
  background-image:linear-gradient(180deg,rgba(63,57,53,.05),rgba(63,57,53,.42)),url('https://images.unsplash.com/photo-1519689680058-324335c77eba?auto=format&fit=crop&w=900&q=85');
  background-size:cover;
  background-position:center;
  animation:floatCard 8s ease-in-out infinite
}
.hero-card .doll-silhouette {
  opacity:.22;
  text-shadow:0 2px 20px rgba(63,57,53,.2)
}
.story-image {
  background-image:linear-gradient(180deg,rgba(63,57,53,.02),rgba(63,57,53,.2)),url('https://images.unsplash.com/photo-1555252333-9f8e92e65df9?auto=format&fit=crop&w=1200&q=85');
  background-size:cover;
  background-position:center;
  min-height:450px;
  overflow:hidden
}
.story-image .image-placeholder {
  display:none
}
.sun {
  animation:slowPulse 9s ease-in-out infinite
}
.product-card {
  transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .45s
}
.product-card:hover {
  transform:translateY(-8px)
}
.product-image {
  transition:box-shadow .45s
}
.product-card:hover .product-image {
  box-shadow:14px 18px 0 rgba(180,119,111,.15)
}
.product-image img {
  transition:transform .7s cubic-bezier(.2,.8,.2,1)
}
.product-card:hover .product-image img {
  transform:scale(1.045)
}
.section,.page {
  animation:fadeUp .8s both
}
.hero-copy {
  animation:fadeUp .9s .08s both
}
.hero-art {
  animation:fadeUp 1s .18s both
}
@keyframes fadeUp {
  from {
    opacity:0;
    transform:translateY(18px)
  }
  to {
    opacity:1;
    transform:none
  }

}
@keyframes floatCard {
  0%,100% {
    transform:translateY(0) rotate(2deg)
  }
  50% {
    transform:translateY(-10px) rotate(1deg)
  }

}
@keyframes slowPulse {
  0%,100% {
    transform:scale(1)
  }
  50% {
    transform:scale(1.05)
  }

}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important
  }

}
body.drawer-locked {
  overflow:hidden
}
.menu-toggle {
  display:none;
  border:0;
  background:transparent;
  width:42px;
  height:42px;
  padding:10px;
  position:relative;
  z-index:2
}
.menu-toggle span {
  display:block;
  height:1px;
  background:var(--ink);
  margin:6px 0;
  width:20px
}
.drawer-shade {
  position:fixed;
  inset:0;
  background:rgba(35,28,25,.38);
  opacity:0;
  pointer-events:none;
  transition:opacity .35s ease;
  z-index:20
}
.drawer-shade.is-visible {
  opacity:1;
  pointer-events:auto
}
.side-drawer {
  position:fixed;
  z-index:21;
  right:0;
  top:0;
  height:100dvh;
  width:min(100%,520px);
  background:#f7f0e9;
  color:var(--ink);
  padding:30px clamp(28px,5vw,58px);
  transform:translateX(100%);
  transition:transform .48s cubic-bezier(.77,0,.18,1);
  display:flex;
  flex-direction:column;
  box-shadow:-20px 0 70px rgba(63,57,53,.12)
}
.side-drawer.is-open {
  transform:translateX(0)
}
.drawer-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding-bottom:22px;
  color:var(--rose-dark);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase
}
.drawer-close {
  border:0;
  background:transparent;
  color:var(--ink);
  font-size:34px;
  font-weight:300;
  line-height:1;
  padding:0
}
.side-drawer nav {
  display:flex;
  flex-direction:column;
  margin-top:30px
}
.side-drawer nav a {
  font:clamp(28px,5vw,42px) var(--serif);
  padding:16px 0;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  transition:color .2s,padding .3s
}
.side-drawer nav a span {
  font:18px var(--sans);
  color:var(--rose)
}
.side-drawer nav a:hover {
  color:var(--rose-dark);
  padding-left:10px
}
.drawer-note {
  margin-top:auto;
  color:var(--muted);
  font:italic 22px var(--serif);
  line-height:1.4
}
@media(max-width:800px) {
  .menu-toggle {
    display:block
  }
  .site-header>.brand {
    margin-right:auto;
    margin-left:8px
  }
  .side-drawer {
    width:100%
  }

}
@media(min-width:801px) {
  .side-drawer {
    width:460px
  }

}
.side-drawer {
  width:100%
}
.intro {
  position:relative;
  isolation:isolate;
  background:linear-gradient(90deg,rgba(248,244,239,.96),rgba(248,244,239,.76)),url('https://images.unsplash.com/photo-1519689680058-324335c77eba?auto=format&fit=crop&w=1600&q=80');
  background-size:cover;
  background-position:center
}
.intro:after,.values:after {
  content:'';
  position:absolute;
  z-index:-1;
  width:190px;
  height:190px;
  border:1px solid rgba(180,119,111,.3);
  border-radius:50%;
  right:8%;
  top:16%;
  box-shadow:0 0 0 26px rgba(180,119,111,.05),0 0 0 52px rgba(180,119,111,.035)
}
.values {
  position:relative;
  isolation:isolate;
  background:linear-gradient(90deg,rgba(238,228,219,.94),rgba(238,228,219,.78)),url('https://images.unsplash.com/photo-1544126592-807ade215a0b?auto=format&fit=crop&w=1600&q=80');
  background-size:cover;
  background-position:center
}
.values:after {
  left:5%;
  right:auto;
  top:20%;
  border-color:rgba(149,92,87,.24)
}
.quote {
  position:relative;
  isolation:isolate;
  background:linear-gradient(90deg,rgba(91,62,54,.78),rgba(180,119,111,.52)),url('https://images.unsplash.com/photo-1510337550647-e84f83e341ca?auto=format&fit=crop&w=1800&q=85');
  background-size:cover;
  background-position:center 45%;
  background-attachment:fixed
}
.newsletter {
  position:relative;
  isolation:isolate;
  background:linear-gradient(90deg,rgba(248,244,239,.95),rgba(248,244,239,.68)),url('https://images.unsplash.com/photo-1503919545889-aef636e10ad4?auto=format&fit=crop&w=1600&q=80');
  background-size:cover;
  background-position:center
}
.product-image .image-placeholder {
  background-image:linear-gradient(145deg,rgba(233,220,211,.5),rgba(205,165,142,.5)),url('https://images.unsplash.com/photo-1522771930-78848d9293e8?auto=format&fit=crop&w=900&q=80');
  background-size:cover;
  background-position:center
}
.story-image {
  box-shadow:18px 20px 0 rgba(180,119,111,.14)
}
@media(max-width:800px) {
  .quote {
    background-attachment:scroll
  }

}
/* FAQ and newsletter */
.faq-section {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:90px;
  background:#fbf8f4
}
.faq-intro>p:last-child {
  color:var(--muted);
  max-width:300px;
  margin-top:22px
}
.faq-list {
  border-top:1px solid var(--line)
}
.faq-list details {
  border-bottom:1px solid var(--line);
  padding:0
}
.faq-list summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:22px 0;
  font:20px var(--serif)
}
.faq-list summary::-webkit-details-marker {
  display:none
}
.faq-list summary span {
  font:22px var(--sans);
  color:var(--rose);
  transition:transform .25s
}
.faq-list details[open] summary span {
  transform:rotate(45deg)
}
.faq-list details p {
  max-width:620px;
  color:var(--muted);
  font-size:14px;
  margin:-4px 35px 22px 0
}
.eyebrow,.button,.text-link,.cart-link,.stock,.add-cart,.muted {
  font-size:14px
}
.product-meta p,.footer-main h4,.footer-main>div>a:not(.brand),.footer-bottom,.hero-note,.shipping-note {
  font-size:14px
}
@media(max-width:800px) {
  .faq-section {
    display:block
  }
  .faq-intro {
    margin-bottom:40px
  }
  .faq-list summary {
    font-size:18px
  }

}
body {
  font-family:'Manrope',Arial,sans-serif
}
.hero-art {
  background-image:linear-gradient(135deg,rgba(63,57,53,.14),rgba(180,119,111,.12)),url('https://images.unsplash.com/photo-1519689680058-324335c77eba?auto=format&fit=crop&w=1400&q=85');
  background-size:cover;
  background-position:center;
  border-radius:4px;
  transition:background-image 1s ease
}
.hero-art:before {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(63,57,53,.03),rgba(63,57,53,.18));
  pointer-events:none
}
.hero-card {
  z-index:1
}
.page>h1 {
  max-width:850px
}
.page-hero {
  padding:74px clamp(24px,6vw,80px);
  background:linear-gradient(90deg,rgba(63,57,53,.72),rgba(180,119,111,.38)),url('https://images.unsplash.com/photo-1510337550647-e84f83e341ca?auto=format&fit=crop&w=1800&q=85') center/cover;
  color:#fff;
  margin-bottom:10px
}
.page-hero h1 {
  max-width:760px
}
.page-hero .eyebrow {
  color:#f2d8cf
}
.hero {
  position:relative;
  display:block;
  max-width:none;
  min-height:590px;
  padding:0 clamp(24px,8vw,120px);
  overflow:hidden;
  background:#d7b4a5
}
.hero-art {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border-radius:0;
  background-position:center;
  background-size:cover
}
.hero-art:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(40,31,27,.68) 0%,rgba(40,31,27,.32) 45%,rgba(40,31,27,.08) 100%)
}
.hero-copy {
  position:relative;
  z-index:2;
  padding-top:135px;
  color:#fff;
  max-width:620px
}
.hero-copy .eyebrow {
  color:#f6d9cf
}
.hero-copy h1 {
  color:#fff;
  text-shadow:0 3px 25px rgba(40,31,27,.18)
}
.hero-copy .hero-text {
  color:#f9e9e2
}
.hero-copy .text-link {
  color:#fff;
  border-color:#fff
}
.hero-card {
  right:12%;
  top:125px;
  width:215px;
  height:290px;
  opacity:.9;
  box-shadow:16px 16px 0 rgba(255,255,255,.16)
}
.hero-note {
  z-index:2;
  color:#fff;
  right:4%;
  bottom:70px
}
.sun {
  display:none
}
.hero-art.is-changing {
  animation:heroFade .9s ease
}
@keyframes heroFade {
  0% {
    opacity:1
  }
  45% {
    opacity:.35
  }
  100% {
    opacity:1
  }

}
@media(max-width:800px) {
  .hero {
    min-height:520px
  }
  .hero-copy {
    padding-top:96px
  }
  .hero-card {
    right:8%;
    top:auto;
    bottom:24px;
    width:145px;
    height:195px
  }
  .hero-note {
    display:none
  }

}
.category-strip {
  background:#eee4db
}
.category-cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}
.category-cards a {
  min-height:190px;
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:end;
  color:#fff;
  background:linear-gradient(180deg,rgba(63,57,53,.05),rgba(63,57,53,.62)),url('https://images.unsplash.com/photo-1519689680058-324335c77eba?auto=format&fit=crop&w=800&q=80') center/cover;
  transition:transform .4s,box-shadow .4s
}
.category-cards a:nth-child(2) {
  background-image:linear-gradient(180deg,rgba(63,57,53,.05),rgba(63,57,53,.62)),url('https://images.unsplash.com/photo-1544126592-807ade215a0b?auto=format&fit=crop&w=800&q=80')
}
.category-cards a:nth-child(3) {
  background-image:linear-gradient(180deg,rgba(63,57,53,.05),rgba(63,57,53,.62)),url('https://images.unsplash.com/photo-1555252333-9f8e92e65df9?auto=format&fit=crop&w=800&q=80')
}
.category-cards a:hover {
  transform:translateY(-7px);
  box-shadow:0 18px 30px rgba(63,57,53,.16)
}
.category-cards span {
  font:28px var(--serif)
}
.category-cards small {
  font-size:14px;
  margin-top:5px;
  color:#f4dfd6
}
@media(max-width:800px) {
  .category-cards {
    grid-template-columns:1fr
  }
  .category-cards a {
    min-height:145px
  }

}
/* Final storefront refinement */
:root {
  --ink:#342f2c;
  --muted:#736a65;
  --rose:#a96560;
  --rose-dark:#884b47;
  --cream:#f7f4f0;
  --paper:#fff;
  --line:#e9e2dc;
  --sans:'Manrope',Arial,sans-serif
}
*,*::before,*::after {
  font-family:var(--sans)
}
body {
  font-family:var(--sans);
  background:#fff;
  color:var(--ink);
  font-size:15px;
  line-height:1.7
}
em,i {
  font-style:normal
}
h1,h2,h3,h4 {
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:-.045em;
  color:var(--ink)
}
h1 {
  font-size:clamp(38px,5.6vw,72px);
  line-height:1.08
}
h2 {
  font-size:clamp(30px,3.6vw,46px);
  line-height:1.16
}
h3 {
  font-size:18px;
  line-height:1.35
}
h1 span,h2 span {
  color:var(--rose)
}
.announcement {
  background:#f1e8e1;
  color:#6d5b54;
  font-weight:700;
  letter-spacing:.12em;
  font-size:10px;
  padding:9px
}
.site-header {
  height:82px;
  background:#fff;
  padding:0 clamp(18px,3.5vw,54px);
  gap:24px
}
.menu-toggle {
  order:0;
  margin-left:-10px;
  width:40px
}
.site-header>.brand {
  order:1;
  margin-right:auto
}
.brand {
  font-family:var(--sans);
  font-size:16px;
  font-weight:800;
  letter-spacing:-.04em
}
.brand small {
  font-weight:600;
  letter-spacing:.12em
}
.site-header nav {
  gap:30px;
  font-size:12px;
  font-weight:700
}
.cart-link {
  font-size:12px;
  font-weight:700
}
.hero {
  min-height:80vh;
  max-height:760px
}
.hero-copy {
  max-width:650px
}
.hero-copy h1 {
  max-width:650px
}
.hero-text {
  max-width:470px;
  font-size:15px;
  line-height:1.8
}
.hero-art {
  background-image:url('https://images.unsplash.com/photo-1519689680058-324335c77eba?auto=format&fit=crop&w=2200&q=92');
  background-position:center 43%
}
.hero-art:after {
  background:linear-gradient(90deg,rgba(40,31,27,.23),rgba(40,31,27,.04))
}
.hero-card {
  display:none
}
.hero-note {
  font-family:var(--sans);
  font-style:normal
}
.button {
  font-weight:800;
  border-radius:2px;
  letter-spacing:.02em;
  min-height:48px
}
.button.primary {
  background:var(--rose-dark)
}
.button.outline {
  border-color:#c7a39b;
  color:var(--rose-dark)
}
.text-link {
  font-weight:800;
  color:var(--rose-dark)
}
.section {
  padding-top:88px;
  padding-bottom:88px
}
.intro {
  background:#f8f5f1;
  background-image:none;
  text-align:left;
  max-width:none;
  padding-left:max(24px,calc((100% - 1040px)/2));
  padding-right:max(24px,calc((100% - 1040px)/2))
}
.intro:after,.values:after {
  display:none
}
.intro h2 {
  max-width:720px
}
.intro p:last-child {
  margin-left:0;
  max-width:650px;
  font-size:15px;
  line-height:1.9
}
.section-heading {
  margin-bottom:34px
}
.section-heading h2 {
  max-width:720px
}
.product-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px
}
.product-card {
  display:flex;
  flex-direction:column;
  min-height:100%;
  background:#fff;
  border:1px solid #eee8e2;
  padding:10px 10px 0;
  box-shadow:0 8px 26px rgba(55,42,36,.045);
  transition:transform .25s ease,box-shadow .25s ease
}
.product-card:hover {
  transform:translateY(-4px);
  box-shadow:0 14px 32px rgba(55,42,36,.10)
}
.product-image {
  aspect-ratio:1/.98;
  background:#eee7e1
}
.product-image img {
  object-position:center
}
.stock {
  top:12px;
  left:12px;
  border-radius:2px;
  background:#fff;
  padding:6px 9px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em
}
.product-meta {
  flex:1;
  align-items:flex-start;
  padding:17px 7px 10px;
  gap:12px
}
.product-copy {
  min-width:0
}
.product-copy h3 {
  margin:0
}
.product-copy p {
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:3.2em;
  margin:7px 0 0;
  color:#77706a;
  font-size:12px;
  line-height:1.6
}
.price {
  flex:0 0 auto;
  color:var(--rose-dark);
  font-weight:800;
  font-size:16px;
  letter-spacing:-.03em;
  text-align:right;
  padding-top:1px
}
.product-card-footer {
  margin-top:auto;
  border-top:1px solid #f0ebe7;
  padding:0 7px
}
.add-cart {
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:48px;
  color:var(--rose-dark);
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase
}
.add-cart span {
  font-size:16px
}
.story {
  padding-left:max(24px,calc((100% - 1120px)/2));
  padding-right:max(24px,calc((100% - 1120px)/2));
  background:#f3ebe5;
  gap:72px
}
.story-image {
  min-height:440px;
  background-image:linear-gradient(180deg,rgba(63,57,53,.03),rgba(63,57,53,.08)),url('https://www.dollsbysandie.com/images/products/large_15032_bear_%2814%29.jpg');
  background-position:center;
  background-size:cover;
  border-radius:3px
}
.story-image .image-placeholder {
  display:none
}
.story-copy>p:not(.eyebrow) {
  font-size:14px;
  line-height:1.9;
  color:var(--muted)
}
.values {
  background:#fff;
  gap:56px
}
.values h2 {
  max-width:440px
}
.value-list {
  gap:24px;
  margin-top:0
}
.value-list>div {
  border-top:2px solid #d8b8ad;
  padding-top:18px
}
.value-list span {
  font-weight:800
}
.value-list h3 {
  margin:14px 0 6px
}
.value-list p {
  font-size:12px;
  line-height:1.75
}
.quote {
  padding:105px 24px;
  background:linear-gradient(90deg,rgba(62,45,41,.82),rgba(62,45,41,.54)),url('https://shop.pinkyreborn.com/cdn/shop/files/QQ_20230310231524_345x%402x.jpg?v=1703141984') center 45%/cover;
  background-attachment:scroll
}
.quote p {
  font-family:var(--sans);
  font-style:normal;
  font-size:clamp(22px,3vw,34px);
  font-weight:600;
  line-height:1.4
}
.quote span {
  font-weight:700
}
.newsletter {
  background:#f7f4f0;
  background-image:none
}
.newsletter h2 {
  font-size:clamp(30px,4vw,44px)
}
.newsletter form {
  border-bottom-color:#bd8b81
}
.newsletter input {
  font-size:13px
}
.category-strip {
  background:#f3ebe5
}
.category-cards a {
  border-radius:2px
}
.category-cards a:first-child {
  background-image:linear-gradient(180deg,rgba(36,31,28,.03),rgba(36,31,28,.62)),url('https://i.etsystatic.com/51524787/r/il/9c5ebe/6472327876/il_fullxfull.6472327876_nw6i.jpg')
}
.category-cards a:nth-child(2) {
  background-image:linear-gradient(180deg,rgba(36,31,28,.03),rgba(36,31,28,.62)),url('https://i.etsystatic.com/19978638/r/il/e81fb7/6275482120/il_fullxfull.6275482120_tjhw.jpg')
}
.category-cards a:nth-child(3) {
  background-image:linear-gradient(180deg,rgba(36,31,28,.03),rgba(36,31,28,.62)),url('https://i.etsystatic.com/49839923/r/il/02dae5/7072885992/il_1080xN.7072885992_d7f3.jpg')
}
.category-cards a span {
  font-family:var(--sans);
  font-weight:800;
  font-size:20px
}
.category-cards small {
  font-size:11px
}
.faq-section {
  background:#fbf8f5
}
.faq-list summary {
  font-family:var(--sans);
  font-weight:700;
  font-size:16px
}
.faq-list details p {
  line-height:1.8
}
.page {
  max-width:1280px
}
.page-heading {
  gap:40px
}
.page-heading h1 {
  max-width:800px
}
.page-heading>p {
  font-size:14px;
  line-height:1.8
}
.page>h1 {
  margin-bottom:42px
}
.filters {
  padding:16px;
  background:#f7f4f0;
  border:1px solid var(--line)
}
.filters input,.filters select {
  font-size:12px
}
.detail-grid {
  gap:68px
}
.detail-copy h1 {
  font-size:clamp(38px,4vw,56px)
}
.detail-image {
  background:#f2ece7
}
.detail-price {
  color:var(--rose-dark);
  font-weight:800
}
.post-grid {
  align-items:stretch
}
.post-card {
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  padding:10px 10px 18px
}
.post-image {
  height:230px;
  background:#eee7e1;
  display:block;
  overflow:hidden;
  margin-bottom:18px
}
.post-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s
}
.post-card:hover .post-image img {
  transform:scale(1.035)
}
.post-card .eyebrow,.post-card h2,.post-card>p:not(.eyebrow),.post-card>.text-link {
  margin-left:10px;
  margin-right:10px
}
.post-card h2 {
  font-size:20px;
  margin-top:0;
  margin-bottom:10px
}
.post-card>p:not(.eyebrow) {
  font-size:12px;
  color:var(--muted);
  line-height:1.75
}
.post-card>.text-link {
  margin-top:auto;
  padding-top:12px
}
.side-drawer {
  width:min(420px,88vw);
  padding:26px 32px;
  box-shadow:-18px 0 55px rgba(30,23,20,.15)
}
.side-drawer nav a {
  font-family:var(--sans);
  font-size:24px;
  font-weight:700;
  letter-spacing:-.04em
}
.drawer-note {
  font-family:var(--sans);
  font-style:normal;
  font-size:14px;
  line-height:1.8
}
.drawer-close {
  font-family:var(--sans);
  font-style:normal
}
.drawer-shade {
  background:rgba(29,24,22,.48)
}
footer {
  background:#302b29
}
footer .brand,footer .brand small {
  color:#fff
}
.footer-main h4 {
  font-family:var(--sans);
  font-weight:800
}
.footer-main p,.footer-main>div>a:not(.brand) {
  line-height:1.8
}
.page-hero {
  background-image:linear-gradient(90deg,rgba(44,35,31,.77),rgba(44,35,31,.4)),url('https://www.dollsbysandie.com/images/products/large_15032_bear_%2814%29.jpg')
}
@media(max-width:800px) {
  .site-header {
    height:72px;
    padding:0 14px;
    gap:8px
  }
  .menu-toggle {
    margin-left:-8px;
    padding:9px;
    width:36px
  }
  .hero {
    min-height:520px;
    max-height:none;
    padding:0 24px
  }
  .hero-copy {
    padding-top:90px
  }
  .hero-art {
    background-position:58% center
  }
  .section {
    padding-top:64px;
    padding-bottom:64px
  }
  .product-grid,.post-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px
  }
  .product-card {
    padding:7px 7px 0
  }
  .product-meta {
    gap:7px;
    padding:13px 5px 8px
  }
  .product-copy h3 {
    font-size:14px
  }
  .product-copy p {
    font-size:11px;
    min-height:3.1em
  }
  .price {
    font-size:13px
  }
  .product-card-footer {
    padding:0 5px
  }
  .add-cart {
    font-size:10px;
    min-height:44px
  }
  .story {
    padding-left:24px;
    padding-right:24px;
    gap:30px
  }
  .story-image {
    min-height:340px
  }
  .values {
    display:block
  }
  .value-list {
    grid-template-columns:1fr;
    gap:16px;
    margin-top:35px
  }
  .page {
    padding-top:65px;
    padding-bottom:65px
  }
  .detail-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:20px
  }
  .detail-copy {
    padding-top:24px
  }
  .side-drawer {
    width:min(390px,88vw)
  }
  .category-cards {
    grid-template-columns:1fr 1fr
  }
  .category-cards a:last-child {
    grid-column:1/-1
  }
  .page-heading {
    display:block
  }
  .page-heading>p {
    max-width:460px;
    margin-top:18px
  }

}
@media(max-width:520px) {
  .product-grid,.post-grid {
    grid-template-columns:1fr
  }
  .product-image {
    aspect-ratio:1/1
  }
  .product-copy h3 {
    font-size:17px
  }
  .product-copy p {
    font-size:12px
  }
  .price {
    font-size:15px
  }
  .product-meta {
    padding:15px 7px 8px
  }
  .hero {
    min-height:570px
  }
  .actions {
    align-items:flex-start;
    flex-direction:column;
    gap:18px
  }
  .category-cards {
    grid-template-columns:1fr
  }
  .category-cards a:last-child {
    grid-column:auto
  }
  .contact-grid {
    display:block
  }
  .contact-form {
    margin-top:35px
  }
  .side-drawer {
    width:min(360px,90vw);
    padding:24px
  }
  .footer-main {
    grid-template-columns:1fr 1fr
  }

}
* {
  font-family:var(--sans)!important;
  font-style:normal!important
}
.about-page .prose {
  margin-top:32px;
  padding:34px 40px;
  background:#f7f3ef;
  border-left:3px solid #c28e83
}
.contact-page .contact-grid {
  margin-top:40px;
  padding:40px;
  background:#f7f3ef
}
.contact-form button {
  justify-self:start
}
.post-card h2 {
  letter-spacing:-.035em
}
@media(max-width:800px) {
  .about-page .prose {
    padding:24px
  }
  .contact-page .contact-grid {
    padding:24px
  }

}
.product-card-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:58px
}
.product-card-footer .price {
  margin-right:auto;
  text-align:left;
  white-space:nowrap
}
.product-card-footer .add-cart {
  width:auto;
  flex:0 0 auto;
  gap:8px;
  justify-content:flex-end;
  white-space:nowrap
}
.product-card-footer .add-cart span {
  margin-left:0
}
@media(max-width:800px) {
  .product-card-footer {
    min-height:52px;
    gap:8px
  }
  .product-card-footer .price {
    font-size:13px
  }
  .product-card-footer .add-cart {
    font-size:9px;
    gap:5px
  }

}
/* Journal, catalogue metadata, and desktop hero */
.sex-type {
  display:inline-flex;
  align-items:center;
  margin-top:7px;
  padding:3px 8px;
  border-radius:2px;
  background:#f4ece7;
  color:var(--rose-dark);
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em
}
.product-copy p {
  margin-top:7px
}
.journal-preview {
  max-width:none;
  width:100%;
  padding-left:clamp(24px,6vw,88px);
  padding-right:clamp(24px,6vw,88px);
  background:#f7f3ef
}
.journal-preview-grid {
  max-width:1240px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px
}
.journal-preview-card {
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:10px 10px 18px;
  background:#fff;
  border:1px solid var(--line)
}
.journal-preview-image {
  display:block;
  height:230px;
  margin-bottom:18px;
  overflow:hidden;
  background:#eee7e1
}
.journal-preview-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease
}
.journal-preview-card:hover img {
  transform:scale(1.035)
}
.journal-preview-card>.eyebrow,.journal-preview-card h3,.journal-preview-card>p:not(.eyebrow),.journal-preview-card>.text-link {
  margin-left:10px;
  margin-right:10px
}
.journal-preview-card h3 {
  margin-top:0;
  margin-bottom:8px;
  font-size:19px
}
.journal-preview-card>p:not(.eyebrow) {
  color:var(--muted);
  font-size:12px;
  line-height:1.75
}
.journal-preview-card>.text-link {
  margin-top:auto;
  padding-top:10px
}
.faq-section.section,.newsletter.section {
  max-width:none;
  width:100%;
  padding-left:clamp(24px,6vw,88px);
  padding-right:clamp(24px,6vw,88px)
}
.article-image {
  margin:35px 0 42px;
  background:#f3ede8
}
.article-image img {
  display:block;
  width:100%;
  max-height:660px;
  object-fit:cover
}
.article-image figcaption {
  padding:10px 14px;
  color:var(--muted);
  font-size:11px
}
.article-content a {
  color:var(--rose-dark);
  font-weight:800;
  text-decoration:underline;
  text-decoration-color:#d7b1a7;
  text-underline-offset:3px
}
.article-content h2 {
  margin:34px 0 12px;
  color:var(--ink);
  font:28px/1.3 var(--serif)
}
.article-content p {
  margin:0 0 20px;
  line-height:1.85
}
.article-cta {
  margin-top:48px;
  padding:28px;
  background:#f7f3ef
}
.article-cta p {
  margin-top:0;
  font-weight:700
}
.hero {
  min-height:min(94vh,940px)
}
.story-image {
  min-height:560px
}
@media(min-width:801px) {
  .hero-art {
    background-size:cover;
    background-position:center 45%;
    will-change:background-position
  }
  .quote {
    background-attachment:fixed;
    background-position:center 42%
  }

}
@media(max-width:800px) {
  .journal-preview-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px
  }
  .journal-preview-image {
    height:190px
  }
  .hero {
    min-height:680px
  }
  .story-image {
    min-height:380px
  }
  .quote {
    background-attachment:scroll
  }

}
@media(max-width:520px) {
  .journal-preview-grid {
    grid-template-columns:1fr
  }
  .journal-preview-image {
    height:230px
  }
  .hero {
    min-height:590px
  }
  .article-image img {
    max-height:380px
  }

}
/* Header cart, configurable social links, and payment method cards */
.site-header>.brand {
  order:1;
  flex:1;
  min-width:0;
  margin-left:8px
}
.site-header>.menu-toggle {
  order:0;
  flex:0 0 auto;
  margin-left:-10px
}
.site-header>.cart-link {
  order:2;
  flex:0 0 46px;
  margin-left:auto;
  position:relative;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border:1px solid #eaded7;
  border-radius:50%;
  color:var(--rose-dark);
  background:#fff
}
.cart-link svg {
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round
}
.cart-link span {
  position:absolute;
  top:-4px;
  right:-5px;
  display:grid;
  place-items:center;
  width:19px;
  height:19px;
  margin:0;
  border:2px solid #fff;
  border-radius:50%;
  background:var(--rose-dark);
  color:#fff;
  font-size:9px;
  font-weight:800
}
.footer-socials {
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:18px
}
.footer-socials a {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  color:#fff;
  transition:background .2s,border-color .2s,transform .2s
}
.footer-socials a:hover {
  transform:translateY(-2px);
  background:var(--rose-dark);
  border-color:var(--rose-dark)
}
.footer-socials svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round
}
.footer-socials svg path {
  fill:currentColor;
  stroke:none
}
.footer-socials svg .social-dot {
  fill:currentColor;
  stroke:none
}
.footer-payments {
  max-width:1240px;
  margin:44px auto 0;
  padding:28px 0 0;
  border-top:1px solid #514944
}
.footer-payments h4 {
  margin:0 0 16px;
  color:#eee5df;
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase
}
.payment-badges {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:12px
}
.payment-badge {
  min-height:66px;
  display:grid;
  place-items:center;
  padding:10px;
  background:#fff;
  border:1px solid rgba(255,255,255,.16);
  border-radius:3px
}
.payment-logo {
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  min-height:30px
}
.brand-logo {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  font-weight:800;
  line-height:1;
  white-space:nowrap
}
.brand-logo-chime {
  font-size:21px;
  letter-spacing:-.06em;
  color:#00a86b
}
.brand-logo-zelle {
  font-size:22px;
  letter-spacing:-.06em;
  color:#6d1ed4
}
.brand-logo-apple {
  gap:4px;
  color:#111;
  font-size:18px;
  letter-spacing:-.06em
}
.brand-logo-apple svg {
  width:20px;
  height:23px;
  fill:currentColor
}
.brand-logo-cash {
  gap:5px;
  color:#101010;
  font-size:14px;
  letter-spacing:-.04em
}
.brand-logo-cash svg {
  width:25px;
  height:25px;
  fill:#00d632;
  stroke:#101010;
  stroke-width:1.4;
  stroke-linecap:round;
  stroke-linejoin:round
}
.brand-logo-cash svg path {
  fill:none
}
.brand-logo-gift {
  gap:5px;
  color:#7c4b29;
  font-size:13px;
  letter-spacing:-.03em
}
.brand-logo-gift svg {
  width:25px;
  height:25px;
  fill:none;
  stroke:#c27a40;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round
}
.brand-logo-paypal {
  gap:4px;
  color:#1352a0;
  font-size:18px;
  letter-spacing:-.04em
}
.brand-logo-paypal svg {
  width:20px;
  height:24px;
  fill:#1976d2
}
.brand-logo-paypal svg path+path {
  fill:#0c2d70
}
.payment-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px
}
.payment-option {
  position:relative;
  display:block;
  min-width:0;
  cursor:pointer
}
.payment-option input {
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  margin:0;
  opacity:0;
  cursor:pointer
}
.payment-option>.payment-card {
  min-height:98px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 12px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#fff;
  transition:border-color .2s,box-shadow .2s,background .2s
}
.payment-option input:checked+.payment-card {
  border-color:var(--rose-dark);
  background:#fbf6f3;
  box-shadow:0 0 0 2px rgba(136,75,71,.12)
}
.payment-option input:focus-visible+.payment-card {
  outline:3px solid rgba(136,75,71,.35);
  outline-offset:2px
}
.payment-option .payment-selected {
  position:absolute;
  top:7px;
  right:8px;
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:var(--rose-dark);
  color:#fff;
  font-size:11px;
  opacity:0;
  transform:scale(.75);
  transition:opacity .2s,transform .2s
}
.payment-option input:checked+.payment-card .payment-selected {
  opacity:1;
  transform:scale(1)
}
.payment-option .brand-logo {
  font-size:22px
}
.payment-option .brand-logo-apple {
  font-size:18px
}
.payment-option .brand-logo-cash {
  font-size:14px
}
.payment-option .brand-logo-gift {
  font-size:14px
}
.payment-note {
  max-width:620px;
  line-height:1.8
}
@media(max-width:800px) {

    .site-header {
    display:flex;
    justify-content:initial;
    padding:0 13px;
    gap:10px
  }

    .site-header>.brand {
    margin-right:0;
    margin-left:4px
  }

    .site-header>.menu-toggle {
    margin-left:-7px
  }

    .site-header>.cart-link {
    margin-left:auto;
    width:42px;
    height:42px;
    flex-basis:42px
  }

    .footer-payments {
    margin-top:34px;
    padding:24px 18px 0
  }

    .payment-badges {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px
  }

    .payment-badge {
    min-height:58px
  }


}
@media(max-width:520px) {

    .site-header {
    height:70px;
    gap:8px
  }

    .site-header>.brand {
    font-size:14px;
    gap:6px
  }

    .site-header>.brand small {
    font-size:8px
  }

    .site-header>.brand .brand-mark {
    font-size:28px
  }

    .payment-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px
  }

    .payment-option>.payment-card {
    min-height:92px;
    padding:12px 8px
  }

    .footer-payments {
    padding-left:0;
    padding-right:0
  }


}
/* Preserve desktop navigation order and use menu, brand, cart order on mobile */
.site-header>.brand {
  order:0;
  flex:0 1 auto;
  margin-left:0
}
.site-header nav {
  order:1
}
.site-header>.cart-link {
  order:2
}
.payment-option input {
  display:block!important
}
.payment-option .payment-logo,
.payment-option .payment-logo .brand-logo,
.payment-option .payment-logo .brand-logo span {
  display:inline-flex;
  border:0;
  padding:0;
  background:transparent;
  text-align:initial
}
.payment-option .payment-selected {
  display:grid;
  border:0;
  padding:0;
  background:var(--rose-dark);
  text-align:center
}
@media(max-width:800px) {

    .site-header>.menu-toggle {
    order:0
  }

    .site-header>.brand {
    order:1;
    flex:1 1 auto;
    margin-left:4px;
    margin-right:0
  }

    .site-header nav {
    display:none
  }

    .site-header>.cart-link {
    order:2;
    margin-left:auto
  }


}
.visually-hidden {
  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
}
.payment-option .payment-card>.visually-hidden {
  display:block!important;
  background:transparent!important;
  border:0!important
}
.sex-type {
  display:flex;
  width:max-content;
  max-width:100%;
  margin:8px 0 0 auto;
  justify-content:flex-end;
  text-align:right;
  padding:4px 10px;
  font-size:16px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
  white-space:normal
}
@media(max-width:800px) {
  .side-drawer {
    width:90vw;
    max-width:none
  }
  .side-drawer nav a {
    font-size:20px;
    font-weight:600;
    letter-spacing:-.02em;
    padding:14px 0
  }
  .side-drawer nav a span {
    font-size:15px
  }

}
.product-copy p {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
  overflow:hidden;
  text-overflow:ellipsis;
  min-height:4.8em
}
@media(max-width:800px) {
  .product-copy p {
    min-height:4.8em
  }

}
.product-title-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0
}
.product-title-row h3 {
  min-width:0;
  flex:1
}
.product-title-row .sex-type {
  flex:0 0 auto;
  max-width:48%;
  margin:0 0 0 auto;
  white-space:nowrap
}
.product-category {
  display:block;
  margin:0 0 7px;
  color:var(--rose-dark);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase
}
.product-title-row .sex-type {
  padding:0;
  background:transparent;
  color:var(--muted);
  font-size:16px;
  font-weight:500
}
.product-copy .product-description {
  margin-top:12px
}
.site-header {
  position:sticky;
  top:0;
  z-index:15;
  box-shadow:0 4px 18px rgba(52,47,44,.045)
}
.product-title-row .sex-type {
  color:var(--rose-dark);
  font-size:11px;
  text-transform:capitalize;
  margin-right:5px
}
@media(max-width:800px) {
  .site-header>.brand {
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    width:max-content;
    max-width:calc(100% - 112px);
    margin:0;
    justify-content:center;
    white-space:nowrap
  }

}
.product-title-row .sex-type {
  font-size:11px;
  text-transform:uppercase
}
.product-card-footer .add-cart {
  font-size:11px
}
/* Policy pages */
.policy-page {
  padding-top:76px;
  padding-bottom:100px
}
.policy-heading {
  max-width:820px;
  margin:0 auto 48px;
  text-align:center;
  padding:56px 32px;
  background:#f2e9e3
}
.policy-heading h1 {
  font-size:clamp(38px,6vw,68px)
}
.policy-heading>p:last-child {
  max-width:620px;
  margin:20px auto 0;
  color:var(--muted);
  line-height:1.85
}
.policy-content {
  max-width:820px;
  margin:0 auto
}
.policy-content section {
  padding:26px 0;
  border-bottom:1px solid var(--line)
}
.policy-content section h2,.policy-contact h2 {
  font-family:var(--sans);
  font-size:19px;
  font-weight:700;
  letter-spacing:-.02em
}
.policy-content section p,.policy-contact p {
  max-width:720px;
  color:#716963;
  font-size:14px;
  line-height:1.9;
  margin:12px 0 0
}
.policy-contact {
  margin-top:34px;
  padding:30px;
  background:#f7f3ef
}
.policy-contact .button {
  margin-top:20px;
  margin-right:18px
}
.policy-contact .text-link {
  display:inline-block
}
@media(max-width:800px) {
  .policy-page {
    padding:42px 20px 72px
  }
  .policy-heading {
    padding:40px 22px;
    margin-bottom:30px
  }
  .policy-content section {
    padding:22px 0
  }
  .policy-contact {
    padding:24px
  }

}
/* Keep readable site copy at 15px minimum while leaving icon and count sizing intact. */
body :where(p,a,button,label,input,select,textarea,li,small,figcaption,time,summary,.eyebrow,.stock,.price,.detail-price,.add-cart,.text-link,.footer-main h4,.footer-payments h4,.payment-option span,.payment-note,.shipping-note,.cart-row p,.remove,.form-grid label,.contact-form label,.login-card label,.brand-logo) {
  font-size:max(15px,1em)
}
/* Give journal artwork more room and align its heading with the card grid. */
.journal-preview>.section-heading {
  max-width:1240px;
  margin-left:auto;
  margin-right:auto
}
.post-image {
  height:300px
}
.journal-preview-image {
  height:280px
}
@media(max-width:800px) {
  .post-image {
    height:250px
  }
  .journal-preview-image {
    height:230px
  }

}
@media(max-width:520px) {
  .post-image {
    height:280px
  }
  .journal-preview-image {
    height:250px
  }

}
/* Branded payment cards, shared by checkout and footer. */
.payment-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px
}
.payment-option>.payment-card {
  min-height:94px;
  flex-direction:row;
  justify-content:flex-start;
  gap:14px;
  padding:15px 18px;
  text-align:left
}
.payment-option .payment-logo {
  flex:0 0 56px;
  width:56px;
  min-height:48px;
  display:grid;
  place-items:center;
  border-right:1px solid var(--line);
  padding-right:12px
}
.payment-card-copy {
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0
}
.payment-card-copy strong {
  font-size:16px;
  line-height:1.3;
  color:var(--ink)
}
.payment-card-copy small {
  font-size:13px;
  line-height:1.35;
  color:var(--muted)
}
.payment-option input:checked+.payment-card .payment-card-copy strong {
  color:var(--rose-dark)
}
.payment-badges {
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.payment-badge {
  min-height:84px;
  grid-template-columns:56px 1fr;
  grid-template-rows:auto auto;
  justify-items:start;
  align-content:center;
  column-gap:14px;
  row-gap:3px;
  padding:13px 16px;
  text-align:left
}
.payment-badge .payment-logo {
  grid-column:1;
  grid-row:1/3;
  width:56px;
  height:48px;
  border-right:1px solid #e9e1dc;
  padding-right:12px
}
.payment-badge-name {
  grid-column:2;
  grid-row:1;
  color:var(--ink);
  font-size:15px;
  font-weight:800
}
.payment-badge-note {
  grid-column:2;
  grid-row:2;
  color:var(--muted);
  font-size:13px
}
@media(max-width:800px) {
  .payment-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .payment-badges {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

}
@media(max-width:520px) {
  .payment-option>.payment-card {
    min-height:82px;
    gap:9px;
    padding:12px 10px
  }
  .payment-option .payment-logo {
    flex-basis:44px;
    width:44px;
    padding-right:8px
  }
  .payment-card-copy strong {
    font-size:15px
  }
  .payment-card-copy small {
    font-size:12px
  }
  .payment-badges {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px
  }
  .payment-badge {
    grid-template-columns:40px 1fr;
    column-gap:9px;
    padding:10px
  }
  .payment-badge .payment-logo {
    width:40px;
    padding-right:7px
  }

}
/* Stronger product-card metadata and clearer action labels. */
.product-title-row .sex-type {
  font-size:16px;
  font-weight:800;
  text-transform:uppercase;
  color:var(--rose-dark);
  letter-spacing:.025em
}
.product-category {
  font-size:15px;
  line-height:1.35;
  letter-spacing:.08em;
  font-weight:800
}
.product-copy .product-description {
  font-size:15px;
  line-height:1.55;
  min-height:4.65em
}
.product-card-footer .add-cart {
  font-size:15px;
  font-weight:800;
  letter-spacing:.035em
}
.stock {
  font-size:15px;
  font-weight:800;
  letter-spacing:.04em
}
.product-title-row h3 {
  font-size:17px
}
@media(max-width:800px) {
  .product-title-row .sex-type {
    font-size:16px
  }
  .product-copy .product-description {
    font-size:15px;
    min-height:4.65em
  }
  .product-card-footer .add-cart {
    font-size:15px
  }
  .product-category,.stock {
    font-size:15px
  }

}
/* Checkout payment choices: clear, tappable cards with a stable logo column. */
.checkout-step .payment-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px
}
.checkout-step .payment-option {
  position:relative;
  display:block;
  min-width:0
}
.checkout-step .payment-option>.payment-card {
  position:relative;
  min-height:96px;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:15px;
  padding:16px 18px;
  border:1px solid #e7ddd6;
  border-radius:8px;
  background:#fff;
  box-shadow:0 3px 12px rgba(63,57,53,.035);
  text-align:left;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease
}
.checkout-step .payment-option:hover>.payment-card {
  border-color:#c69a8f;
  box-shadow:0 8px 20px rgba(63,57,53,.08);
  transform:translateY(-1px)
}
.checkout-step .payment-option .payment-logo {
  flex:0 0 54px;
  width:54px;
  height:52px;
  min-height:52px;
  display:grid;
  place-items:center;
  padding:0 10px 0 0;
  border:0;
  border-right:1px solid #eee7e2;
  background:transparent;
  text-align:center
}
.checkout-step .payment-option .payment-logo .brand-logo,.checkout-step .payment-option .payment-logo .brand-logo span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:0;
  background:transparent;
  text-align:center
}
.checkout-step .payment-option .payment-card-copy {
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:4px;
  padding:0;
  border:0;
  background:transparent;
  text-align:left
}
.checkout-step .payment-option .payment-card-copy strong {
  display:block;
  padding:0;
  border:0;
  background:transparent;
  color:var(--ink);
  font-size:16px;
  font-weight:800;
  line-height:1.3;
  text-align:left
}
.checkout-step .payment-option .payment-card-copy small {
  display:block;
  padding:0;
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
  text-align:left
}
.checkout-step .payment-option .payment-selected {
  position:absolute;
  top:10px;
  right:10px;
  width:21px;
  height:21px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:50%;
  background:var(--rose-dark);
  color:#fff;
  font-size:13px;
  font-weight:800;
  opacity:0;
  transform:scale(.8);
  transition:opacity .18s ease,transform .18s ease
}
.checkout-step .payment-option input:checked+.payment-card {
  border-color:var(--rose-dark);
  background:#fcf7f4;
  box-shadow:0 0 0 2px rgba(149,92,87,.12),0 8px 20px rgba(63,57,53,.07)
}
.checkout-step .payment-option input:checked+.payment-card .payment-card-copy strong {
  color:var(--rose-dark)
}
.checkout-step .payment-option input:checked+.payment-card .payment-selected {
  opacity:1;
  transform:scale(1)
}
.checkout-step .payment-option input:focus-visible+.payment-card {
  outline:3px solid rgba(149,92,87,.35);
  outline-offset:3px
}
@media(max-width:520px) {
  .checkout-step .payment-grid {
    grid-template-columns:1fr;
    gap:10px
  }
  .checkout-step .payment-option>.payment-card {
    min-height:82px;
    padding:12px 15px
  }
  .checkout-step .payment-option .payment-logo {
    flex-basis:50px;
    width:50px;
    height:46px;
    min-height:46px
  }

}
.checkout-step {
  display:block;
  padding:0;
  border-bottom:1px solid var(--line)
}
.checkout-step-heading {
  width:100%;
  display:grid;
  grid-template-columns:46px 1fr auto;
  align-items:center;
  gap:14px;
  padding:22px 0;
  border:0;
  background:transparent;
  color:var(--ink);
  text-align:left
}
.checkout-step-number {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:#f1e8e2;
  color:var(--rose-dark);
  font-size:15px;
  font-weight:800
}
.checkout-step-title {
  font-size:19px;
  font-weight:800;
  line-height:1.35
}
.checkout-step-state {
  color:var(--rose-dark);
  font-size:13px;
  font-weight:800;
  letter-spacing:.1em
}
.checkout-step-panel {
  padding:0 0 26px 60px
}
.checkout-step-panel[hidden] {
  display:none
}
.checkout-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:24px
}
.checkout-actions-next {
  justify-content:flex-end
}
.checkout-step.active .checkout-step-number {
  background:var(--rose-dark);
  color:#fff
}

/* Shop pagination keeps page navigation visible without overpowering the catalog. */
.shop-pagination {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:46px 0 12px;
  padding-top:22px;
  border-top:1px solid var(--line)
}
.pagination-summary {
  margin:0;
  color:var(--muted);
  font-size:13px
}
.pagination-controls,
.pagination-pages {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px
}
.pagination-arrow,
.pagination-page {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  min-height:40px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  color:var(--ink);
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  transition:background .2s ease,color .2s ease,border-color .2s ease
}
.pagination-arrow {
  gap:7px
}
.pagination-arrow:hover,
.pagination-page:hover {
  border-color:var(--rose-dark);
  color:var(--rose-dark)
}
.pagination-page.is-current {
  border-color:var(--rose-dark);
  background:var(--rose-dark);
  color:#fff
}
.pagination-arrow.is-disabled {
  color:#aaa09d;
  cursor:not-allowed
}
.pagination-ellipsis {
  min-width:18px;
  color:var(--muted);
  text-align:center
}
.pagination-arrow:focus-visible,
.pagination-page:focus-visible {
  outline:3px solid rgba(149,92,87,.3);
  outline-offset:2px
}
@media(max-width:680px) {
  .shop-pagination {
    align-items:flex-start;
    flex-direction:column;
    gap:14px
  }
  .pagination-controls {
    width:100%;
    justify-content:space-between;
    gap:5px
  }
  .pagination-pages {
    gap:4px
  }
  .pagination-arrow,
  .pagination-page {
    min-width:36px;
    min-height:38px;
    padding:0 8px
  }
}

/* Homepage collector guidance */
.home-guide {
  background:#fbf8f4
}
.home-guide-intro {
  max-width:760px;
  margin-bottom:34px
}
.home-guide-intro h2 {
  margin:10px 0 14px
}
.home-guide-intro>p:last-child {
  max-width:720px;
  color:var(--muted);
  line-height:1.8
}
.home-guide-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px
}
.home-guide-card {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-height:230px;
  padding:25px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(255,255,255,.78)
}
.home-guide-number {
  color:var(--rose-dark);
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em
}
.home-guide-card h3 {
  margin:20px 0 8px;
  font:22px var(--serif)
}
.home-guide-card p {
  margin:0 0 18px;
  color:var(--muted);
  font-size:14px;
  line-height:1.75
}
.home-guide-card .text-link {
  margin-top:auto
}
@media(max-width:800px) {
  .home-guide-grid {
    grid-template-columns:1fr
  }
  .home-guide-card {
    min-height:0
  }
}
.checkout-step-heading:focus-visible {
  outline:3px solid rgba(149,92,87,.3);
  outline-offset:3px
}
@media(max-width:520px) {
  .checkout-step-heading {
    grid-template-columns:38px 1fr auto;
    gap:10px;
    padding:18px 0
  }
  .checkout-step-title {
    font-size:16px
  }
  .checkout-step-state {
    font-size:12px
  }
  .checkout-step-panel {
    padding-left:0
  }
  .checkout-actions {
    align-items:stretch;
    flex-direction:column-reverse
  }
  .checkout-actions .button {
    justify-content:center
  }

}
/* Final payment-card refinement: protect full wordmarks and clarify selection. */
.checkout-step .payment-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px
}
.checkout-step .payment-option>.payment-card {
  min-height:104px;
  gap:14px;
  padding:16px 42px 16px 16px;
  border:1px solid #e5dcd5;
  border-radius:10px;
  background:linear-gradient(145deg,#fff 0%,#fdfbf9 100%);
  box-shadow:0 4px 14px rgba(64,48,40,.045);
  transform:none
}
.checkout-step .payment-option:hover>.payment-card {
  border-color:#c99589;
  background:#fff;
  box-shadow:0 10px 24px rgba(64,48,40,.09);
  transform:translateY(-2px)
}
.checkout-step .payment-option .payment-logo {
  flex:0 0 94px;
  width:94px;
  height:58px;
  min-height:58px;
  display:grid;
  place-items:center;
  padding:6px;
  border:0;
  border-radius:7px;
  background:#f6efea;
  text-align:center
}
.checkout-step .payment-option .payment-logo .brand-logo {
  max-width:100%;
  gap:3px;
  font-size:17px;
  letter-spacing:-.04em;
  white-space:nowrap
}
.checkout-step .payment-option .payment-logo .brand-logo-chime {
  font-size:20px;
  color:#009b62
}
.checkout-step .payment-option .payment-logo .brand-logo-zelle {
  font-size:20px;
  color:#6d1ed4
}
.checkout-step .payment-option .payment-logo .brand-logo-apple {
  font-size:16px
}
.checkout-step .payment-option .payment-logo .brand-logo-apple svg {
  width:17px;
  height:20px
}
.checkout-step .payment-option .payment-logo .brand-logo-cash {
  font-size:12px;
  gap:3px
}
.checkout-step .payment-option .payment-logo .brand-logo-cash svg {
  width:20px;
  height:20px
}
.checkout-step .payment-option .payment-logo .brand-logo-gift {
  font-size:11px;
  gap:3px
}
.checkout-step .payment-option .payment-logo .brand-logo-gift svg {
  width:20px;
  height:20px
}
.checkout-step .payment-option .payment-logo .brand-logo-paypal {
  font-size:16px
}
.checkout-step .payment-option .payment-logo .brand-logo-paypal svg {
  width:17px;
  height:21px
}
.checkout-step .payment-option .payment-card-copy {
  gap:5px;
  padding:0 4px
}
.checkout-step .payment-option .payment-card-copy strong {
  font-size:17px;
  font-weight:800;
  letter-spacing:-.025em
}
.checkout-step .payment-option .payment-card-copy small {
  font-size:15px;
  color:#81766f;
  line-height:1.3
}
.checkout-step .payment-option .payment-selected {
  top:12px;
  right:12px;
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border:1.5px solid #d9ccc4;
  border-radius:50%;
  background:#fff;
  color:transparent;
  font-size:13px;
  opacity:1;
  transform:none
}
.checkout-step .payment-option input:checked+.payment-card {
  border:1.5px solid var(--rose-dark);
  background:linear-gradient(145deg,#fffaf7,#f8eeea);
  box-shadow:0 0 0 3px rgba(149,92,87,.1),0 8px 20px rgba(64,48,40,.075)
}
.checkout-step .payment-option input:checked+.payment-card .payment-selected {
  border-color:var(--rose-dark);
  background:var(--rose-dark);
  color:#fff
}
.checkout-step .payment-option input:focus-visible+.payment-card {
  outline:3px solid rgba(149,92,87,.32);
  outline-offset:3px
}
.payment-badge {
  grid-template-columns:94px 1fr;
  column-gap:14px;
  min-height:90px;
  border-radius:8px;
  box-shadow:0 4px 15px rgba(0,0,0,.09)
}
.payment-badge .payment-logo {
  width:94px;
  height:58px;
  padding:6px;
  border:0;
  border-radius:7px;
  background:#f6efea
}
.payment-badge .payment-logo .brand-logo {
  max-width:100%;
  gap:3px;
  font-size:17px;
  letter-spacing:-.04em
}
.payment-badge .payment-logo .brand-logo-chime {
  font-size:20px
}
.payment-badge .payment-logo .brand-logo-zelle {
  font-size:20px
}
.payment-badge .payment-logo .brand-logo-apple {
  font-size:16px
}
.payment-badge .payment-logo .brand-logo-cash {
  font-size:12px
}
.payment-badge .payment-logo .brand-logo-gift {
  font-size:11px
}
.payment-badge .payment-logo .brand-logo-paypal {
  font-size:16px
}
@media(max-width:800px) {
  .payment-badge {
    grid-template-columns:76px 1fr;
    column-gap:11px
  }
  .payment-badge .payment-logo {
    width:76px
  }

}
@media(max-width:520px) {
  .checkout-step .payment-grid {
    grid-template-columns:1fr
  }
  .checkout-step .payment-option>.payment-card {
    min-height:92px;
    padding:13px 42px 13px 12px;
    gap:11px
  }
  .checkout-step .payment-option .payment-logo {
    flex-basis:88px;
    width:88px;
    height:54px;
    min-height:54px
  }
  .checkout-step .payment-option .payment-card-copy strong {
    font-size:16px
  }
  .checkout-step .payment-option .payment-card-copy small {
    font-size:15px
  }
  .payment-badge {
    grid-template-columns:58px 1fr;
    column-gap:9px;
    padding:10px
  }
  .payment-badge .payment-logo {
    width:58px;
    height:50px;
    padding:3px
  }
  .payment-badge .payment-logo .brand-logo {
    font-size:13px
  }
  .payment-badge .payment-logo .brand-logo-chime,.payment-badge .payment-logo .brand-logo-zelle {
    font-size:15px
  }
  .payment-badge .payment-logo .brand-logo-cash,.payment-badge .payment-logo .brand-logo-gift {
    font-size:10px
  }

}
@media(max-width:520px) {
  .payment-badge {
    display:flex;
    min-height:126px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:12px 8px;
    text-align:center
  }
  .payment-badge .payment-logo {
    flex:0 0 auto;
    width:104px;
    height:46px;
    padding:5px;
    border:0;
    border-radius:7px;
    background:#f6efea
  }
  .payment-badge .payment-logo .brand-logo {
    font-size:16px
  }
  .payment-badge .payment-logo .brand-logo-chime,.payment-badge .payment-logo .brand-logo-zelle {
    font-size:18px
  }
  .payment-badge .payment-logo .brand-logo-cash {
    font-size:11px
  }
  .payment-badge .payment-logo .brand-logo-gift {
    font-size:11px
  }
  .payment-badge-name {
    display:block;
    font-size:15px;
    line-height:1.25
  }
  .payment-badge-note {
    display:block;
    font-size:15px;
    line-height:1.25
  }

}
/* Footer payment cards use the logo as the method label, with no repeated name. */
.footer-payments .payment-badges {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px
}
.footer-payments .payment-badge {
  min-height:92px;
  display:grid;
  grid-template-columns:104px minmax(0,1fr);
  grid-template-rows:1fr;
  align-items:center;
  justify-items:stretch;
  column-gap:16px;
  padding:15px 18px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:8px;
  background:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
  text-align:left
}
.footer-payments .payment-badge .payment-logo {
  grid-column:1;
  grid-row:1;
  width:104px;
  height:58px;
  min-height:58px;
  padding:6px;
  border:0;
  border-radius:7px;
  background:#f6efea
}
.footer-payments .payment-badge .payment-badge-note {
  grid-column:2;
  grid-row:1;
  color:#766c65;
  font-size:15px;
  line-height:1.45
}
@media(max-width:800px) {
  .footer-payments .payment-badges {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px
  }

}
@media(max-width:520px) {
  .footer-payments .payment-badge {
    min-height:112px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:8px;
    padding:10px 7px;
    text-align:center
  }
  .footer-payments .payment-badge .payment-logo {
    flex:0 0 auto;
    width:104px;
    height:48px;
    min-height:48px
  }
  .footer-payments .payment-badge .payment-badge-note {
    font-size:15px;
    line-height:1.25
  }

}
/* Group studio contact details with the brand in the footer. */
.footer-main {
  grid-template-columns:2fr 1fr 1fr
}
.footer-contact-block {
  margin-top:26px;
  padding-top:20px;
  border-top:1px solid #5d554f
}
.footer-contact-block h4 {
  margin:0 0 12px
}
.footer-contact-block>a {
  display:block;
  margin:8px 0;
  color:#c7beb8;
  font-size:15px;
  overflow-wrap:anywhere
}
.footer-contact-block address {
  margin-top:12px;
  color:#c7beb8;
  font-size:15px;
  line-height:1.7;
  font-style:normal
}
.footer-main .footer-socials {
  margin-top:22px
}
@media(max-width:800px) {
  .footer-main {
    grid-template-columns:1fr 1fr
  }
  .footer-main>div:first-child {
    grid-column:1/-1
  }

}
/* Cart product cards and clear remove controls. */
.cart-page {
  max-width:1360px
}
.cart-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:42px
}
.cart-heading .text-link {
  margin-bottom:9px
}
.cart-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  align-items:start;
  gap:34px
}
.cart-list {
  display:grid;
  gap:14px;
  margin:0;
  border:0
}
.cart-row {
  display:grid;
  grid-template-columns:112px minmax(0,1fr) 144px 100px;
  align-items:center;
  gap:20px;
  min-width:0;
  padding:16px;
  background:#fff;
  border:1px solid #eee7e1;
  border-radius:8px;
  box-shadow:0 7px 22px rgba(55,42,36,.045)
}
.cart-thumb {
  width:112px;
  height:132px;
  overflow:hidden;
  border-radius:5px;
  background:#f2ebe5
}
.cart-thumb img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease
}
.cart-row:hover .cart-thumb img {
  transform:scale(1.035)
}
.cart-item-info {
  min-width:0
}
.cart-category {
  margin:0 0 5px;
  color:var(--rose-dark);
  font-size:15px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase
}
.cart-item-info h2 {
  font-family:var(--sans);
  font-size:20px;
  font-weight:800;
  line-height:1.3;
  letter-spacing:-.025em
}
.cart-item-info h2 a:hover {
  color:var(--rose-dark)
}
.cart-description {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  margin:7px 0 10px;
  color:var(--muted);
  font-size:15px;
  line-height:1.5
}
.cart-item-tags {
  display:flex;
  flex-wrap:wrap;
  gap:7px
}
.cart-tag {
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:4px 9px;
  border:1px solid #eee5df;
  border-radius:20px;
  color:#776d67;
  font-size:15px;
  line-height:1.2
}
.cart-tag.cart-sex {
  border-color:#e3cec7;
  background:#fbf5f2;
  color:var(--rose-dark);
  font-weight:800;
  text-transform:uppercase
}
.cart-item-pricing {
  display:grid;
  gap:12px;
  align-content:center
}
.cart-item-pricing>div {
  display:grid;
  gap:2px
}
.cart-item-pricing span {
  color:var(--muted);
  font-size:15px
}
.cart-item-pricing strong {
  color:var(--ink);
  font-size:17px;
  font-weight:700
}
.cart-item-pricing .cart-subtotal strong {
  color:var(--rose-dark);
  font-size:20px;
  font-weight:800
}
.cart-row .remove {
  justify-self:end;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:42px;
  padding:0 12px;
  border:1px solid #ead7d1;
  border-radius:5px;
  background:#fff;
  color:#965d57;
  font-size:15px;
  font-weight:700;
  transition:background .18s ease,border-color .18s ease,color .18s ease
}
.cart-row .remove svg {
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round
}
.cart-row .remove:hover {
  border-color:#a9635d;
  background:#a9635d;
  color:#fff
}
.cart-row .remove:focus-visible {
  outline:3px solid rgba(149,92,87,.3);
  outline-offset:2px
}
.cart-summary {
  position:sticky;
  top:108px;
  padding:24px;
  background:#fff;
  border:1px solid #eee7e1;
  border-radius:8px;
  box-shadow:0 7px 22px rgba(55,42,36,.045)
}
.cart-summary>.eyebrow {
  margin-bottom:18px
}
.cart-summary>div:not(.cart-total) {
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding-bottom:16px;
  color:var(--muted);
  font-size:15px
}
.cart-summary .cart-total {
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin:0 0 20px;
  padding:16px 0;
  border-top:1px solid var(--line);
  font-size:18px
}
.cart-summary .cart-total strong {
  font-size:24px;
  font-weight:800
}
.cart-summary .button {
  font-size:15px
}
.cart-summary-note {
  margin:15px 0 0;
  color:var(--muted);
  font-size:15px;
  text-align:center
}
.cart-empty {
  margin-top:28px;
  padding:58px 32px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff
}
@media(max-width:1000px) {
  .cart-layout {
    grid-template-columns:minmax(0,1fr) 270px;
    gap:20px
  }
  .cart-row {
    grid-template-columns:96px minmax(0,1fr) 118px;
    gap:14px;
    padding:13px
  }
  .cart-thumb {
    width:96px;
    height:116px
  }
  .cart-row .remove {
    grid-column:2/-1;
    grid-row:2;
    justify-self:end
  }
  .cart-item-pricing {
    grid-column:3;
    grid-row:1/3
  }
  .cart-item-info {
    grid-column:2;
    grid-row:1
  }
  .cart-summary {
    padding:20px
  }

}
@media(max-width:760px) {
  .cart-heading {
    display:block;
    margin-bottom:30px
  }
  .cart-heading .text-link {
    display:inline-block;
    margin:20px 0 0
  }
  .cart-layout {
    grid-template-columns:1fr;
    gap:22px
  }
  .cart-row {
    grid-template-columns:86px minmax(0,1fr);
    grid-template-areas:"image info" "image pricing" "image remove";
    align-items:start;
    gap:10px 14px;
    padding:12px
  }
  .cart-thumb {
    grid-area:image;
    width:86px;
    height:112px
  }
  .cart-item-info {
    grid-area:info
  }
  .cart-item-info h2 {
    font-size:17px
  }
  .cart-category {
    font-size:15px
  }
  .cart-description {
    font-size:15px;
    margin:5px 0 8px
  }
  .cart-item-tags {
    gap:5px
  }
  .cart-tag {
    min-height:25px;
    padding:3px 7px;
    font-size:15px
  }
  .cart-item-pricing {
    grid-area:pricing;
    display:flex;
    align-items:center;
    gap:18px
  }
  .cart-item-pricing>div {
    display:flex;
    align-items:baseline;
    gap:6px
  }
  .cart-item-pricing span {
    font-size:15px
  }
  .cart-item-pricing strong {
    font-size:15px
  }
  .cart-item-pricing .cart-subtotal {
    display:none
  }
  .cart-row .remove {
    grid-area:remove;
    grid-column:auto;
    grid-row:auto;
    justify-self:start;
    min-height:38px;
    padding:0 10px
  }
  .cart-summary {
    position:static
  }
  .cart-summary .button {
    width:100%
  }

}
@media(max-width:420px) {
  .cart-row {
    grid-template-columns:72px minmax(0,1fr);
    gap:9px 11px
  }
  .cart-thumb {
    width:72px;
    height:100px
  }
  .cart-item-info h2 {
    font-size:16px
  }
  .cart-description {
    font-size:15px
  }
  .cart-item-pricing {
    gap:12px
  }
  .cart-item-pricing>div {
    gap:4px
  }
  .cart-row .remove {
    min-height:36px
  }

}
/* Cart rows stay focused on the catalog identity and essential order amounts. */
.cart-description {
  display:none
}
.cart-item-pricing {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:0
}
.cart-item-pricing>div {
  display:none
}
.cart-item-pricing>strong {
  color:var(--rose-dark);
  font-size:19px;
  font-weight:800
}
@media(max-width:760px) {
  .cart-item-pricing {
    justify-content:flex-start
  }
  .cart-item-pricing>strong {
    font-size:16px
  }
  .cart-row .remove {
    justify-self:end
  }

}
/* Product detail galleries use the saved ProductImage records as selectable views. */
.detail-gallery {
  min-width:0
}
.detail-gallery .detail-image {
  overflow:hidden;
  border-radius:3px
}
.detail-thumbnails {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(76px,1fr));
  gap:10px;
  margin-top:12px
}
.detail-thumbnail {
  display:block;
  aspect-ratio:1;
  border:1px solid #e8dfd7;
  border-radius:3px;
  padding:3px;
  background:#fff;
  overflow:hidden;
  cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease
}
.detail-thumbnail img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover
}
.detail-thumbnail:hover,.detail-thumbnail.is-active {
  border-color:var(--rose-dark);
  box-shadow:0 0 0 1px var(--rose-dark)
}
.detail-thumbnail:focus-visible {
  outline:3px solid rgba(149,92,87,.32);
  outline-offset:2px
}
@media(max-width:760px) {
  .detail-thumbnails {
    grid-template-columns:repeat(auto-fill,minmax(62px,1fr));
    gap:8px
  }

}
/* Keep the cart sex label plain and slightly quieter than the product name. */
.cart-tag.cart-sex {
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--rose-dark);
  font-size:14px;
  font-weight:700
}
@media(max-width:760px) {
  .cart-tag.cart-sex {
    font-size:14px
  }

}
/* Coordinated quantity steppers for product details and cart rows. */
.quantity-control {
  display:inline-grid;
  grid-template-columns:38px 48px 38px;
  align-items:center;
  height:44px;
  border:1px solid #e6d9d1;
  border-radius:4px;
  background:#fff;
  overflow:hidden
}
.quantity-control button {
  height:100%;
  border:0;
  background:#fbf8f5;
  color:var(--rose-dark);
  font-size:21px;
  line-height:1;
  transition:background .18s ease,color .18s ease
}
.quantity-control button:hover {
  background:var(--rose-dark);
  color:#fff
}
.quantity-control input {
  width:100%;
  height:100%;
  border:0;
  border-inline:1px solid #eee7e1;
  border-radius:0;
  background:#fff;
  color:var(--ink);
  font-size:16px;
  font-weight:700;
  text-align:center;
  appearance:textfield;
  -moz-appearance:textfield
}
.quantity-control input::-webkit-inner-spin-button,.quantity-control input::-webkit-outer-spin-button {
  -webkit-appearance:none;
  margin:0
}
.quantity-control input:focus {
  outline:2px solid var(--rose);
  outline-offset:-2px
}
.quantity-control input:disabled {
  opacity:.6
}
.detail-buy-row {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:stretch;
  gap:12px;
  margin-top:22px
}
.detail-buy-row .button {
  margin:0
}
.cart-item-pricing {
  justify-items:end;
  gap:10px
}
.cart-quantity {
  grid-template-columns:32px 38px 32px;
  height:38px
}
.cart-quantity button {
  font-size:19px
}
.cart-quantity input {
  font-size:15px
}
@media(max-width:760px) {
  .cart-item-pricing {
    align-items:flex-start;
    justify-items:start;
    flex-direction:column;
    gap:8px
  }
  .cart-quantity {
    grid-template-columns:31px 38px 31px;
    height:36px
  }

}
.detail-buy-row {
  grid-template-columns:minmax(118px,auto) minmax(0,1fr)
}
.detail-buy-row>.quantity-control,.detail-buy-row>.button {
  height:48px;
  min-height:48px
}
.detail-buy-row>.button {
  padding-top:0;
  padding-bottom:0
}
@media(max-width:420px) {
  .detail-buy-row {
    grid-template-columns:minmax(112px,auto) minmax(0,1fr);
    gap:8px
  }
  .detail-buy-row>.quantity-control,.detail-buy-row>.button {
    height:46px;
    min-height:46px
  }
  .detail-buy-row>.quantity-control {
    grid-template-columns:32px 40px 32px
  }

}
/* Compact footer payment methods that sit quietly against the footer surface. */
.footer-payments .payment-badges {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px
}
.footer-payments .payment-badge {
  min-height:62px;
  grid-template-columns:58px minmax(0,1fr);
  column-gap:9px;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:5px;
  background:rgba(255,255,255,.055);
  box-shadow:none;
  color:#eee5df
}
.footer-payments .payment-badge .payment-logo {
  grid-column:1;
  grid-row:1;
  width:58px;
  height:38px;
  min-height:38px;
  padding:3px;
  border:0;
  border-radius:3px;
  background:rgba(255,255,255,.10)
}
.footer-payments .payment-badge .payment-logo .brand-logo {
  font-size:12px
}
.footer-payments .payment-badge .payment-logo .brand-logo-chime,.footer-payments .payment-badge .payment-logo .brand-logo-zelle {
  font-size:14px
}
.footer-payments .payment-badge .payment-logo .brand-logo-cash,.footer-payments .payment-badge .payment-logo .brand-logo-gift {
  font-size:10px
}
.footer-payments .payment-badge .payment-badge-note {
  grid-column:2;
  grid-row:1;
  color:#d2c7c0;
  font-size:13px;
  line-height:1.3
}
@media(max-width:800px) {
  .footer-payments .payment-badges {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px
  }

}
@media(max-width:520px) {
  .footer-payments .payment-badges {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px
  }
  .footer-payments .payment-badge {
    min-height:58px;
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    column-gap:7px;
    padding:7px
  }
  .footer-payments .payment-badge .payment-logo {
    width:48px;
    height:34px;
    min-height:34px
  }
  .footer-payments .payment-badge .payment-badge-note {
    font-size:12px;
    text-align:left
  }

}
/* Checkout-quality wordmarks in compact footer tiles that blend into the footer. */
.footer-payments {
  max-width:1240px;
  margin:40px auto 0;
  padding-top:24px;
  border-top:1px solid #5d554f
}
.footer-payments h4 {
  margin:0 0 15px;
  color:#d9a69b;
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase
}
.footer-payments .payment-badges {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px
}
.footer-payments .payment-badge {
  display:grid;
  grid-template-columns:74px minmax(0,1fr);
  grid-template-rows:1fr;
  align-items:center;
  justify-items:stretch;
  column-gap:11px;
  min-height:66px;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:6px;
  background:rgba(255,255,255,.045);
  box-shadow:none;
  text-align:left
}
.footer-payments .payment-badge .payment-logo {
  grid-column:1;
  grid-row:1;
  display:grid;
  place-items:center;
  width:74px;
  height:46px;
  min-height:46px;
  padding:5px;
  border:0;
  border-radius:5px;
  background:#f7f2ed
}
.footer-payments .payment-badge .payment-logo .brand-logo {
  max-width:100%;
  gap:3px;
  font-size:15px;
  letter-spacing:-.04em;
  white-space:nowrap
}
.footer-payments .payment-badge .payment-logo .brand-logo-chime {
  font-size:18px;
  color:#009b62
}
.footer-payments .payment-badge .payment-logo .brand-logo-zelle {
  font-size:18px;
  color:#6d1ed4
}
.footer-payments .payment-badge .payment-logo .brand-logo-apple {
  font-size:14px;
  color:#111
}
.footer-payments .payment-badge .payment-logo .brand-logo-apple svg {
  width:16px;
  height:19px
}
.footer-payments .payment-badge .payment-logo .brand-logo-cash {
  font-size:10px;
  color:#101010
}
.footer-payments .payment-badge .payment-logo .brand-logo-cash svg,.footer-payments .payment-badge .payment-logo .brand-logo-gift svg {
  width:19px;
  height:19px
}
.footer-payments .payment-badge .payment-logo .brand-logo-gift {
  font-size:10px;
  color:#7c4b29
}
.footer-payments .payment-badge .payment-logo .brand-logo-paypal {
  font-size:14px;
  color:#1352a0
}
.footer-payments .payment-badge .payment-logo .brand-logo-paypal svg {
  width:16px;
  height:20px
}
.footer-payments .payment-badge .payment-badge-note {
  grid-column:2;
  grid-row:1;
  color:#d2c7c0;
  font-size:12px;
  line-height:1.3
}
@media(max-width:800px) {
  .footer-payments .payment-badges {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

}
@media(max-width:520px) {
  .footer-payments .payment-badges {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px
  }
  .footer-payments .payment-badge {
    display:grid;
    grid-template-columns:56px minmax(0,1fr);
    min-height:58px;
    column-gap:7px;
    padding:6px
  }
  .footer-payments .payment-badge .payment-logo {
    width:56px;
    height:38px;
    min-height:38px;
    padding:3px
  }
  .footer-payments .payment-badge .payment-logo .brand-logo {
    font-size:12px
  }
  .footer-payments .payment-badge .payment-logo .brand-logo-chime,.footer-payments .payment-badge .payment-logo .brand-logo-zelle {
    font-size:14px
  }
  .footer-payments .payment-badge .payment-badge-note {
    font-size:11px;
    text-align:left
  }

}
.footer-payments .payment-badge-logo-only {
  display:grid;
  grid-template-columns:1fr;
  place-items:center;
  min-height:56px;
  padding:4px;
  border-color:rgba(255,255,255,.12);
  background:rgba(255,255,255,.035)
}
.footer-payments .payment-badge-logo-only .payment-logo {
  grid-column:1;
  grid-row:1;
  width:100%;
  height:44px;
  min-height:44px;
  padding:0;
  border-radius:4px;
  background:transparent
}
.footer-payments .payment-badge-logo-only .payment-logo .brand-logo {
  font-size:17px
}
.footer-payments .payment-badge-logo-only .payment-logo .brand-logo-chime,.footer-payments .payment-badge-logo-only .payment-logo .brand-logo-zelle {
  font-size:19px
}
.footer-payments .payment-badge-logo-only .payment-logo .brand-logo-cash,.footer-payments .payment-badge-logo-only .payment-logo .brand-logo-gift {
  font-size:12px
}
@media(max-width:520px) {
  .footer-payments .payment-badge-logo-only {
    min-height:48px;
    padding:2px
  }
  .footer-payments .payment-badge-logo-only .payment-logo {
    width:100%;
    height:40px;
    min-height:40px;
    padding:0
  }
  .footer-payments .payment-badge-logo-only .payment-logo .brand-logo {
    font-size:15px
  }

}
.footer-payments .payment-badge-logo-only {
  min-height:43px;
  padding:3px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.025);
  box-shadow:none
}
.footer-payments .payment-badge-logo-only .payment-logo {
  height:34px;
  min-height:34px;
  border-radius:4px
}
.footer-payments .payment-badge-logo-only:nth-child(1) .payment-logo {
  background:rgba(0,155,98,.10)
}
.footer-payments .payment-badge-logo-only:nth-child(2) .payment-logo {
  background:rgba(109,30,212,.10)
}
.footer-payments .payment-badge-logo-only:nth-child(3) .payment-logo {
  background:rgba(255,255,255,.10)
}
.footer-payments .payment-badge-logo-only:nth-child(4) .payment-logo {
  background:rgba(0,214,50,.10)
}
.footer-payments .payment-badge-logo-only:nth-child(5) .payment-logo {
  background:rgba(194,122,64,.12)
}
.footer-payments .payment-badge-logo-only:nth-child(6) .payment-logo {
  background:rgba(25,118,210,.12)
}
.footer-payments .payment-badge-logo-only .payment-logo .brand-logo {
  font-size:14px
}
.footer-payments .payment-badge-logo-only .payment-logo .brand-logo-chime,.footer-payments .payment-badge-logo-only .payment-logo .brand-logo-zelle {
  font-size:16px
}
@media(max-width:520px) {
  .footer-payments .payment-badge-logo-only {
    min-height:38px
  }
  .footer-payments .payment-badge-logo-only .payment-logo {
    height:30px;
    min-height:30px
  }
  .footer-payments .payment-badge-logo-only .payment-logo .brand-logo {
    font-size:13px
  }

}
@media(min-width:521px) {
  .footer-payments .payment-badge-logo-only {
    min-height:36px;
    padding:0;
    border:0;
    background:transparent
  }
  .footer-payments .payment-badge-logo-only .payment-logo {
    height:32px;
    min-height:32px;
    background:#fff
  }

}
/* Custom studio dashboard */
.dashboard-shell {
  min-height:100vh;
  background:#f6f3f0;
  color:#352f2c;
  font-family:'Manrope',Arial,sans-serif;
  line-height:1.55
}
.dash-sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:250px;
  display:flex;
  flex-direction:column;
  padding:25px 18px;
  background:#302b29;
  color:#f8f4ef;
  z-index:5
}
.dash-brand {
  display:flex;
  align-items:center;
  gap:10px;
  padding:3px 8px 28px;
  color:#fff;
  font-size:14px;
  font-weight:800;
  line-height:1.25
}
.dash-brand>span:first-child {
  color:#d9a69b;
  font-size:31px
}
.dash-brand small {
  display:block;
  margin-top:4px;
  color:#c1b5ae;
  font-size:11px;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase
}
.dash-sidebar nav {
  display:grid;
  gap:5px
}
.dash-sidebar nav p {
  margin:18px 10px 5px;
  color:#9e928b;
  font-size:10px;
  font-weight:800;
  letter-spacing:.15em
}
.dash-sidebar nav a,.dash-signout {
  display:block;
  padding:11px 12px;
  border:0;
  border-radius:5px;
  background:transparent;
  color:#e8dfd9;
  font-size:14px;
  font-weight:600;
  text-align:left
}
.dash-sidebar nav a:hover,.dash-signout:hover {
  background:rgba(255,255,255,.09);
  color:#fff
}
.dash-sidebar form {
  margin-top:auto
}
.dash-main {
  min-height:100vh;
  margin-left:250px
}
.dash-top {
  height:65px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 clamp(22px,4vw,55px);
  border-bottom:1px solid #e6dfda;
  background:#fff;
  font-size:13px;
  color:#847871
}
.dash-top strong {
  color:#4a403a;
  font-size:13px
}
.dash-content {
  max-width:1440px;
  margin:0 auto;
  padding:36px clamp(22px,4vw,55px) 70px
}
.dash-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:28px
}
.dash-heading h1,.dash-confirm h1 {
  font-family:'Manrope',Arial,sans-serif;
  font-size:clamp(28px,3vw,38px);
  font-weight:800;
  letter-spacing:-.045em;
  color:#342d2a
}
.dash-heading p:not(.dash-eyebrow) {
  margin:7px 0 0;
  color:#837871;
  font-size:14px
}
.dash-eyebrow {
  margin:0 0 6px;
  color:#a5665e;
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase
}
.dash-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 17px;
  border:1px solid #a96d64;
  border-radius:5px;
  background:#a96d64;
  color:#fff;
  font-size:13px;
  font-weight:800;
  cursor:pointer
}
.dash-button:hover {
  background:#89554e;
  color:#fff
}
.dash-button.secondary {
  border-color:#e3d9d3;
  background:#fff;
  color:#514741
}
.dash-button.danger {
  border-color:#a34945;
  background:#a34945
}
.dash-button.small {
  min-height:34px;
  padding:0 12px;
  font-size:12px
}
.dash-text-link,.dash-panel-head>a {
  color:#9a5f57;
  font-size:13px;
  font-weight:700
}
.dash-stats {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:0 0 24px
}
.dash-stats>a {
  display:block;
  padding:19px 20px;
  border:1px solid #e9e2dd;
  border-radius:7px;
  background:#fff;
  box-shadow:0 5px 15px rgba(52,40,34,.035)
}
.dash-stats span,.dash-stats small {
  display:block;
  color:#877c75;
  font-size:12px
}
.dash-stats strong {
  display:block;
  margin:9px 0;
  font-size:32px;
  line-height:1;
  font-weight:800;
  letter-spacing:-.04em
}
.dash-panel,.dash-form {
  padding:22px;
  border:1px solid #e9e2dd;
  border-radius:7px;
  background:#fff;
  box-shadow:0 5px 15px rgba(52,40,34,.035)
}
.dash-panel h2,.dash-form h2 {
  margin:0 0 16px;
  font-size:18px;
  font-weight:800;
  letter-spacing:-.02em
}
.dash-panel-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px
}
.dash-panel-head h2 {
  margin:0;
  font-size:18px
}
.dash-panel-head p {
  margin:3px 0 0;
  color:#897f78;
  font-size:12px
}
.dash-table-wrap {
  width:100%;
  overflow:auto
}
.dash-table {
  width:100%;
  border-collapse:collapse;
  font-size:13px;
  white-space:nowrap
}
.dash-table th {
  padding:11px 12px;
  border-bottom:1px solid #eae3de;
  color:#92877f;
  font-size:10px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase
}
.dash-table td {
  padding:14px 12px;
  border-bottom:1px solid #f0ebe7;
  color:#514943;
  vertical-align:middle
}
.dash-table tbody tr:last-child td {
  border-bottom:0
}
.dash-table td a {
  color:#945d55;
  font-weight:800
}
.dash-subline {
  display:block;
  margin-top:3px;
  color:#92877f;
  font-size:11px;
  font-weight:400
}
.dash-status {
  display:inline-flex;
  padding:5px 9px;
  border-radius:20px;
  background:#f2eee9;
  color:#756a63;
  font-size:11px;
  font-weight:800
}
.status-pending {
  background:#fbf1dc;
  color:#9a712a
}
.status-processing {
  background:#e8f1f4;
  color:#4f7785
}
.status-completed,.status-in_stock {
  background:#e8f3ec;
  color:#477854
}
.status-cancelled,.status-out_of_stock {
  background:#f7e9e7;
  color:#a35750
}
.status-sold {
  background:#f0ebf6;
  color:#765d91
}
.dash-empty {
  padding:35px!important;
  color:#8b817a!important;
  text-align:center
}
.dash-quicklinks {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:16px
}
.dash-quicklinks a {
  display:grid;
  gap:5px;
  padding:18px 20px;
  border:1px solid #e9e2dd;
  border-radius:7px;
  background:#fff
}
.dash-quicklinks strong {
  font-size:14px
}
.dash-quicklinks span {
  color:#887d76;
  font-size:12px
}
.dash-search {
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:17px
}
.dash-search input,.dash-search select {
  min-height:40px;
  padding:0 12px;
  border:1px solid #e3dad4;
  border-radius:4px;
  background:#fff;
  color:#473e39
}
.dash-search input {
  width:min(360px,100%)
}
.dash-search label,.dash-search a {
  color:#8a7e76;
  font-size:13px
}
.dash-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:13px
}
.dash-actions a {
  font-size:12px
}
.dash-actions .dash-danger {
  color:#a44e49
}
.dash-danger-button {
  border:0;
  background:none;
  color:#a44e49;
  font-size:12px;
  font-weight:800;
  cursor:pointer
}
.dash-form {
  max-width:1040px
}
.dash-form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:17px 20px
}
.dash-field {
  display:grid;
  gap:7px;
  min-width:0
}
.dash-field.wide {
  grid-column:1/-1
}
.dash-field label {
  color:#5f554f;
  font-size:12px;
  font-weight:800
}
.dash-field input,.dash-field select,.dash-field textarea {
  width:100%;
  min-height:42px;
  padding:10px 12px;
  border:1px solid #e3dad4;
  border-radius:4px;
  background:#fff;
  color:#403833;
  font:14px 'Manrope',Arial,sans-serif
}
.dash-field textarea {
  resize:vertical
}
.dash-field input[type=checkbox] {
  width:18px;
  min-height:18px;
  accent-color:#a96d64
}
.dash-field small,.dash-field .helptext {
  color:#8f847d;
  font-size:11px
}
.dash-field ul.errorlist,.dash-errors {
  margin:0;
  color:#a34945;
  font-size:12px
}
.dash-form-actions {
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:22px
}
.dash-two-col {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);
  align-items:start;
  gap:18px
}
.dash-two-col>.dash-form {
  max-width:none
}
.dash-two-col>.dash-panel p {
  color:#756b65;
  font-size:13px;
  line-height:1.7
}
.dash-order-total {
  display:flex;
  justify-content:space-between;
  padding-top:16px;
  font-size:15px
}
.dash-order-total strong {
  font-size:19px;
  color:#9a5f57
}
.dash-review-list {
  display:grid;
  gap:14px
}
.dash-review {
  padding:19px
}
.dash-review-head {
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:18px
}
.dash-review-head strong,.dash-review-head span {
  display:block
}
.dash-review-head>div>span {
  margin-top:4px;
  color:#8b8079;
  font-size:12px
}
.dash-review>p {
  color:#635952;
  font-size:14px;
  line-height:1.7
}
.dash-review>small {
  color:#8b8079
}
.review-actions {
  justify-content:flex-start;
  margin-top:15px
}
.review-actions form {
  margin:0
}
.dash-confirm {
  max-width:620px;
  margin:60px auto
}
.dash-confirm>p:not(.dash-eyebrow) {
  color:#827871
}
.dash-confirm form {
  display:flex;
  align-items:center;
  gap:20px;
  margin-top:22px
}
.dashboard-login {
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:#f6f3f0;
  font-family:'Manrope',Arial,sans-serif
}
.dash-login-card {
  width:min(440px,100%);
  padding:36px;
  border:1px solid #e9e2dd;
  border-radius:8px;
  background:#fff;
  box-shadow:0 15px 45px rgba(52,40,34,.08)
}
.dash-login-card>.dash-brand {
  margin-bottom:30px;
  padding:0;
  color:#3f3935
}
.dash-login-card .dash-brand small {
  color:#887d76
}
.dash-login-card h1 {
  margin:0;
  font-size:30px
}
.dash-login-card>p:not(.dash-eyebrow) {
  margin:8px 0 20px;
  color:#847a73;
  font-size:13px
}
.dash-login-card .dash-form {
  padding:0;
  border:0;
  box-shadow:none
}
.dash-login-card .dash-field {
  margin-bottom:15px
}
.dash-login-card .dash-button {
  width:100%;
  margin-top:4px
}
.dash-messages {
  padding:0 clamp(22px,4vw,55px)
}
.dash-messages p {
  padding:11px 14px;
  border-radius:4px;
  background:#e8f3ec;
  color:#477854;
  font-size:13px
}
@media(max-width:1000px) {
  .dash-sidebar {
    width:215px
  }
  .dash-main {
    margin-left:215px
  }
  .dash-stats {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .dash-two-col {
    grid-template-columns:1fr
  }

}
@media(max-width:700px) {
  .dash-sidebar {
    position:static;
    width:auto;
    padding:12px 15px
  }
  .dash-brand {
    padding:5px 5px 12px
  }
  .dash-sidebar nav {
    display:flex;
    flex-wrap:wrap;
    gap:4px
  }
  .dash-sidebar nav p {
    display:none
  }
  .dash-sidebar nav a {
    padding:8px 9px;
    font-size:12px
  }
  .dash-sidebar form {
    position:absolute;
    right:14px;
    top:15px;
    margin:0
  }
  .dash-signout {
    padding:6px 8px;
    font-size:12px
  }
  .dash-top {
    height:48px;
    padding:0 18px
  }
  .dash-content {
    padding:25px 16px 45px
  }
  .dash-heading {
    align-items:start;
    flex-direction:column
  }
  .dash-heading .dash-button {
    align-self:stretch
  }
  .dash-stats {
    gap:9px
  }
  .dash-stats>a {
    padding:14px
  }
  .dash-stats strong {
    font-size:27px
  }
  .dash-quicklinks {
    grid-template-columns:1fr
  }
  .dash-panel,.dash-form {
    padding:16px
  }
  .dash-form-grid {
    grid-template-columns:1fr
  }
  .dash-field.wide {
    grid-column:auto
  }
  .dash-search {
    flex-wrap:wrap
  }
  .dash-search input {
    flex:1 1 100%;
    width:100%
  }
  .dash-actions {
    gap:9px
  }
  .dash-table {
    min-width:650px
  }
  .dash-login-card {
    padding:26px
  }

}
@media(max-width:700px) {
  .dash-sidebar {
    display:block
  }
  .dash-sidebar form {
    position:static;
    margin:8px 0 0 auto;
    text-align:right
  }

}
.dash-specifications {
  margin-top:27px;
  padding-top:23px;
  border-top:1px solid #eee7e2
}
.dash-spec-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-bottom:14px
}
.dash-spec-head h2 {
  margin:0;
  font-size:17px;
  font-weight:800
}
.dash-spec-head p {
  margin:4px 0 0;
  color:#887d76;
  font-size:12px
}
.dash-spec-list {
  display:grid;
  gap:10px
}
.dash-spec-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 72px;
  align-items:end;
  gap:12px;
  padding:12px;
  border:1px solid #eee7e2;
  border-radius:5px;
  background:#fcfaf8
}
.dash-spec-row[hidden] {
  display:none
}
.dash-spec-delete {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px
}
.dash-spec-delete input {
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none
}
.dash-current-cover {
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:4px;
  color:#887d76;
  font-size:12px
}
.dash-current-cover img {
  width:58px;
  height:68px;
  object-fit:cover;
  border:1px solid #e6ddd7;
  border-radius:4px;
  background:#f5f0ec
}
@media(max-width:700px) {
  .dash-spec-head {
    align-items:start;
    flex-direction:column
  }
  .dash-spec-row {
    grid-template-columns:1fr 1fr;
    gap:10px
  }
  .dash-spec-delete {
    grid-column:1/-1;
    justify-content:flex-end;
    min-height:30px
  }

}
.dash-gallery-preview {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:6px
}
.dash-gallery-preview img {
  width:58px;
  height:68px;
  object-fit:cover;
  border:1px solid #e6ddd7;
  border-radius:4px;
  background:#f5f0ec
}

/* Dashboard navigation and compact layouts */
.dash-sidebar-top {
  display:flex;
  align-items:flex-start;
  justify-content:space-between
}
.dash-nav-toggle,.dash-nav-close,.dash-nav-shade {
  display:none
}
.dash-main,.dash-content,.dash-panel,.dash-form {
  min-width:0
}
.dash-table-wrap {
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch
}

@media(max-width:760px) {
  .dash-sidebar {
    position:fixed;
    inset:0 auto 0 0;
    width:min(310px,86vw);
    padding:20px 18px;
    overflow-y:auto;
    transform:translateX(-105%);
    transition:transform .25s ease;
    box-shadow:12px 0 35px rgba(25,20,18,.18);
    z-index:31
  }
  .dashboard-nav-open .dash-sidebar {
    transform:translateX(0)
  }
  .dashboard-nav-open {
    overflow:hidden
  }
  .dash-sidebar-top {
    align-items:center
  }
  .dash-brand {
    padding:3px 4px 24px
  }
  .dash-nav-close {
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    margin:0 0 20px 8px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:50%;
    background:transparent;
    color:#fff;
    font-size:25px;
    line-height:1;
    cursor:pointer
  }
  .dash-sidebar nav {
    display:grid;
    gap:5px
  }
  .dash-sidebar nav p {
    display:block;
    margin-top:17px
  }
  .dash-sidebar nav a {
    padding:11px 12px;
    font-size:14px
  }
  .dash-sidebar form {
    position:static;
    margin:24px 0 0;
    text-align:left
  }
  .dash-signout {
    padding:10px 12px
  }
  .dash-nav-toggle {
    display:flex;
    flex:0 0 40px;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:40px;
    height:40px;
    padding:9px;
    border:1px solid #e8dfda;
    border-radius:5px;
    background:#fff;
    cursor:pointer
  }
  .dash-nav-toggle span {
    display:block;
    width:100%;
    height:2px;
    border-radius:2px;
    background:#554943
  }
  .dash-nav-shade {
    position:fixed;
    inset:0;
    z-index:30;
    border:0;
    background:rgba(31,25,22,.48);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease
  }
  .dashboard-nav-open .dash-nav-shade {
    display:block;
    opacity:1;
    pointer-events:auto
  }
  .dash-main {
    margin-left:0
  }
  .dash-top {
    position:sticky;
    top:0;
    z-index:10;
    height:60px;
    justify-content:flex-start;
    gap:12px;
    padding:0 16px;
    box-shadow:0 2px 8px rgba(52,40,34,.035)
  }
  .dash-top-label {
    flex:1;
    color:#847871
  }
  .dash-top strong {
    max-width:36vw;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
  }
  .dash-content {
    padding:26px 18px 45px
  }
  .dash-heading {
    align-items:flex-start
  }
  .dash-heading > div {
    min-width:0
  }
  .dash-heading h1 {
    overflow-wrap:anywhere
  }
  .dash-heading .dash-button {
    align-self:flex-start
  }
  .dash-table {
    min-width:620px
  }
  .dash-search {
    align-items:stretch
  }
  .dash-search input,.dash-search select {
    min-width:0;
  }
  .dash-search input {
    flex:1 1 100%;
    width:100%
  }
}

@media(max-width:480px) {
  .dash-content {
    padding:22px 13px 36px
  }
  .dash-heading {
    gap:14px;
    margin-bottom:20px
  }
  .dash-heading h1,.dash-confirm h1 {
    font-size:27px
  }
  .dash-heading .dash-button {
    width:100%
  }
  .dash-stats {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px
  }
  .dash-stats>a {
    padding:13px 12px
  }
  .dash-stats strong {
    font-size:24px
  }
  .dash-stats span,.dash-stats small {
    font-size:11px
  }
  .dash-panel,.dash-form {
    padding:14px
  }
  .dash-panel-head,.dash-review-head {
    align-items:flex-start;
    flex-direction:column;
    gap:9px
  }
  .dash-form-actions,.dash-confirm form {
    align-items:stretch;
    flex-direction:column;
    gap:12px
  }
  .dash-form-actions .dash-button,.dash-confirm form .dash-button {
    width:100%
  }
  .dash-spec-row {
    grid-template-columns:1fr
  }
  .dash-spec-delete {
    grid-column:auto
  }
  .dash-login-card {
    padding:24px 20px
  }
}

@media(max-width:360px) {
  .dash-top {
    gap:8px;
    padding:0 10px
  }
  .dash-top-label {
    font-size:11px
  }
  .dash-top strong {
    max-width:31vw;
    font-size:11px
  }
  .dash-nav-toggle {
    flex-basis:36px;
    width:36px;
    height:36px
  }
  .dash-stats {
    grid-template-columns:1fr
  }
  .dash-content {
    padding-right:10px;
    padding-left:10px
  }
  .dash-search > * {
    width:100%
  }
  .dash-search .dash-button {
    width:100%
  }
}

@media(prefers-reduced-motion:reduce) {
  .dash-sidebar,.dash-nav-shade {
    transition:none
  }
}
.error-page {
  text-align:center;
  min-height:620px;
  padding-top:130px
}
.error-page>p:not(.eyebrow) {
  color:var(--muted);
  max-width:450px;
  margin:22px auto 32px
}
.error-page h1 {
  font-size:clamp(46px,7vw,82px)
}
.hero {
  min-height:80vh!important;
  max-height:760px!important
}
@media(max-width:800px) {
  .hero {
    min-height:520px!important;
    max-height:none!important
  }

}
.hero-dots {
  position:absolute;
  z-index:4;
  left:clamp(24px,8vw,120px);
  bottom:34px;
  display:flex;
  gap:8px
}
.hero-dots button {
  width:34px;
  height:3px;
  border:0;
  padding:0;
  background:rgba(255,255,255,.48);
  transition:background .25s,width .25s
}
.hero-dots button.active {
  width:58px;
  background:#fff
}
@media(max-width:800px) {
  .hero-dots {
    left:24px;
    bottom:22px
  }
  .hero-dots button {
    width:28px
  }
  .hero-dots button.active {
    width:45px
  }

}
