/* ================================================================
   SUCIAPOSSE SHOP — editorial brutalism / 2026
   Capa final para portada, catálogos, cesta, acceso y cuenta.
   ================================================================ */

body{
  min-width: 0 !important;
  overflow-x: clip !important;
}

.shop-home main,
.shop-line-page main,
.shop-account-shell main{
  min-width: 0;
}

.shop-home .shop-hero,
.shop-line-page .shop-hero{
  padding: clamp(34px,6vw,84px) 0 clamp(48px,7vw,96px);
  border-bottom: 1px solid var(--border);
}

.shop-home .shop-hero-grid,
.shop-line-page .shop-hero-grid{
  grid-template-columns: minmax(0,1.08fr) minmax(360px,.92fr);
  gap: 1px;
  align-items: stretch;
  border: 1px solid var(--fg);
  border-radius: 0;
  background: var(--fg);
  overflow: hidden;
}

.shop-home .shop-panel,
.shop-line-page .shop-panel,
.shop-home .shop-line-card,
.shop-home .shop-product,
.shop-home .shop-cart,
.shop-account-panel,
.shop-summary-grid,
.shop-notice{
  border-radius: 0 !important;
  box-shadow: none !important;
}

.shop-home .shop-panel,
.shop-line-page .shop-panel{
  border: 0;
  background: var(--bg);
}

.shop-home .shop-hero-copy,
.shop-line-page .shop-hero-copy{
  justify-content: space-between;
  min-height: clamp(480px,55vw,720px);
  padding: clamp(26px,5vw,68px);
}

.shop-home .shop-hero .brand-title,
.shop-line-page .shop-hero .brand-title,
.shop-home .shop-section-head .page-title,
.shop-account-shell .page-title{
  max-width: 10ch;
  margin: 0;
  font-family: var(--font) !important;
  font-size: clamp(3.8rem,9vw,8.8rem);
  font-weight: 480;
  line-height: .82;
  letter-spacing: -.075em !important;
  text-transform: lowercase !important;
  overflow-wrap: anywhere;
}

.shop-home .shop-hero-copy .kicker,
.shop-line-page .shop-hero-copy .kicker{
  margin-bottom: auto;
}

.shop-home .shop-hero-copy .hero-row,
.shop-line-page .shop-hero-copy .hero-row{
  margin-top: clamp(32px,6vw,72px);
}

.shop-home .shop-hero-media,
.shop-line-page .shop-hero-media{
  height: auto;
  min-height: clamp(480px,55vw,720px);
  overflow: hidden;
}

.shop-home .shop-hero-media img,
.shop-line-page .shop-hero-media img{
  transition: transform .9s var(--ease-editorial,cubic-bezier(.22,1,.36,1)), filter .55s ease;
}

.shop-home .shop-hero-media:hover img,
.shop-line-page .shop-hero-media:hover img{
  transform: scale(1.035);
}

.shop-home .micro{
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  width: 100%;
}

.shop-home .pill{
  min-width: 0;
}

.shop-home .shop-lines,
.shop-home .shop-catalog{
  padding: clamp(58px,8vw,112px) 0;
}

.shop-home .shop-section-head{
  align-items: end;
  margin-bottom: clamp(28px,5vw,60px);
  padding-bottom: 16px;
  border-bottom: 1px solid var(--fg);
}

.shop-home .shop-section-head .page-title{
  margin-top: 16px;
  font-size: clamp(3rem,7vw,6.7rem);
}

.shop-home .shop-line-grid{
  grid-template-columns: repeat(12,minmax(0,1fr));
  gap: 1px;
  border: 1px solid var(--fg);
  background: var(--fg);
}

.shop-home .shop-line-card{
  grid-column: span 4;
  grid-template-rows: minmax(310px,32vw) auto;
  border: 0;
  background: var(--bg);
  transition: background-color .3s ease, color .3s ease;
}

.shop-home .shop-line-card-media{
  overflow: hidden;
  border-bottom: 1px solid var(--fg);
}

.shop-home .shop-line-card-media img{
  filter: grayscale(1) contrast(1.06) !important;
  transition: transform .8s var(--ease-editorial,cubic-bezier(.22,1,.36,1)), filter .45s ease;
}

