/* ==========================================================================
   Ideal Pet Warehouse Ltd — WordPress theme styles
   Playful pet-shop style: cream grounds, dark brown ink, condensed
   uppercase headings, pill buttons with offset shadows.
   ========================================================================== */

:root {
  --ipw-cream: #fff6e6;
  --ipw-cream-2: #fdeccf;
  --ipw-brown: #2b1b12;
  --ipw-ink: #111111;
  --ipw-white: #ffffff;
  --ipw-pink: #ff9fb0;
  --ipw-blue: #7ec4f7;
  --ipw-green: #a8c766;
  --ipw-yellow: #ffee99;
  --ipw-red: #e2381f;
  --ipw-orange: #ff7a2f;
  --ipw-muted: #5c4a3d;

  --ipw-font-display: 'Anton', 'Impact', 'Arial Narrow', sans-serif;
  --ipw-font-body: 'Figtree', 'Helvetica Neue', Arial, sans-serif;

  --ipw-radius: 22px;
  --ipw-radius-sm: 14px;
  --ipw-shadow: 5px 5px 0 var(--ipw-brown);
  --ipw-gutter: clamp(16px, 5vw, 80px);
  --ipw-max: 1240px;
}

body {
  margin: 0;
  background: var(--ipw-cream);
  color: var(--ipw-ink);
  font-family: var(--ipw-font-body);
}

.ipw,
.ipw * { box-sizing: border-box; }

.ipw {
  font-family: var(--ipw-font-body);
  color: var(--ipw-ink);
  font-size: 16px;
  line-height: 1.55;
  letter-spacing: 0;
}

.ipw img { max-width: 100%; height: auto; display: block; }
.ipw a { color: inherit; }
.ipw p { margin: 0 0 1em; }

.ipw-container {
  width: 100%;
  max-width: calc(var(--ipw-max) + var(--ipw-gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--ipw-gutter);
}

.ipw-section { padding-block: clamp(56px, 8vw, 110px); }
.ipw-bg-cream { background: var(--ipw-cream); }
.ipw-bg-white { background: var(--ipw-white); }
.ipw-bg-brown { background: var(--ipw-brown); color: var(--ipw-cream); }
.ipw-bg-ink { background: var(--ipw-ink); color: var(--ipw-white); }

/* ---------- Type ---------- */
.ipw-display {
  font-family: var(--ipw-font-display);
  font-weight: 400;
  text-transform: uppercase;
  line-height: .95;
  letter-spacing: 0;
  margin: 0;
  color: inherit;
}
.ipw-h1 { font-size: clamp(3.2rem, 9vw, 7.4rem); }
.ipw-h2 { font-size: clamp(2.5rem, 6vw, 4.6rem); }
.ipw-h3 { font-size: clamp(1.9rem, 3.6vw, 2.8rem); }
.ipw-h4 { font-size: clamp(1.35rem, 2.2vw, 1.8rem); }

.ipw-eyebrow {
  display: inline-block;
  font-family: var(--ipw-font-body);
  font-weight: 700;
  font-size: .8rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 14px;
}

.ipw-lead { font-size: clamp(1.05rem, 1.5vw, 1.2rem); max-width: 34ch; }
.ipw-center { text-align: center; }
.ipw-center .ipw-lead { margin-inline: auto; }

/* ---------- Buttons ---------- */
.ipw-btn {
  --btn-bg: var(--ipw-pink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  font-family: var(--ipw-font-display);
  font-weight: 400;
  font-size: 1.15rem;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .02em;
  text-decoration: none;
  color: var(--ipw-brown) !important;
  background: var(--btn-bg);
  border: 2.5px solid var(--ipw-brown);
  border-radius: 999px;
  padding: .85em 1.6em;
  box-shadow: 4px 4px 0 var(--ipw-brown);
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
  -webkit-appearance: none;
  appearance: none;
}
.ipw-btn:hover { transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--ipw-brown); }
.ipw-btn:active { transform: translate(4px, 4px); box-shadow: 0 0 0 var(--ipw-brown); }
.ipw-btn:focus-visible { outline: 3px solid var(--ipw-blue); outline-offset: 3px; }
.ipw-btn[disabled] { opacity: .55; cursor: not-allowed; transform: none; }
.ipw-btn--pink { --btn-bg: var(--ipw-pink); }
.ipw-btn--blue { --btn-bg: var(--ipw-blue); }
.ipw-btn--green { --btn-bg: var(--ipw-green); }
.ipw-btn--yellow { --btn-bg: var(--ipw-yellow); }
.ipw-btn--cream { --btn-bg: var(--ipw-cream); }
.ipw-btn--block { width: 100%; }
.ipw-btn--sm { font-size: 1rem; padding: .7em 1.3em; }

.ipw-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ipw-font-display);
  text-transform: uppercase;
  font-size: 1.1rem;
  text-decoration: none;
  border-bottom: 2.5px solid currentColor;
  padding-bottom: 4px;
}
.ipw-link-arrow::before { content: '\21B3'; font-family: var(--ipw-font-body); }
.ipw-link-arrow:hover { opacity: .75; }

.ipw-pill {
  display: inline-block;
  background: var(--ipw-blue);
  color: var(--ipw-ink);
  border-radius: 999px;
  padding: .35em .9em;
  font-size: .85rem;
  font-weight: 600;
  white-space: nowrap;
}

/* ==========================================================================
   Header
   ========================================================================== */
.ipw-topbar {
  background: var(--ipw-brown);
  color: var(--ipw-cream);
  font-size: .82rem;
  text-align: center;
  padding: 8px var(--ipw-gutter);
}
.ipw-topbar a { color: inherit; }

.ipw-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--ipw-cream);
  transition: box-shadow .2s ease;
}
.ipw-header.is-scrolled { box-shadow: 0 2px 0 rgba(43, 27, 18, .12); }
.ipw-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 84px;
}
.ipw-header__logo img { height: 66px; width: auto; }
.ipw-header__logo-text { font-family: var(--ipw-font-display); font-size: 1.8rem; text-transform: uppercase; text-decoration: none; }

.ipw-nav { display: flex; align-items: center; gap: 4px; }
.ipw-nav__list { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.ipw-nav__item { position: relative; }
.ipw-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 12px;
  font-weight: 600;
  font-size: .98rem;
  text-decoration: none;
  color: var(--ipw-ink);
  border-radius: 999px;
}
.ipw-nav__link:hover,
.ipw-nav__link[aria-current="page"] { background: var(--ipw-cream-2); }
.ipw-nav__caret { width: 10px; height: 10px; }
.ipw-nav__dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  list-style: none;
  margin: 0;
  padding: 10px;
  background: var(--ipw-white);
  border: 2.5px solid var(--ipw-brown);
  border-radius: var(--ipw-radius-sm);
  box-shadow: var(--ipw-shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: .15s ease;
}
.ipw-nav__item:hover > .ipw-nav__dropdown,
.ipw-nav__item:focus-within > .ipw-nav__dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.ipw-nav__dropdown a { display: block; padding: 8px 12px; border-radius: 10px; text-decoration: none; font-weight: 500; }
.ipw-nav__dropdown a:hover { background: var(--ipw-cream); }

.ipw-header__actions { display: flex; align-items: center; gap: 14px; }
.ipw-icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: transparent;
  border: 0;
  color: var(--ipw-ink);
  cursor: pointer;
  text-decoration: none;
}
.ipw-icon-btn:hover { background: var(--ipw-cream-2); }
.ipw-icon-btn svg { width: 22px; height: 22px; }
.ipw-cart-count {
  position: absolute;
  top: 4px;
  right: 2px;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--ipw-blue);
  color: var(--ipw-ink);
  font-size: .7rem;
  font-weight: 700;
  line-height: 19px;
  text-align: center;
}
.ipw-menu-toggle { display: none; }

.ipw-mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: var(--ipw-cream);
  padding: 24px var(--ipw-gutter) 40px;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform .25s ease;
}
.ipw-mobile-nav.is-open { transform: translateX(0); }
.ipw-mobile-nav__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 28px; }
.ipw-mobile-nav__head img { height: 46px; width: auto; }
.ipw-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.ipw-mobile-nav > ul > li { border-bottom: 2px solid rgba(43, 27, 18, .12); }
.ipw-mobile-nav a { display: block; text-decoration: none; }
.ipw-mobile-nav > ul > li > a { font-family: var(--ipw-font-display); text-transform: uppercase; font-size: 2rem; padding: 14px 0; }
.ipw-mobile-nav li ul { padding: 0 0 14px 4px; }
.ipw-mobile-nav li ul a { padding: 6px 0; font-weight: 600; }
.ipw-mobile-nav__contact { margin-top: 28px; font-size: .95rem; }

@media (max-width: 989px) {
  .ipw-nav, .ipw-header__contact { display: none; }
  .ipw-menu-toggle { display: inline-flex; }
  .ipw-header__inner { min-height: 70px; }
  .ipw-header__logo img { height: 52px; }
}

/* ==========================================================================
   Hero
   ========================================================================== */
.ipw-hero { position: relative; overflow: hidden; background: var(--ipw-cream); }
.ipw-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  align-items: end;
  min-height: clamp(520px, 72vh, 720px);
}
.ipw-hero__content { align-self: center; padding-block: 64px; position: relative; z-index: 2; }
.ipw-hero__title { color: var(--ipw-brown); margin-bottom: 28px !important; }
.ipw-hero__title-line { display: block; white-space: nowrap; }
.ipw-hero__ball {
  display: inline-block;
  width: .82em;
  height: .82em;
  vertical-align: -.02em;
  margin-inline: .02em;
  animation: ipw-bob 3.2s ease-in-out infinite;
}
.ipw-hero__ball img { width: 100%; height: 100%; object-fit: contain; }
.ipw-hero__text { font-size: clamp(1.05rem, 1.4vw, 1.2rem); max-width: 32ch; margin-bottom: 30px !important; }
.ipw-hero__media { position: relative; align-self: end; height: 100%; display: flex; align-items: flex-end; justify-content: center; }
.ipw-hero__media img { max-height: min(640px, 66vh); width: auto; object-fit: contain; position: relative; z-index: 1; }
.ipw-hero__blob {
  position: absolute;
  bottom: -12%;
  left: 50%;
  width: 115%;
  aspect-ratio: 1;
  transform: translateX(-50%);
  border-radius: 50%;
  background: var(--ipw-yellow);
  z-index: 0;
}
.ipw-hero__sticker {
  position: absolute;
  top: 18%;
  right: 4%;
  z-index: 3;
  width: 116px;
  height: 116px;
  display: grid;
  place-items: center;
  text-align: center;
  font-family: var(--ipw-font-display);
  text-transform: uppercase;
  font-size: 1.05rem;
  line-height: 1.05;
  color: var(--ipw-brown);
  background: var(--ipw-blue);
  border: 2.5px solid var(--ipw-brown);
  border-radius: 50%;
  box-shadow: 4px 4px 0 var(--ipw-brown);
  transform: rotate(-10deg);
  padding: 12px;
}

@keyframes ipw-bob { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-8%) rotate(12deg); } }

@media (max-width: 989px) {
  .ipw-hero__inner { grid-template-columns: 1fr; min-height: 0; }
  .ipw-hero__content { padding-block: 48px 10px; text-align: center; }
  .ipw-hero__text { margin-inline: auto; }
  .ipw-hero__title-line { white-space: normal; }
  .ipw-hero__media img { max-height: 420px; }
  .ipw-hero__blob { width: 90%; bottom: -30%; }
  .ipw-hero__sticker { width: 92px; height: 92px; font-size: .88rem; top: 8%; right: 6%; }
}

/* ==========================================================================
   Offer cards
   ========================================================================== */
.ipw-offer__title { text-align: center; margin-bottom: clamp(36px, 5vw, 60px) !important; color: var(--ipw-white); }
.ipw-offer__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.ipw-offer-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: var(--ipw-cream);
  color: var(--ipw-ink);
  border-radius: var(--ipw-radius);
  padding: 34px 14px 30px;
  transition: transform .2s ease;
}
.ipw-offer-card:hover { transform: translateY(-4px); }
.ipw-offer-card__title { margin-bottom: 12px !important; }
.ipw-offer-card__text { max-width: 30ch; margin-bottom: 24px !important; flex-grow: 1; }
.ipw-offer-card__media { width: 100%; aspect-ratio: 3 / 2; border-radius: var(--ipw-radius); overflow: hidden; margin-bottom: 28px; }
.ipw-offer-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.ipw-offer-card:hover .ipw-offer-card__media img { transform: scale(1.04); }


@media (max-width: 989px) { .ipw-offer__grid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; } }

/* ==========================================================================
   Product cards + grids
   ========================================================================== */
.ipw-products__head { text-align: center; margin-bottom: clamp(36px, 5vw, 64px); }
.ipw-products__head .ipw-display { margin-bottom: 14px; }
.ipw-grid { display: grid; grid-template-columns: repeat(var(--ipw-cols, 3), minmax(0, 1fr)); gap: clamp(22px, 3vw, 44px) clamp(18px, 3vw, 44px); }
.ipw-grid--4 { --ipw-cols: 4; }
@media (max-width: 989px) { .ipw-grid, .ipw-grid--4 { --ipw-cols: 2; } }
@media (max-width: 540px) { .ipw-grid, .ipw-grid--4 { --ipw-cols: 1; } }