.shop-home .shop-line-card-body{
  min-height: 190px;
  padding: clamp(22px,3vw,36px);
}

.shop-home .shop-line-card h2{
  margin-bottom: 14px;
  font-size: clamp(1.65rem,2.5vw,2.8rem);
  font-weight: 500;
  letter-spacing: -.045em;
}

.shop-home .shop-line-card p{
  max-width: 34ch;
  opacity: .72;
}

.shop-home .shop-line-card-action{
  display: inline-block;
  margin-top: 28px;
  font: 800 .72rem/1.2 var(--mono);
  letter-spacing: .04em;
  transition: transform .3s var(--ease-editorial,cubic-bezier(.22,1,.36,1));
}

.shop-home .shop-line-card:hover .shop-line-card-media img,
.shop-home .shop-line-card:focus-visible .shop-line-card-media img{
  transform: scale(1.045);
  filter: grayscale(0) contrast(1.02) !important;
}

.shop-home .shop-line-card:hover .shop-line-card-action,
.shop-home .shop-line-card:focus-visible .shop-line-card-action{
  transform: translateX(6px);
}

/* Catálogo editorial: respeta la retícula museo ya implantada. */
.shop-line-page .catalog-line-head,
.shop-home .catalog-line-head{
  border-color: var(--fg);
}

.shop-line-page .shop-product,
.shop-home .shop-product{
  border-radius: 0 !important;
  box-shadow: none !important;
}

.shop-line-page .shop-product:focus-within,
.shop-home .shop-product:focus-within{
  outline: 2px solid var(--fg);
  outline-offset: -2px;
}

.shop-line-page .shop-size,
.shop-home .shop-size{
  min-width: 0;
  min-height: 46px;
  padding: 10px 34px 10px 12px;
  border: 1px solid var(--fg);
  border-radius: 0;
  background: var(--bg);
  color: var(--fg);
  font-size: 1rem;
}