.ipw-card { position: relative; display: flex; flex-direction: column; text-decoration: none; color: var(--ipw-ink); }
.ipw-card__media {
  position: relative;
  aspect-ratio: 4 / 5;
  border: 2.5px solid var(--ipw-ink);
  border-radius: var(--ipw-radius-sm);
  overflow: hidden;
  background: var(--ipw-white);
  box-shadow: 6px 6px 0 var(--ipw-ink);
  transition: transform .2s ease, box-shadow .2s ease;
}
.ipw-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ipw-card__media .ipw-card__img-2 { position: absolute; inset: 0; opacity: 0; transition: opacity .3s ease; }
.ipw-card:hover .ipw-card__img-2 { opacity: 1; }
.ipw-card:hover .ipw-card__media { transform: translate(3px, 3px); box-shadow: 3px 3px 0 var(--ipw-ink); }
.ipw-card__badge {
  position: absolute;
  top: -12px;
  left: 22px;
  z-index: 2;
  background: var(--ipw-red);
  color: var(--ipw-white);
  font-family: var(--ipw-font-display);
  text-transform: uppercase;
  font-size: .9rem;
  letter-spacing: .04em;
  padding: 4px 14px;
  border-radius: 999px;
}
.ipw-card__info { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-top: 20px; }
.ipw-card__title { font-family: var(--ipw-font-display); text-transform: uppercase; font-size: 1.4rem; line-height: 1.05; margin: 0; }
.ipw-card__meta { font-size: .85rem; color: var(--ipw-muted); margin-top: 6px; }
.ipw-products__footer { text-align: center; margin-top: clamp(40px, 5vw, 64px); }

/* ==========================================================================
   Marquee
   ========================================================================== */
.ipw-marquee { overflow: hidden; padding-block: clamp(40px, 6vw, 80px); background: var(--ipw-cream); }
.ipw-marquee__track { display: flex; width: max-content; animation: ipw-marquee var(--ipw-marquee-speed, 32s) linear infinite; }
.ipw-marquee:hover .ipw-marquee__track { animation-play-state: paused; }
.ipw-marquee__group { display: flex; align-items: center; flex-shrink: 0; }
.ipw-marquee__word { font-family: var(--ipw-font-display); text-transform: uppercase; font-size: clamp(3.4rem, 9vw, 8rem); line-height: 1; color: var(--ipw-ink); padding-inline: .18em; white-space: nowrap; }
.ipw-marquee__shape { width: clamp(44px, 6vw, 80px); height: clamp(44px, 6vw, 80px); flex-shrink: 0; margin-inline: .2em; }
@keyframes ipw-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .ipw-marquee__track, .ipw-hero__ball { animation: none; }
}

/* ==========================================================================
   Image + text
   ========================================================================== */
.ipw-split { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(36px, 7vw, 110px); align-items: center; }
.ipw-split--reverse .ipw-split__content { order: 2; }
.ipw-split__content .ipw-display { margin-bottom: 26px; }
.ipw-split__text { max-width: 44ch; margin-bottom: 30px; }
.ipw-split__media { position: relative; }
.ipw-split__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 34px; transform: rotate(-3deg); }
.ipw-split__media::before {
  content: '';
  position: absolute;
  inset: -4% 6% auto auto;
  width: 60%;
  height: 40%;
  border-radius: 40px;
  background: var(--ipw-green);
  transform: rotate(4deg);
  z-index: 0;
}
.ipw-split__media img { position: relative; z-index: 1; }
.ipw-checklist { list-style: none; padding: 0; margin: 0 0 30px; display: grid; gap: 10px; }
.ipw-checklist li { display: flex; gap: 12px; align-items: flex-start; font-weight: 500; }
.ipw-checklist li::before {
  content: '';
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border-radius: 50%;
  background: var(--ipw-pink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b1b12' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 14px no-repeat;
  border: 2px solid var(--ipw-brown);
}
@media (max-width: 989px) {
  .ipw-split { grid-template-columns: 1fr; }
  .ipw-split--reverse .ipw-split__content { order: 0; }
}

/* ==========================================================================
   Banner (scalloped)
   ========================================================================== */
.ipw-banner__head { text-align: center; margin-bottom: 34px; }
.ipw-banner__head .ipw-display { margin-bottom: 26px; max-width: 16ch; margin-inline: auto; }
.ipw-banner__media { position: relative; max-width: 1000px; margin: 60px auto 0; padding: 0 clamp(0px, 4vw, 60px); }
.ipw-banner__scallop { position: absolute; inset: -12% -2% -10%; display: flex; justify-content: space-between; z-index: 0; }
.ipw-banner__scallop span { width: 36%; border-radius: 50%; background: var(--ipw-yellow); }
.ipw-banner__scallop span:nth-child(2) { margin-top: 0; width: 30%; }
.ipw-banner__media img { position: relative; z-index: 1; width: 100%; aspect-ratio: 9 / 4; object-fit: cover; border-radius: 34px; }
@media (max-width: 640px) { .ipw-banner__media img { aspect-ratio: 4 / 3; } }

/* ==========================================================================
   About (stacked photos)
   ========================================================================== */
.ipw-stack { position: relative; padding: 8% 4% 4% 10%; }
.ipw-stack__img { border: 2.5px solid var(--ipw-ink); border-radius: 30px; overflow: hidden; box-shadow: 8px 8px 0 var(--ipw-ink); background: var(--ipw-white); }
.ipw-stack__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ipw-stack__img--back { position: absolute; top: 0; right: 0; width: 72%; transform: rotate(4deg); }
.ipw-stack__img--front { position: relative; width: 86%; transform: rotate(-4deg); z-index: 1; }

/* ==========================================================================
   Info bar
   ========================================================================== */
.ipw-info { padding-block: clamp(40px, 5vw, 64px); }
.ipw-info__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.ipw-info__item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: var(--ipw-white);
  border: 2.5px solid var(--ipw-brown);
  border-radius: var(--ipw-radius-sm);
  box-shadow: 4px 4px 0 var(--ipw-brown);
  padding: 20px;
}
.ipw-info__icon { flex-shrink: 0; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; border: 2px solid var(--ipw-brown); }
.ipw-info__icon svg { width: 22px; height: 22px; }
.ipw-info__item:nth-child(4n+1) .ipw-info__icon { background: var(--ipw-pink); }
.ipw-info__item:nth-child(4n+2) .ipw-info__icon { background: var(--ipw-blue); }
.ipw-info__item:nth-child(4n+3) .ipw-info__icon { background: var(--ipw-green); }
.ipw-info__item:nth-child(4n+4) .ipw-info__icon { background: var(--ipw-yellow); }
.ipw-info__title { font-family: var(--ipw-font-display); text-transform: uppercase; font-size: 1.15rem; line-height: 1.1; margin: 2px 0 6px; }
.ipw-info__text { font-size: .9rem; margin: 0 !important; color: var(--ipw-muted); }
.ipw-info__text a { text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 1100px) { .ipw-info__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .ipw-info__grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   Footer
   ========================================================================== */
.ipw-footer { background: var(--ipw-ink); color: rgba(255, 255, 255, .78); padding-block: clamp(56px, 7vw, 90px) 34px; }
.ipw-footer__top { display: grid; grid-template-columns: 1.3fr repeat(3, 1fr); gap: 40px; }
.ipw-footer__brand img { height: 96px; width: auto; margin-bottom: 18px; }
.ipw-footer__brand p { max-width: 30ch; }
.ipw-footer__social { display: flex; gap: 12px; margin-top: 22px; }
.ipw-footer__social a { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: var(--ipw-ink); }
.ipw-footer__social a:nth-child(3n+1) { background: var(--ipw-red); color: var(--ipw-white); }
.ipw-footer__social a:nth-child(3n+2) { background: var(--ipw-blue); }
.ipw-footer__social a:nth-child(3n+3) { background: var(--ipw-green); }
.ipw-footer__social svg { width: 18px; height: 18px; }
.ipw-footer__heading { font-family: var(--ipw-font-display); text-transform: uppercase; color: var(--ipw-white); font-size: 1.45rem; letter-spacing: .04em; margin: 0 0 18px; }
.ipw-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ipw-footer a { text-decoration: none; color: rgba(255, 255, 255, .78); }
.ipw-footer a:hover { color: var(--ipw-white); }
.ipw-footer__contact li { display: grid; gap: 2px; font-size: .95rem; }
.ipw-footer__contact strong { color: var(--ipw-white); font-weight: 600; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.ipw-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; margin-top: 56px; padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .16); font-size: .85rem; }
.ipw-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.ipw-footer .ipw-footer__payments { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.ipw-footer__payments li { display: flex; }
.ipw-footer__payments svg { width: 46px; height: 30px; display: block; border-radius: 5px; background: #fff; }
@media (max-width: 989px) { .ipw-footer__top { grid-template-columns: 1fr 1fr; } .ipw-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 540px) { .ipw-footer__top { grid-template-columns: 1fr; } }

/* ==========================================================================
   Product page
   ========================================================================== */
.ipw-pdp { padding-block: clamp(28px, 4vw, 56px) clamp(56px, 7vw, 100px); }
.ipw-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: .88rem; margin-bottom: clamp(20px, 3vw, 36px); color: var(--ipw-muted); }
.ipw-breadcrumb a { text-decoration: none; }
.ipw-breadcrumb a:hover { text-decoration: underline; }
.ipw-breadcrumb span[aria-hidden] { opacity: .5; }

.ipw-pdp__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
@media (max-width: 989px) { .ipw-pdp__grid { grid-template-columns: 1fr; } }

.ipw-gallery { position: sticky; top: 104px; display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 16px; }
.ipw-gallery__main {
  position: relative;
  grid-column: 2;
  aspect-ratio: 4 / 5;
  border: 2.5px solid var(--ipw-ink);
  border-radius: var(--ipw-radius);
  overflow: hidden;
  background: var(--ipw-white);
  box-shadow: 8px 8px 0 var(--ipw-ink);
}
.ipw-gallery__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .25s ease; }
.ipw-gallery__slide.is-active { opacity: 1; z-index: 1; }
.ipw-gallery__slide img { width: 100%; height: 100%; object-fit: cover; }
.ipw-gallery__thumbs { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 10px; height: 0; min-height: 100%; overflow-y: auto; scrollbar-width: none; }
.ipw-gallery__thumb {
  flex-shrink: 0;
  width: 100%;
  aspect-ratio: 4 / 5;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 12px;
  overflow: hidden;
  background: var(--ipw-white);
  cursor: pointer;
  opacity: .7;
  transition: .15s ease;
}
.ipw-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.ipw-gallery__thumb:hover { opacity: 1; }
.ipw-gallery__thumb.is-active { border-color: var(--ipw-ink); opacity: 1; }
.ipw-gallery__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 2px solid var(--ipw-ink);
  background: var(--ipw-cream);
  box-shadow: 2px 2px 0 var(--ipw-ink);
  transform: translateY(-50%);
  cursor: pointer;
}
.ipw-gallery__nav--prev { left: 14px; }
.ipw-gallery__nav--next { right: 14px; }
.ipw-gallery__nav svg { width: 18px; height: 18px; }
@media (max-width: 989px) {
  .ipw-gallery { position: static; grid-template-columns: 1fr; }
  .ipw-gallery__main { grid-column: 1; }
  .ipw-gallery__thumbs { grid-row: 2; flex-direction: row; overflow-x: auto; height: auto; min-height: 0; }
  .ipw-gallery__thumb { width: 64px; }
}