.shop-line-page .shop-size:focus-visible,
.shop-home .shop-size:focus-visible{
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

.shop-cart,
.shop-line-page .shop-cart,
.shop-home .shop-cart{
  padding: clamp(22px,4vw,48px);
  border: 1px solid var(--fg);
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent;
}

.shop-cart-item{
  gap: 16px;
  border-color: var(--border);
}

.shop-cart-icon{
  min-width: 44px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
}

.shop-lightbox{
  display: flex;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease, visibility .3s ease;
}

.shop-lightbox.is-open{
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.shop-lightbox-inner{
  border-radius: 0 !important;
  transform: translateY(18px) scale(.985);
  transition: transform .45s var(--ease-editorial,cubic-bezier(.22,1,.36,1));
}

.shop-lightbox.is-open .shop-lightbox-inner{
  transform: none;
}

.shop-lightbox-close{
  width: 46px !important;
  height: 46px !important;
  border-radius: 50% !important;
}

/* Cuenta, checkout y formularios. */
.shop-account-main{
  min-height: 60vh;
  padding: clamp(42px,7vw,96px) 0 clamp(78px,10vw,136px);
}

.shop-account-grid{
  grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr);
  gap: 1px;
  border: 1px solid var(--fg);
  background: var(--fg);
}

.shop-account-panel{
  min-width: 0;
  padding: clamp(22px,4vw,48px);
  border: 0;
  background: var(--bg);
}

.shop-account-panel h1,
.shop-account-panel h2,
.shop-profile-hero h1{
  font-weight: 500;
  letter-spacing: -.045em;
  overflow-wrap: anywhere;
}

.shop-form{
  min-width: 0;
  gap: 20px;
}

.shop-auth-panel{
  max-width: 620px;
  margin-inline: auto;
  border: 1px solid var(--fg);
}

.shop-form-split{
  display: grid;
  grid-template-columns: minmax(110px,.34fr) minmax(0,1fr);
  gap: 14px;
  min-width: 0;
}

.shop-check-row{
  display: grid !important;
  grid-template-columns: auto minmax(0,1fr);
  align-items: start;
  gap: 10px !important;
  font-family: var(--font) !important;
  font-size: .9rem !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
  text-transform: none !important;
}

.shop-check-row input{
  width: 20px !important;
  height: 20px;
  margin-top: 1px;
}

.shop-table-wrap{
  max-width: 100%;
  overflow-x: auto;
}

.shop-order-address{
  margin-top: 14px;
}

.shop-form label{
  min-width: 0;
  gap: 8px;
  font: 700 .72rem/1.3 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.shop-form input,
.shop-form select,
.shop-form textarea{
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding: 13px 0;
  border: 0;
  border-bottom: 1px solid var(--fg);
  border-radius: 0;
  background: transparent;
  color: var(--fg);
  font-size: max(1rem,16px);
  transition: padding .3s var(--ease-editorial,cubic-bezier(.22,1,.36,1)), background-color .2s ease, border-color .2s ease;
}

.shop-form input:focus-visible,
.shop-form select:focus-visible,
.shop-form textarea:focus-visible{
  padding-inline: 10px;
  border-bottom-color: var(--brand);
  outline: 1px solid var(--brand);
  outline-offset: 2px;
  background: var(--bg-elevated);
}

.shop-form input[readonly],
.shop-form input:disabled,
.shop-form select:disabled,
.shop-form textarea:disabled{
  opacity: .62;
  background: var(--bg-muted);
  cursor: not-allowed;
}

.shop-notice{
  padding: 14px 0;
  border: 0;
  border-top: 1px solid var(--fg);
  border-bottom: 1px solid var(--fg);
  background: transparent;
  font-family: var(--mono);
  font-size: .82rem;
}

.shop-summary-grid{
  border-color: var(--fg);
}

.shop-summary-grid article{
  background: var(--bg);
}

.shop-table{
  max-width: 100%;
  table-layout: fixed;
}

.shop-table th,
.shop-table td{
  overflow-wrap: anywhere;
}

.shop-role,
.shop-standby-pill{
  border-radius: 3px;
}

.identity-banner{
  border: 1px solid var(--fg);
  border-radius: 0;
  box-shadow: 8px 8px 0 var(--fg);
}

/* Banner de campaña en flujo: visible al entrar, nunca bloquea el sitio. */
.marketing-banner[hidden]{
  display: none;
}

.marketing-banner{
  max-height: 0;
  overflow: clip;
  border-bottom: 0 solid var(--fg);
  background: var(--fg);
  color: var(--bg);
  opacity: 0;
  transform: translateY(-12px);
  transition: max-height .8s var(--ease-editorial,cubic-bezier(.22,1,.36,1)), opacity .45s ease, transform .7s var(--ease-editorial,cubic-bezier(.22,1,.36,1)), border-width .1s linear;
}

.marketing-banner.is-open{
  max-height: 980px;
  border-bottom-width: 1px;
  opacity: 1;
  transform: none;
}

.marketing-banner.is-closing{
  max-height: 0;
  opacity: 0;
  transform: translateY(-12px);
}

.marketing-banner-inner{
  position: relative;
  display: grid;
  grid-template-columns: minmax(240px,.68fr) minmax(0,1.32fr);
  gap: clamp(26px,5vw,72px);
  padding-top: clamp(26px,4vw,48px);
  padding-bottom: clamp(28px,5vw,58px);
}

.marketing-banner-close{
  position: absolute;
  top: 16px;
  right: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  font: 400 1.6rem/1 var(--font);
  cursor: pointer;
  transition: transform .35s var(--ease-editorial,cubic-bezier(.22,1,.36,1)), background-color .2s ease, color .2s ease;
}

.marketing-banner-close:hover,
.marketing-banner-close:focus-visible{
  background: var(--bg);
  color: var(--fg);
  transform: rotate(90deg);
}

.marketing-banner-copy{
  align-self: end;
  padding-top: 54px;
}

.marketing-banner-eyebrow{
  margin: 0 0 18px;
  font: 700 .68rem/1.2 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .68;
}

.marketing-banner-title{
  max-width: 9ch;
  margin: 0;
  font-size: clamp(2.5rem,5.5vw,5.8rem);
  font-weight: 480;
  line-height: .88;
  letter-spacing: -.065em;
}

.marketing-banner-text{
  max-width: 38ch;
  margin: 22px 0 0;
  opacity: .72;
}

.marketing-banner-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 26px;
}

.marketing-banner .btn{
  border-color: var(--bg);
  color: var(--bg);
}

.marketing-banner .btn:not(.btn-primary){
  background: transparent;
}

.marketing-banner .btn-primary{
  background: var(--bg);
  color: var(--fg);
}

.marketing-banner .btn:hover,
.marketing-banner .btn:focus-visible{
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}

.marketing-banner-products{
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1px;
  align-self: stretch;
  border: 1px solid rgba(255,255,255,.5);
  background: rgba(255,255,255,.5);
}

.marketing-banner-product{
  display: grid;
  grid-template-rows: minmax(230px,30vw) auto;
  min-width: 0;
  background: var(--fg);
  color: var(--bg);
}

.marketing-banner-product-media{
  overflow: hidden;
  background: #e8e6e0;
}

.marketing-banner-product img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform .65s var(--ease-editorial,cubic-bezier(.22,1,.36,1));
}