.ipw-pdp__vendor { font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ipw-muted); margin-bottom: 10px !important; }
.ipw-pdp__title { font-size: clamp(2.2rem, 4.2vw, 3.5rem) !important; line-height: 1 !important; margin-bottom: 18px !important; }
.ipw-pdp__price-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 22px; }
.ipw-pdp__price { font-size: 1.35rem; font-weight: 700; background: var(--ipw-blue); border: 2px solid var(--ipw-ink); border-radius: 999px; padding: 6px 18px; }
.ipw-pdp__compare { text-decoration: line-through; color: var(--ipw-muted); }
.ipw-pdp__stock { display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; font-weight: 600; }
.ipw-pdp__stock::before { content: ''; width: 10px; height: 10px; border-radius: 50%; background: #3fa34d; box-shadow: 0 0 0 4px rgba(63, 163, 77, .2); }
.ipw-pdp__stock.is-out::before { background: var(--ipw-red); box-shadow: 0 0 0 4px rgba(226, 56, 31, .2); }
.ipw-pdp__summary { font-size: 1.02rem; margin-bottom: 26px; }
.ipw-pdp__tax { font-size: .85rem; color: var(--ipw-muted); margin: -12px 0 22px !important; }

.ipw-field { margin-bottom: 20px; }
.ipw-field label, .ipw-field__label { display: block; font-weight: 700; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 8px; }
.ipw-select, .ipw-input, .ipw-textarea {
  width: 100%;
  font: inherit;
  color: var(--ipw-ink);
  background: var(--ipw-white);
  border: 2px solid var(--ipw-ink);
  border-radius: 14px;
  padding: 13px 16px;
}
.ipw-textarea { min-height: 150px; resize: vertical; }
.ipw-select:focus, .ipw-input:focus, .ipw-textarea:focus { outline: 3px solid var(--ipw-blue); outline-offset: 1px; }

.ipw-buy { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: stretch; margin-bottom: 14px; }
.ipw-qty { display: inline-flex; align-items: center; border: 2.5px solid var(--ipw-ink); border-radius: 999px; background: var(--ipw-white); overflow: hidden; }
.ipw-qty button { width: 46px; height: 100%; min-height: 54px; border: 0; background: transparent; font-size: 1.3rem; cursor: pointer; color: var(--ipw-ink); }
.ipw-qty button:hover { background: var(--ipw-cream); }
.ipw-qty input { width: 44px; border: 0; text-align: center; font: inherit; font-weight: 700; background: transparent; -moz-appearance: textfield; }
.ipw-qty input::-webkit-outer-spin-button, .ipw-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ipw-buy .ipw-btn { font-size: 1.3rem; }
.ipw-form-message { font-size: .92rem; margin-top: 8px; min-height: 1.2em; }
.ipw-form-message.is-error { color: var(--ipw-red); }

.ipw-perks { display: grid; gap: 12px; margin: 28px 0; padding: 20px; background: var(--ipw-white); border: 2.5px solid var(--ipw-brown); border-radius: var(--ipw-radius-sm); }
.ipw-perk { display: flex; gap: 14px; align-items: flex-start; font-size: .93rem; }
.ipw-perk__icon { flex-shrink: 0; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; border: 2px solid var(--ipw-brown); }
.ipw-perk:nth-child(1) .ipw-perk__icon { background: var(--ipw-yellow); }
.ipw-perk:nth-child(2) .ipw-perk__icon { background: var(--ipw-pink); }
.ipw-perk:nth-child(3) .ipw-perk__icon { background: var(--ipw-green); }
.ipw-perk:nth-child(4) .ipw-perk__icon { background: var(--ipw-blue); }
.ipw-perk__icon svg { width: 18px; height: 18px; }
.ipw-perk strong { display: block; font-size: .95rem; }
.ipw-perk p { margin: 0 !important; color: var(--ipw-muted); }

.ipw-accordion { border-top: 2.5px solid var(--ipw-ink); }
.ipw-accordion details { border-bottom: 2.5px solid var(--ipw-ink); }
.ipw-accordion summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: 18px 0;
  font-family: var(--ipw-font-display);
  text-transform: uppercase;
  font-size: 1.35rem;
}
.ipw-accordion summary::-webkit-details-marker { display: none; }
.ipw-accordion summary::after { content: '+'; font-family: var(--ipw-font-body); font-size: 1.8rem; line-height: 1; transition: transform .2s ease; }
.ipw-accordion details[open] summary::after { transform: rotate(45deg); }
.ipw-accordion__body { padding-bottom: 22px; }

.ipw-rte h3 { font-family: var(--ipw-font-display); font-weight: 400; text-transform: uppercase; font-size: 1.3rem; letter-spacing: .01em; margin: 22px 0 10px; }
.ipw-rte h3:first-child { margin-top: 0; }
.ipw-rte p { margin: 0 0 12px; }
.ipw-rte ul { margin: 0 0 12px; padding-left: 0; list-style: none; display: grid; gap: 8px; }
.ipw-rte ul li { position: relative; padding-left: 22px; }
.ipw-rte ul li::before { content: ''; position: absolute; left: 2px; top: .55em; width: 9px; height: 9px; border-radius: 50%; background: var(--ipw-pink); border: 1.5px solid var(--ipw-brown); }
.ipw-rte strong { font-weight: 700; }
.ipw-sku { font-size: .85rem; color: var(--ipw-muted); margin-top: 16px; }

/* Toast */
.ipw-toast {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 200;
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: calc(100vw - 40px);
  background: var(--ipw-cream);
  color: var(--ipw-ink);
  border: 2.5px solid var(--ipw-ink);
  border-radius: 18px;
  box-shadow: 6px 6px 0 var(--ipw-ink);
  padding: 14px 16px 14px 20px;
  font-weight: 600;
  transform: translateY(140%);
  transition: transform .25s ease;
}
.ipw-toast.is-visible { transform: translateY(0); }

/* ==========================================================================
   Collection
   ========================================================================== */
.ipw-collection-hero { padding-block: clamp(44px, 6vw, 84px) clamp(28px, 4vw, 48px); text-align: center; }
.ipw-collection-hero .ipw-display { margin-bottom: 16px; }
.ipw .ipw-collection-hero__text { max-width: 56ch; margin-inline: auto; }
.ipw-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 28px; margin-bottom: 36px; border-bottom: 2.5px solid var(--ipw-ink); }
.ipw-toolbar__count { font-weight: 600; }
.ipw-toolbar .ipw-select { width: auto; padding: 10px 14px; }
.ipw-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ipw-chip { text-decoration: none; font-weight: 600; font-size: .92rem; padding: 8px 16px; border: 2px solid var(--ipw-ink); border-radius: 999px; background: var(--ipw-white); }
.ipw-chip.is-active, .ipw-chip:hover { background: var(--ipw-yellow); }
.ipw-pagination { display: flex; justify-content: center; gap: 10px; margin-top: 56px; }
.ipw-pagination a, .ipw-pagination span { min-width: 44px; height: 44px; display: grid; place-items: center; padding: 0 12px; border: 2px solid var(--ipw-ink); border-radius: 999px; text-decoration: none; font-weight: 700; }
.ipw-pagination .is-current { background: var(--ipw-ink); color: var(--ipw-cream); }
.ipw-empty { text-align: center; padding: 60px 0; }

/* ==========================================================================
   Contact
   ========================================================================== */
.ipw-contact__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 90px); align-items: start; }
.ipw-contact__cards { display: grid; gap: 16px; margin-top: 34px; }
.ipw-contact__form { background: var(--ipw-white); border: 2.5px solid var(--ipw-ink); border-radius: var(--ipw-radius); box-shadow: 8px 8px 0 var(--ipw-ink); padding: clamp(24px, 4vw, 44px); }
.ipw-contact__form .ipw-display { margin-bottom: 22px; }
.ipw-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ipw-notice { padding: 14px 18px; border-radius: 14px; border: 2px solid var(--ipw-ink); margin-bottom: 20px; font-weight: 600; }
.ipw-notice--success { background: var(--ipw-green); }
.ipw-notice--error { background: var(--ipw-pink); }
@media (max-width: 989px) { .ipw-contact__grid { grid-template-columns: 1fr; } }
@media (max-width: 540px) { .ipw-form-row { grid-template-columns: 1fr; } }