.marketing-banner-product-meta{
  display: grid;
  gap: 4px;
  min-height: 92px;
  padding: 14px;
  border-top: 1px solid rgba(255,255,255,.5);
}

.marketing-banner-product-meta small{
  font: 700 .64rem/1.2 var(--mono);
  letter-spacing: .06em;
  opacity: .62;
}

.marketing-banner-product-meta strong{
  font-size: .9rem;
  line-height: 1.25;
}

.marketing-banner-product:hover img,
.marketing-banner-product:focus-visible img{
  transform: scale(1.05);
}

.marketing-banner-status{
  min-height: 1.2em;
  margin-top: 10px;
  font: 700 .68rem/1.3 var(--mono);
  opacity: .72;
}

@media (max-width: 980px){
  .shop-home .shop-hero-grid,
  .shop-line-page .shop-hero-grid{
    grid-template-columns: 1fr;
  }

  .shop-home .shop-hero-copy,
  .shop-line-page .shop-hero-copy{
    min-height: 440px;
  }

  .shop-home .shop-hero-media,
  .shop-line-page .shop-hero-media{
    min-height: min(92vw,680px);
  }

  .shop-home .shop-line-card{
    grid-column: 1 / -1;
    grid-template-columns: minmax(260px,.85fr) minmax(0,1.15fr);
    grid-template-rows: auto;
  }

  .shop-home .shop-line-card-media{
    min-height: 330px;
    border-right: 1px solid var(--fg);
    border-bottom: 0;
  }

  .marketing-banner-inner{
    grid-template-columns: 1fr;
  }

  .marketing-banner-copy{
    padding-right: 56px;
  }
}