.ipw-visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }

@media (max-width: 540px) {
  .ipw-grid--4 { --ipw-cols: 2; gap: 26px 14px; }
  .ipw-grid--4 .ipw-card__info { flex-direction: column; gap: 8px; margin-top: 14px; }
  .ipw-grid--4 .ipw-card__title { font-size: 1.05rem; }
  .ipw-grid--4 .ipw-card__media { box-shadow: 4px 4px 0 var(--ipw-ink); }
}

/* ==========================================================================
   WordPress layer
   ========================================================================== */
html { scroll-behavior: smooth; }
body.ipw-theme { font-size: 16px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
.ipw-main { display: block; outline: 0; }
.ipw-site-header { display: contents; }
.admin-bar .ipw-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ipw-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .ipw-header { top: 0; } }

.ipw-skip-link {
  position: absolute;
  left: 12px;
  top: -60px;
  z-index: 300;
  background: var(--ipw-brown);
  color: var(--ipw-cream);
  padding: 10px 16px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
}
.ipw-skip-link:focus { top: 12px; }

/* Header menu items rendered by wp_nav_menu */
.ipw-nav__list > li { list-style: none; }
.ipw-nav__dropdown li { list-style: none; }
.ipw-mobile-nav li ul li > a { font-family: var(--ipw-font-body); text-transform: none; font-size: 1rem; }

/* Search panel */
.ipw-search { border-top: 2px solid rgba(43, 27, 18, .12); background: var(--ipw-cream); padding-block: 16px; }
.ipw-search[hidden] { display: none; }
.ipw-search__form { display: flex; align-items: center; gap: 12px; }
.ipw-search__form .ipw-input { flex: 1; min-width: 0; border-radius: 999px; }
.ipw-search__form .ipw-btn { flex-shrink: 0; }

/* Generic pages, posts */
.ipw-page__hero { padding-block: clamp(44px, 6vw, 84px) clamp(24px, 3vw, 40px); text-align: center; }
.ipw-page__hero .ipw-display { margin-bottom: 0; }
.ipw-page__search { max-width: 560px; margin: 26px auto 0; }
.ipw-page__content { max-width: 820px; margin-inline: auto; }
.ipw-page__content--wide { max-width: none; }
.ipw-page__thumb { max-width: 1000px; margin: 0 auto 40px; }
.ipw-page__thumb img { width: 100%; border-radius: var(--ipw-radius); border: 2.5px solid var(--ipw-ink); }

.ipw-entry { font-size: 1.05rem; }
.ipw-entry > * + * { margin-top: 1em; }
.ipw-entry h2, .ipw-entry h3, .ipw-entry h4 {
  font-family: var(--ipw-font-display);
  font-weight: 400;
  text-transform: uppercase;
  line-height: 1.05;
  letter-spacing: .01em;
  margin: 1.6em 0 .5em;
}
.ipw-entry h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
.ipw-entry h3 { font-size: clamp(1.3rem, 2.2vw, 1.6rem); }
.ipw-entry h4 { font-size: 1.2rem; }
.ipw-entry > :first-child { margin-top: 0; }
.ipw-entry p { margin: 0 0 1em; }
.ipw-entry a:not(.ipw-btn):not(.button):not(.wp-element-button):not(.wc-block-components-button) { color: var(--ipw-brown); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 2px; text-decoration-color: var(--ipw-pink); }
.ipw-entry a:not(.ipw-btn):hover { text-decoration-color: var(--ipw-brown); }
.ipw-entry ul:not([class*="wc-"]):not([class*="woocommerce"]):not(.ipw-comments__list):not(.children) { padding-left: 0; list-style: none; display: grid; gap: 8px; margin: 0 0 1.2em; }
.ipw-entry ul:not([class*="wc-"]):not([class*="woocommerce"]):not(.ipw-comments__list):not(.children) > li { position: relative; padding-left: 24px; }
.ipw-entry ul:not([class*="wc-"]):not([class*="woocommerce"]):not(.ipw-comments__list):not(.children) > li::before { content: ''; position: absolute; left: 2px; top: .55em; width: 10px; height: 10px; border-radius: 50%; background: var(--ipw-pink); border: 1.5px solid var(--ipw-brown); }
.ipw-entry ol { padding-left: 1.3em; }
.ipw-entry img { max-width: 100%; height: auto; border-radius: var(--ipw-radius-sm); }
.ipw-entry blockquote { margin: 1.5em 0; padding: 18px 24px; background: var(--ipw-white); border: 2.5px solid var(--ipw-brown); border-radius: var(--ipw-radius-sm); box-shadow: var(--ipw-shadow); }
.ipw-entry table { width: 100%; border-collapse: collapse; background: var(--ipw-white); }
.ipw-entry th, .ipw-entry td { border: 1.5px solid rgba(43, 27, 18, .2); padding: 10px 12px; text-align: left; }
.ipw-entry .wp-block-button__link, .ipw-entry .wp-element-button:not(.wc-block-components-button) { font-family: var(--ipw-font-display); text-transform: uppercase; border: 2.5px solid var(--ipw-brown); border-radius: 999px; background: var(--ipw-pink); color: var(--ipw-brown); box-shadow: 4px 4px 0 var(--ipw-brown); }

.ipw-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 32px; }
.ipw-post-card { display: flex; flex-direction: column; background: var(--ipw-white); border: 2.5px solid var(--ipw-ink); border-radius: var(--ipw-radius); box-shadow: 6px 6px 0 var(--ipw-ink); overflow: hidden; }
.ipw-post-card__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.ipw-post-card__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex-grow: 1; align-items: flex-start; }
.ipw-post-card__meta { font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ipw-muted); margin: 0 !important; }
.ipw-post-card__title { font-family: var(--ipw-font-display); font-weight: 400; text-transform: uppercase; font-size: 1.6rem; line-height: 1.05; margin: 0; }
.ipw-post-card__title a { text-decoration: none; }
.ipw-post-card__excerpt { color: var(--ipw-muted); flex-grow: 1; }
.ipw-post-card__excerpt p { margin: 0 !important; }

.ipw-pagination .page-numbers.dots { border: 0; }

.ipw-comments { max-width: 820px; margin: 56px auto 0; }
.ipw-comments__list { list-style: none; padding: 0; }
.ipw-comments .comment-body { background: var(--ipw-white); border: 2px solid var(--ipw-ink); border-radius: var(--ipw-radius-sm); padding: 18px; margin-bottom: 16px; }
.ipw-comments input[type="text"], .ipw-comments input[type="email"], .ipw-comments input[type="url"], .ipw-comments textarea { width: 100%; font: inherit; background: var(--ipw-white); border: 2px solid var(--ipw-ink); border-radius: 14px; padding: 12px 14px; }

/* Collection toolbar additions */
.ipw-toolbar__right { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ipw-chips--sub { margin-top: 12px; }
.ipw-chips--sub .ipw-chip { font-size: .82rem; padding: 6px 13px; background: transparent; }
.ipw-chip[aria-current] { background: var(--ipw-yellow); }

/* Prices inside pills */
.ipw-pill del, .ipw-pdp__price del { opacity: .6; font-weight: 500; margin-right: 4px; }
.ipw-pill ins, .ipw-pdp__price ins { text-decoration: none; }
.ipw-pill .woocommerce-price-suffix { font-size: .75em; }
.ipw-pdp__compare .woocommerce-Price-amount { text-decoration: line-through; }

/* Product page extras */
.ipw-buy--single { grid-template-columns: 1fr; }
.ipw-pdp__summary p:last-child { margin-bottom: 0 !important; }
.ipw-pdp .woocommerce-notices-wrapper:empty { display: none; }

/* Variable / grouped / external products use WooCommerce's own form */
.ipw-woo-form { margin-bottom: 14px; }
.ipw-woo-form table.variations { width: 100%; border: 0; margin-bottom: 14px; border-collapse: collapse; }
.ipw-woo-form table.variations th, .ipw-woo-form table.variations td { display: block; padding: 0; border: 0; text-align: left; background: none; }
.ipw-woo-form table.variations th label { display: block; font-weight: 700; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 8px; }
.ipw-woo-form table.variations td { margin-bottom: 16px; }
.ipw-woo-form select { width: 100%; font: inherit; color: var(--ipw-ink); background: var(--ipw-white); border: 2px solid var(--ipw-ink); border-radius: 14px; padding: 13px 16px; }
.ipw-woo-form .reset_variations { display: inline-block; margin-top: 8px; font-size: .88rem; }
.ipw-woo-form .woocommerce-variation-price { margin-bottom: 12px; font-weight: 700; font-size: 1.2rem; }
.ipw-woo-form .woocommerce-variation-add-to-cart,
.ipw-woo-form form.cart:not(.variations_form) { display: flex; gap: 14px; align-items: stretch; flex-wrap: wrap; }
.ipw-woo-form .single_add_to_cart_button { flex: 1; }

/* WooCommerce quantity fields (cart, variable products) */
.quantity .qty,
.ipw-qty-input { font: inherit; font-weight: 700; text-align: center; width: 5em; min-height: 50px; border: 2.5px solid var(--ipw-ink); border-radius: 999px; background: var(--ipw-white); color: var(--ipw-ink); }

/* Buttons from WooCommerce / core blocks */
.ipw-theme .button,
.ipw-theme button.button,
.ipw-theme a.button,
.ipw-theme input.button,
.ipw-theme .single_add_to_cart_button,
.ipw-theme .wc-block-components-button:not(.is-link),
.ipw-theme .wc-block-cart__submit-button,
.ipw-theme .wc-block-components-checkout-place-order-button,
.ipw-theme .woocommerce-button,
.ipw-theme .wp-block-button__link,
.ipw-theme .wp-element-button:not(.wc-block-components-button):not(.wc-block-components-totals-coupon-link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  font-family: var(--ipw-font-display) !important;
  font-weight: 400 !important;
  font-size: 1.1rem;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: .02em;
  text-decoration: none !important;
  color: var(--ipw-brown) !important;
  background: var(--ipw-pink) !important;
  border: 2.5px solid var(--ipw-brown) !important;
  border-radius: 999px !important;
  padding: .8em 1.5em;
  box-shadow: 4px 4px 0 var(--ipw-brown);
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
}
.ipw-theme .button:hover,
.ipw-theme .single_add_to_cart_button:hover,
.ipw-theme .wc-block-components-button:not(.is-link):hover,
.ipw-theme .woocommerce-button:hover,
.ipw-theme .wp-block-button__link:hover { transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--ipw-brown); }
.ipw-theme .button.alt,
.ipw-theme .checkout-button,
.ipw-theme #place_order,
.ipw-theme .wc-block-cart__submit-button,
.ipw-theme .wc-block-components-checkout-place-order-button { background: var(--ipw-blue) !important; }
.ipw-theme .button:disabled,
.ipw-theme .button.disabled { opacity: .55; cursor: not-allowed; transform: none; }