@media (max-width: 760px){
  .shop-home .shop-hero,
  .shop-line-page .shop-hero{
    padding-top: 26px;
  }

  .shop-home .shop-hero-copy,
  .shop-line-page .shop-hero-copy{
    min-height: 390px;
    padding: 22px 16px;
  }

  .shop-home .shop-hero .brand-title,
  .shop-line-page .shop-hero .brand-title,
  .shop-account-shell .page-title{
    font-size: clamp(3rem,16vw,5.5rem);
  }

  .shop-home .micro{
    grid-template-columns: 1fr;
  }

  .shop-home .shop-line-card{
    display: grid;
    grid-template-columns: 1fr;
  }

  .shop-home .shop-line-card-media{
    min-height: min(105vw,480px);
    border-right: 0;
    border-bottom: 1px solid var(--fg);
  }

  .shop-home .shop-section-head,
  .shop-cart-head,
  .shop-cart-actions,
  .shop-cart-item,
  .shop-profile-hero,
  .shop-panel-head{
    align-items: stretch;
    flex-direction: column;
  }

  .shop-home .shop-section-head .btn,
  .shop-cart-actions .btn,
  .shop-profile-actions .btn,
  .shop-panel-head .btn{
    width: 100%;
  }

  .shop-account-grid{
    grid-template-columns: 1fr;
  }

  .shop-account-panel{
    padding: 22px 16px;
  }

  .shop-form-split{
    grid-template-columns: 1fr;
  }

  .shop-table-wrap{
    overflow: visible;
  }

  .shop-summary-grid{
    grid-template-columns: 1fr;
  }

  .shop-summary-grid article{
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

  .shop-table,
  .shop-table tbody,
  .shop-table tr,
  .shop-table td{
    display: block;
    width: 100%;
  }

  .shop-table thead{
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }

  .shop-table tr{
    padding: 12px 0;
    border-bottom: 1px solid var(--fg);
  }

  .shop-table td{
    padding: 7px 0;
    border: 0;
  }

  .identity-banner{
    right: 10px;
    bottom: 10px;
    left: 10px;
    box-shadow: 4px 4px 0 var(--fg);
  }

  .marketing-banner-inner{
    width: calc(100vw - 24px);
    padding-top: 20px;
    padding-bottom: 28px;
  }

  .marketing-banner-title{
    font-size: clamp(2.65rem,14vw,4.8rem);
  }

  .marketing-banner-products{
    grid-template-columns: repeat(3,minmax(0,1fr));
  }

  .marketing-banner-product{
    grid-template-columns: 1fr;
    grid-template-rows: minmax(140px,46vw) auto;
  }

  .marketing-banner-product-meta{
    min-height: 92px;
    align-content: end;
    padding: 9px 7px;
    border-top: 1px solid rgba(255,255,255,.5);
    border-left: 0;
  }

  .marketing-banner-product-meta small{
    font-size: .54rem;
  }

  .marketing-banner-product-meta strong{
    font-size: .66rem;
    overflow-wrap: anywhere;
  }

  .marketing-banner-actions{
    display: grid;
  }

  .marketing-banner-actions .btn{
    width: 100%;
    white-space: normal;
  }
}

@media (max-width: 380px){
  .shop-cart{
    padding: 18px 10px;
  }

  .shop-cart-controls{
    display: grid;
    grid-template-columns: repeat(4,44px);
  }

  .marketing-banner.is-open{
    max-height: 1400px;
  }
}

@media (prefers-reduced-motion: reduce){
  .marketing-banner,
  .marketing-banner-close,
  .marketing-banner-product img,
  .shop-lightbox,
  .shop-lightbox-inner{
    transition: none !important;
  }
}

/* Navegación del visor de producto. La ficha conserva su imagen principal;
   estas flechas recorren las vistas editoriales adicionales. */
.shop-lightbox-nav{
  position:absolute;
  z-index:3;
  top:50%;
  right:12px;
  left:12px;
  display:flex;
  justify-content:space-between;
  pointer-events:none;
  transform:translateY(-50%);
}

.shop-lightbox-nav[hidden]{
  display:none;
}

.shop-lightbox-nav button{
  display:grid;
  width:46px;
  height:46px;
  place-items:center;
  border:1px solid #111;
  border-radius:0;
  background:#f2f0eb;
  color:#111;
  font:700 1rem/1 var(--mono,ui-monospace,monospace);
  cursor:pointer;
  pointer-events:auto;
}

.shop-lightbox-nav button:hover,
.shop-lightbox-nav button:focus-visible{
  background:#111;
  color:#f2f0eb;
}

.shop-account-icon{
  display:none;
}

/* Corrección de densidad y jerarquía exclusivamente fuera de móvil. */
@media (min-width:761px){
  .shop-home .site-header .logo,
  .shop-line-page .site-header .logo,
  .shop-account-shell .site-header .logo{
    width:clamp(290px,25vw,380px);
  }

  .shop-home .site-header .logo-img,
  .shop-line-page .site-header .logo-img,
  .shop-account-shell .site-header .logo-img{
    max-height:56px;
  }

  .shop-home .site-nav a,
  .shop-line-page .site-nav a,
  .shop-account-shell .site-nav a{
    min-height:44px;
    padding:10px 13px;
    font-family:var(--mono,ui-monospace,monospace);
    font-size:clamp(.9rem,.83rem + .16vw,1rem);
    font-weight:750;
    letter-spacing:.015em;
  }

  .shop-home .theme-toggle,
  .shop-line-page .theme-toggle,
  .shop-account-shell .theme-toggle{
    position:relative;
    width:36px;
    height:30px;
    border:1px solid currentColor;
    border-radius:0;
    transition:background-color .18s ease,color .18s ease,transform .3s steps(3,end);
  }

  .shop-home .theme-toggle .icon-moon,
  .shop-home .theme-toggle .icon-sun,
  .shop-line-page .theme-toggle .icon-moon,
  .shop-line-page .theme-toggle .icon-sun,
  .shop-account-shell .theme-toggle .icon-moon,
  .shop-account-shell .theme-toggle .icon-sun{
    display:none !important;
  }

  .shop-home .theme-toggle::before,
  .shop-line-page .theme-toggle::before,
  .shop-account-shell .theme-toggle::before{
    content:"";
    width:14px;
    height:14px;
    border:1px solid currentColor;
    border-radius:50%;
    background:linear-gradient(90deg,currentColor 50%,transparent 50%);
  }

  [data-theme="dark"] .shop-home .theme-toggle::before,
  [data-theme="dark"] .shop-line-page .theme-toggle::before,
  [data-theme="dark"] .shop-account-shell .theme-toggle::before{
    background:linear-gradient(90deg,transparent 50%,currentColor 50%);
  }

  .shop-home .theme-toggle:hover,
  .shop-home .theme-toggle:focus-visible,
  .shop-line-page .theme-toggle:hover,
  .shop-line-page .theme-toggle:focus-visible,
  .shop-account-shell .theme-toggle:hover,
  .shop-account-shell .theme-toggle:focus-visible{
    background:#fff;
    color:#111;
    transform:rotate(180deg);
  }

  .shop-account-nav-link{
    display:inline-flex !important;
    align-items:center;
    gap:8px;
  }

  .shop-account-nav-link .shop-account-label{
    max-width:14ch;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .shop-account-icon{
    position:relative;
    display:inline-block;
    width:21px;
    height:21px;
    flex:0 0 auto;
    border:1px solid currentColor;
    border-radius:0;
  }

  .shop-account-icon::before{
    content:"";
    position:absolute;
    top:4px;
    left:7px;
    width:5px;
    height:5px;
    border:1px solid currentColor;
    border-radius:50%;
  }

  .shop-account-icon::after{
    content:"";
    position:absolute;
    right:4px;
    bottom:4px;
    left:4px;
    height:4px;
    border:1px solid currentColor;
    border-bottom:0;
  }

  .shop-home .shop-hero .brand-title,
  .shop-line-page .shop-hero .brand-title,
  .shop-home .shop-section-head .page-title,
  .shop-account-shell .page-title{
    max-width:14ch;
    font-family:var(--mono,ui-monospace,monospace) !important;
    font-size:clamp(2.75rem,5.5vw,5.6rem);
    font-weight:650;
    line-height:.92;
    letter-spacing:-.065em !important;
    overflow-wrap:anywhere;
  }

  .shop-home .shop-section-head .page-title,
  .shop-account-shell .page-title{
    font-size:clamp(2.35rem,4.4vw,4.5rem);
  }

  .shop-type-title .shop-type-char{
    display:inline-block;
    opacity:0;
  }

  .shop-type-title.is-type-running .shop-type-char{
    animation:shop-type-char 1ms linear forwards;
    animation-delay:calc(90ms + var(--shop-type-index) * 42ms);
  }

  .shop-type-title.is-type-running::after{
    content:"";
    display:inline-block;
    width:.085em;
    height:.74em;
    margin-left:.08em;
    background:currentColor;
    vertical-align:.02em;
    animation:shop-type-cursor .72s steps(1,end) 4;
  }

  .shop-home .footer,
  .shop-line-page .footer,
  .shop-account-shell .footer{
    padding:38px 0 24px;
  }

  .shop-home .footer-inner,
  .shop-line-page .footer-inner,
  .shop-account-shell .footer-inner{
    gap:20px;
  }

  .shop-home .footer-tagline,
  .shop-line-page .footer-tagline,
  .shop-account-shell .footer-tagline{
    max-width:none;
    margin:0;
    font-family:var(--mono,ui-monospace,monospace);
    font-size:clamp(1rem,.9rem + .4vw,1.35rem);
    font-weight:700;
    line-height:1.2;
    letter-spacing:-.025em;
  }

  .shop-account-main{
    min-height:0;
    padding:34px 0 58px;
  }

  .shop-account-panel{
    padding:clamp(20px,2.5vw,34px);
  }
}

@media (min-width:761px) and (max-width:1040px){
  .shop-home .site-header .logo,
  .shop-line-page .site-header .logo,
  .shop-account-shell .site-header .logo{
    width:clamp(220px,29vw,270px);
  }

  .shop-home .site-nav a,
  .shop-line-page .site-nav a,
  .shop-account-shell .site-nav a{
    padding-inline:8px;
    font-size:.84rem;
  }
}

@media (min-width:981px){
  .shop-home .shop-hero,
  .shop-line-page .shop-hero{
    padding:26px 0 42px;
  }

  .shop-home .shop-hero-copy,
  .shop-line-page .shop-hero-copy,
  .shop-home .shop-hero-media,
  .shop-line-page .shop-hero-media{
    height:clamp(390px,38vw,510px);
    min-height:0;
  }

  .shop-home .shop-hero-media img,
  .shop-line-page .shop-hero-media img{
    height:100%;
    min-height:0;
  }

  .shop-home .shop-hero-copy,
  .shop-line-page .shop-hero-copy{
    padding:clamp(26px,3.2vw,44px);
  }

  .shop-line-page .shop-hero-copy .kicker{
    margin-top:clamp(28px,4vw,52px);
  }

  .shop-home .shop-hero-copy .hero-row,
  .shop-line-page .shop-hero-copy .hero-row{
    margin-top:28px;
  }

  .shop-hero-facts{
    margin-top:clamp(22px,3vw,38px);
  }

  .shop-home .shop-lines,
  .shop-home .shop-catalog{
    padding:42px 0;
  }

  .shop-home .shop-section-head{
    margin-bottom:24px;
  }

  .shop-home .shop-line-card{
    grid-template-rows:clamp(230px,22vw,330px) auto;
  }

  .shop-home .shop-line-card-body{
    min-height:150px;
    padding:clamp(18px,2.2vw,28px);
  }

  .shop-home .shop-line-card-action{
    margin-top:18px;
  }

  .shop-line-page .shop-catalog{
    padding-bottom:54px;
  }

  .shop-line-page .shop-cart{
    margin-top:36px;
  }

  .marketing-banner-inner{
    gap:clamp(24px,3vw,46px);
    padding-top:24px;
    padding-bottom:30px;
  }

  .marketing-banner-copy{
    padding-top:36px;
  }

  .marketing-banner-title{
    font-family:var(--mono,ui-monospace,monospace);
    font-size:clamp(2.25rem,3.9vw,4.15rem);
    line-height:.92;
  }

  .marketing-banner-product{
    grid-template-rows:clamp(190px,21vw,310px) auto;
  }

  .marketing-banner-product-meta{
    min-height:74px;
  }
}

@keyframes shop-type-char{
  from{opacity:0;transform:translateY(.08em)}
  to{opacity:1;transform:none}
}

@keyframes shop-type-cursor{
  0%,48%{opacity:1}
  49%,100%{opacity:0}
}

@media (prefers-reduced-motion:reduce){
  .shop-type-title .shop-type-char{
    opacity:1 !important;
    animation:none !important;
  }

  .shop-type-title::after{
    display:none !important;
    animation:none !important;
  }

  .shop-home .theme-toggle,
  .shop-line-page .theme-toggle,
  .shop-account-shell .theme-toggle{
    transition:none !important;
  }

  .shop-home .theme-toggle:hover,
  .shop-home .theme-toggle:focus-visible,
  .shop-line-page .theme-toggle:hover,
  .shop-line-page .theme-toggle:focus-visible,
  .shop-account-shell .theme-toggle:hover,
  .shop-account-shell .theme-toggle:focus-visible{
    transform:none !important;
  }
}