/* Notices */
.ipw-theme .woocommerce-message,
.ipw-theme .woocommerce-info,
.ipw-theme .woocommerce-error,
.ipw-theme .wc-block-components-notice-banner {
  list-style: none;
  margin: 0 0 24px;
  padding: 14px 18px;
  border: 2.5px solid var(--ipw-ink) !important;
  border-radius: 14px;
  background: var(--ipw-white);
  color: var(--ipw-ink);
  box-shadow: 4px 4px 0 var(--ipw-ink);
  font-weight: 600;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.ipw-theme .woocommerce-message::before,
.ipw-theme .woocommerce-info::before,
.ipw-theme .woocommerce-error::before { display: none; }
.ipw-theme .woocommerce-message { background: #e9f3d6; }
.ipw-theme .woocommerce-error { background: #ffe1e6; }
.ipw-theme .woocommerce-message .button,
.ipw-theme .woocommerce-info .button { order: 2; font-size: .95rem; padding: .6em 1.2em; float: none; }

/* Forms (cart, checkout, account) */
.ipw-page--woo input[type="text"],
.ipw-page--woo input[type="email"],
.ipw-page--woo input[type="tel"],
.ipw-page--woo input[type="password"],
.ipw-page--woo input[type="number"],
.ipw-page--woo textarea,
.ipw-page--woo select,
.ipw-page--woo .select2-container .select2-selection {
  font: inherit;
  color: var(--ipw-ink);
  background: var(--ipw-white);
  border: 2px solid var(--ipw-ink);
  border-radius: 12px;
  padding: 10px 14px;
  min-height: 48px;
}
.ipw-page--woo .select2-container .select2-selection__rendered { line-height: 26px; padding: 0; }
.ipw-page--woo .select2-container .select2-selection__arrow { top: 10px; right: 8px; }
.ipw-page--woo label { font-weight: 600; }
.ipw-page--woo .wc-block-components-text-input input,
.ipw-page--woo .wc-block-components-combobox .wc-block-components-combobox-control input,
.ipw-page--woo .wc-blocks-components-select__select { border: 2px solid var(--ipw-ink) !important; border-radius: 12px !important; background: var(--ipw-white) !important; }

/* Classic cart / checkout tables and boxes */
.ipw-page--woo table.shop_table { background: var(--ipw-white); border: 2.5px solid var(--ipw-ink); border-radius: var(--ipw-radius-sm); border-collapse: separate; overflow: hidden; box-shadow: 6px 6px 0 var(--ipw-ink); }
.ipw-page--woo table.shop_table th { font-family: var(--ipw-font-display); font-weight: 400; text-transform: uppercase; letter-spacing: .02em; }
.ipw-page--woo table.shop_table td, .ipw-page--woo table.shop_table th { border-top: 1.5px solid rgba(43, 27, 18, .15); padding: 14px 16px; }
.ipw-page--woo table.cart img { width: 72px; border-radius: 10px; border: 2px solid var(--ipw-ink); }
.ipw-page--woo .cart_totals h2,
.ipw-page--woo #order_review_heading,
.ipw-page--woo .woocommerce-billing-fields h3,
.ipw-page--woo .woocommerce-shipping-fields h3,
.ipw-page--woo .woocommerce-column__title,
.ipw-page--woo .woocommerce-order-details__title { font-family: var(--ipw-font-display); font-weight: 400; text-transform: uppercase; font-size: 1.7rem; }
.ipw-page--woo #payment { background: var(--ipw-white); border: 2.5px solid var(--ipw-ink); border-radius: var(--ipw-radius-sm); }
.ipw-page--woo #payment div.payment_box { background: var(--ipw-cream); }
.ipw-page--woo #payment div.payment_box::before { border-bottom-color: var(--ipw-cream); }
.ipw-page--woo a.remove { color: var(--ipw-red) !important; }

/* Block cart / checkout */
.ipw-page--woo .wc-block-cart,
.ipw-page--woo .wc-block-checkout { font-family: var(--ipw-font-body); }
.ipw-page--woo .wc-block-cart .wc-block-cart__totals-title,
.ipw-page--woo .wc-block-components-title,
.ipw-page--woo .wc-block-components-checkout-step__title { font-family: var(--ipw-font-display) !important; font-weight: 400 !important; text-transform: uppercase; letter-spacing: .02em; }
.ipw-page--woo .wp-block-woocommerce-cart-order-summary-block,
.ipw-page--woo .wp-block-woocommerce-checkout-order-summary-block { background: var(--ipw-white); border: 2.5px solid var(--ipw-ink) !important; border-radius: var(--ipw-radius-sm); padding: 8px 18px 14px; box-shadow: 6px 6px 0 var(--ipw-ink); margin-bottom: 22px; }
.ipw-page--woo .wc-block-cart__submit-container { background: transparent; border: 0; box-shadow: none; }
.ipw-page--woo .wc-block-cart__submit-button { width: 100%; }
.ipw-page--woo .wc-block-components-quantity-selector { border-radius: 999px; }
.ipw-page--woo .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input { border: 0; min-height: 0; padding: 0; background: transparent; border-radius: 0; }
.ipw-page--woo .wc-block-components-quantity-selector::after { border: 2px solid var(--ipw-ink) !important; border-radius: 999px !important; opacity: 1 !important; }
.ipw-page--woo .wc-block-components-product-name { font-weight: 700; color: var(--ipw-ink); }
.ipw-page--woo .wc-block-cart-item__image img { border-radius: 10px; }

/* My account */
.ipw-page--woo .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 32px; display: grid; gap: 8px; }
.ipw-page--woo .woocommerce-MyAccount-navigation a { display: block; padding: 10px 16px; border: 2px solid var(--ipw-ink); border-radius: 999px; background: var(--ipw-white); text-decoration: none; font-weight: 600; }
.ipw-page--woo .woocommerce-MyAccount-navigation .is-active a,
.ipw-page--woo .woocommerce-MyAccount-navigation a:hover { background: var(--ipw-yellow); }
.ipw-page--woo .woocommerce-form-login,
.ipw-page--woo .woocommerce-form-register,
.ipw-page--woo .woocommerce-ResetPassword { background: var(--ipw-white); border: 2.5px solid var(--ipw-ink) !important; border-radius: var(--ipw-radius) !important; box-shadow: 6px 6px 0 var(--ipw-ink); padding: clamp(20px, 4vw, 36px) !important; }
.ipw-page--woo .u-columns h2 { font-family: var(--ipw-font-display); font-weight: 400; text-transform: uppercase; }

/* WooCommerce loops from shortcodes / widgets */
.ipw-theme ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(22px, 3vw, 44px) clamp(18px, 3vw, 44px); }
.ipw-theme ul.products::before, .ipw-theme ul.products::after { display: none; }
.ipw-theme ul.products li.ipw-loop-item { width: auto !important; margin: 0 !important; float: none !important; padding: 0; }
.ipw-theme ul.products li.ipw-loop-item::before { display: none; }
@media (max-width: 989px) { .ipw-theme ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Reviews inside the product accordion */
.ipw-reviews .woocommerce-Reviews-title,
.ipw-reviews #reply-title { font-family: var(--ipw-font-display); font-weight: 400; text-transform: uppercase; font-size: 1.3rem; }
.ipw-reviews ol.commentlist { list-style: none; padding: 0; }
.ipw-reviews ol.commentlist li .comment-text { border: 2px solid var(--ipw-ink) !important; border-radius: 14px !important; background: var(--ipw-white); }
.ipw-reviews input[type="text"], .ipw-reviews input[type="email"], .ipw-reviews textarea { width: 100%; font: inherit; background: var(--ipw-white); border: 2px solid var(--ipw-ink); border-radius: 12px; padding: 10px 14px; }
.ipw-reviews .star-rating, .ipw-reviews p.stars a { color: var(--ipw-orange); }
.ipw-reviews .form-submit input[type="submit"] { font-family: var(--ipw-font-display); text-transform: uppercase; font-size: 1.1rem; color: var(--ipw-brown); background: var(--ipw-pink); border: 2.5px solid var(--ipw-brown); border-radius: 999px; padding: .75em 1.5em; box-shadow: 4px 4px 0 var(--ipw-brown); cursor: pointer; }

/* Admin preview: Customizer selective refresh outlines */
.customize-partial-edit-shortcut button { box-shadow: none; }

.ipw-entry .ipw-policy-date { color: var(--ipw-muted); font-size: .92rem; }
a[href^="tel:"] { white-space: nowrap; }
@media (max-width: 540px) {
  .ipw-search__form { gap: 8px; }
  .ipw-search__form .ipw-btn { padding-inline: 1em; }
}
