/* ============================================================
   KHAYAE — Membership, account, search, modal, cart, checkout extras
   ============================================================ */

/* ---------- Wishlist heart on cards ---------- */
.pcard__media {
   position: relative;
}

.pcard__wish {
   position: absolute;
   top: 12px;
   right: 12px;
   z-index: 3;
   width: 36px;
   height: 36px;
   border-radius: 50%;
   background: rgba(251, 249, 246, 0.82);
   color: var(--ink);
   display: flex;
   align-items: center;
   justify-content: center;
   opacity: 0;
   transform: translateY(-4px);
   transition: opacity var(--fast), transform var(--fast), background var(--fast);
}

.pcard:hover .pcard__wish {
   opacity: 1;
   transform: none;
}

.pcard__wish:hover {
   background: var(--paper);
}

.pcard__wish.on {
   opacity: 1;
   transform: none;
   color: var(--brown);
}

/* ---------- Checkboxes ---------- */
.check {
   display: flex;
   align-items: center;
   gap: 11px;
   font-size: 13px;
   color: var(--ink-soft);
   cursor: pointer;
   line-height: 1.5;
}

.check input {
   appearance: none;
   -webkit-appearance: none;
   width: 18px;
   height: 18px;
   border: 1px solid var(--line);
   background: var(--white);
   flex-shrink: 0;
   position: relative;
   cursor: pointer;
   transition: all var(--fast);
   margin-top: 1px;
}

.check input:checked {
   background: var(--ink);
   border-color: var(--ink);
}

.check input:checked::after {
   content: "✓";
   position: absolute;
   inset: 0;
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--paper);
   font-size: 11px;
}

.check--block {
   align-items: flex-start;
   margin-bottom: 14px;
}

.check--block span {
   padding-top: 0;
}

.check a {
   text-decoration: underline;
}

/* ---------- Search overlay ---------- */
.search-ov {
   position: fixed;
   inset: 0;
   z-index: 400;
   background: var(--paper);
   transform: translateY(-100%);
   opacity: 0;
   pointer-events: none;
   transition: transform var(--med) var(--ease), opacity var(--med) var(--ease);
   padding-top: 24px;
}

.search-ov.open {
   transform: none;
   opacity: 1;
   pointer-events: auto;
}

.search-ov__bar {
   display: flex;
   align-items: center;
   gap: 24px;
   padding-top: 12px;
   padding-bottom: 20px;
   border-bottom: 1px solid var(--line);
}

.search-ov__field {
   flex: 1;
   display: flex;
   align-items: center;
   gap: 14px;
   color: var(--stone);
}

.search-ov__field input {
   flex: 1;
   border: none;
   background: none;
   font-family: var(--serif);
   font-size: clamp(22px, 3vw, 36px);
   color: var(--ink);
   padding: 6px 0;
}

.search-ov__field input::placeholder {
   color: var(--stone-2);
}

.search-ov__close {
   font-family: var(--sans);
   font-size: 11px;
   letter-spacing: 0.16em;
   text-transform: uppercase;
}

.search-ov__body {
   padding-top: 34px;
}

.search-ov__chips {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   margin-top: 16px;
}

.search-chip {
   padding: 10px 20px;
   border: 1px solid var(--line);
   border-radius: 40px;
   font-size: 13px;
   transition: all var(--fast);
}

.search-chip:hover {
   border-color: var(--ink);
}

.search-ov__results {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 12px 32px;
}

.search-res {
   display: flex;
   gap: 16px;
   align-items: center;
   text-align: left;
   padding: 12px;
   transition: background var(--fast);
}

.search-res:hover {
   background: var(--paper-2);
}

.search-res__media {
   width: 58px;
   aspect-ratio: 3/4;
   position: relative;
   flex-shrink: 0;
}

.search-res__name {
   font-family: var(--serif);
   font-size: 20px;
}

.search-res__meta {
   font-size: 12px;
   color: var(--stone);
   margin-top: 3px;
}

@media (max-width: 640px) {
   .search-ov__results {
      grid-template-columns: 1fr;
   }
}

/* ---------- Modal ---------- */
.modal-scrim {
   position: fixed;
   inset: 0;
   z-index: 420;
   background: rgba(33, 30, 26, 0.5);
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 24px;
}

.modal {
   background: var(--paper);
   width: 100%;
   max-width: 480px;
   max-height: 88vh;
   overflow-y: auto;
}

.modal--wide {
   max-width: 680px;
}

.modal__head {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 22px 28px;
   border-bottom: 1px solid var(--line);
   position: sticky;
   top: 0;
   background: var(--paper);
}

.modal__title {
   font-family: var(--serif);
   font-size: 24px;
}

.modal__body {
   padding: 26px 28px 32px;
}

/* size table */
.sizetable {
   width: 100%;
   border-collapse: collapse;
}

.sizetable th {
   font-family: var(--sans);
   font-size: 10.5px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--stone);
   text-align: left;
   padding: 0 0 14px;
   border-bottom: 1px solid var(--line);
}

.sizetable td {
   padding: 13px 0;
   border-bottom: 1px solid var(--line-soft);
   font-size: 14px;
   color: var(--ink-soft);
}

.sizetable__size {
   font-family: var(--serif);
   font-size: 18px;
   color: var(--ink);
}

.sizetable__note {
   font-size: 13px;
   color: var(--stone);
   line-height: 1.6;
   margin-top: 20px;
}

/* ============================================================
   AUTH
   ============================================================ */
.auth {
   max-width: 480px;
}

.auth__head {
   margin-bottom: 30px;
}

.auth__title {
   font-size: clamp(34px, 5vw, 56px);
   margin-top: 8px;
}

.auth__sub {
   font-family: var(--serif);
   font-style: italic;
   font-size: 17px;
   color: var(--ink-soft);
   margin-top: 14px;
   line-height: 1.5;
}

.auth__tabs {
   display: flex;
   border-bottom: 1px solid var(--line);
   margin-bottom: 26px;
}

.auth__tab {
   flex: 1;
   padding: 14px;
   font-family: var(--sans);
   font-size: 11px;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   color: var(--stone);
   border-bottom: 1px solid transparent;
   margin-bottom: -1px;
   transition: all var(--fast);
}

.auth__tab.sel {
   color: var(--ink);
   border-bottom-color: var(--ink);
}

.auth__err {
   background: rgba(211, 162, 147, 0.18);
   border: 1px solid var(--peach-deep);
   color: var(--brown-deep);
   padding: 12px 16px;
   font-size: 13px;
   margin-bottom: 18px;
}

.auth__row {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 22px;
}

.auth__alt {
   text-align: center;
   margin-top: 22px;
   font-size: 14px;
   color: var(--ink-soft);
}

.auth__alt .link-ul {
   font-size: 11px;
}

.auth__demo {
   text-align: center;
   margin-top: 18px;
   font-size: 11px;
   letter-spacing: 0.06em;
   color: var(--stone-2);
   font-style: italic;
}

.auth__forgot-note {
   font-size: 14px;
   color: var(--ink-soft);
   line-height: 1.6;
   margin-bottom: 22px;
}

.auth__sent {
   padding: 20px 0;
}

.auth__sent-actions {
   display: flex;
   gap: 12px;
   justify-content: center;
   flex-wrap: wrap;
}

/* password meter */
.pwmeter {
   display: flex;
   align-items: center;
   gap: 12px;
   margin-top: 8px;
}

.pwmeter__bars {
   display: flex;
   gap: 5px;
   flex: 1;
}

.pwmeter__bars i {
   height: 3px;
   flex: 1;
   background: var(--line);
   transition: background var(--fast);
}

.pwmeter__bars i.on.s1 {
   background: var(--peach-deep);
}

.pwmeter__bars i.on.s2 {
   background: #d8b25a;
}

.pwmeter__bars i.on.s3 {
   background: var(--mint-deep);
}

.pwmeter__bars i.on.s4 {
   background: var(--brown);
}

.pwmeter__label {
   font-family: var(--sans);
   font-size: 10.5px;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--stone);
}

/* ============================================================
   MEMBERSHIP CARD
   ============================================================ */
.tier-badge {
   display: inline-block;
   border-radius: 50%;
   vertical-align: middle;
   box-shadow: inset 0 0 0 1px rgba(33, 30, 26, 0.12);
}

.memcard {
   border-radius: 4px;
   padding: 26px 28px;
   color: var(--ink);
   position: relative;
   overflow: hidden;
   box-shadow: 0 18px 40px -24px rgba(33, 30, 26, 0.4);
}

.memcard::after {
   content: "";
   position: absolute;
   inset: 0;
   background: radial-gradient(120% 80% at 90% 0%, rgba(255, 255, 255, 0.35), transparent 60%);
   pointer-events: none;
}

.memcard__top {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   margin-bottom: 36px;
}

.memcard__label {
   font-family: var(--sans);
   font-size: 10px;
   letter-spacing: 0.22em;
   text-transform: uppercase;
   opacity: 0.7;
}

.memcard__tier {
   font-family: var(--serif);
   font-size: 38px;
   line-height: 1;
   margin-top: 6px;
}

.memcard__line {
   font-family: var(--serif);
   font-style: italic;
   font-size: 15px;
   opacity: 0.8;
   margin-top: 4px;
}

.memcard__prog-row {
   display: flex;
   justify-content: space-between;
   font-family: var(--sans);
   font-size: 11px;
   letter-spacing: 0.04em;
   margin-bottom: 8px;
}

.memcard__bar {
   height: 4px;
   background: rgba(33, 30, 26, 0.16);
   border-radius: 4px;
   overflow: hidden;
}

.memcard__bar i {
   display: block;
   height: 100%;
   background: var(--ink);
   border-radius: 4px;
   transition: width 1s var(--ease);
}

.memcard__hint {
   font-size: 12px;
   margin-top: 10px;
   opacity: 0.85;
}

/* ============================================================
   DASHBOARD
   ============================================================ */
.dash__head {
   display: flex;
   justify-content: space-between;
   align-items: flex-end;
   gap: 20px;
   margin-bottom: 36px;
   flex-wrap: wrap;
}

.dash__hello {
   font-size: clamp(36px, 5vw, 64px);
   margin-top: 6px;
}

.dash__sub {
   font-size: 13px;
   color: var(--stone);
   margin-top: 10px;
   display: flex;
   align-items: center;
   gap: 6px;
   flex-wrap: wrap;
}

.dash {
   display: grid;
   grid-template-columns: 220px 1fr;
   gap: clamp(28px, 4vw, 60px);
   align-items: start;
}

.dash__nav {
   display: flex;
   flex-direction: column;
   gap: 2px;
   position: sticky;
   top: calc(var(--nav-h) + var(--announce-h) + 20px);
}

.dash__navlink {
   text-align: left;
   padding: 13px 16px;
   font-family: var(--sans);
   font-size: 12px;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--stone);
   border-left: 1px solid var(--line);
   transition: all var(--fast);
}

.dash__navlink:hover {
   color: var(--ink);
}

.dash__navlink.sel {
   color: var(--ink);
   border-left-color: var(--ink);
   background: var(--paper-2);
}

.dash__navlink--out {
   margin-top: 14px;
   color: var(--peach-deep);
   border-left-color: transparent;
}

.dash__h {
   font-family: var(--serif);
   font-size: 28px;
   margin-bottom: 22px;
   font-weight: 400;
}

.dash__subh {
   font-family: var(--sans);
   font-size: 11px;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   color: var(--stone);
   margin: 26px 0 14px;
}

.dash__overview {
   display: grid;
   grid-template-columns: 1.4fr 1fr;
   gap: 20px;
   margin-bottom: 40px;
}

.dash__quick {
   display: grid;
   grid-template-rows: repeat(3, 1fr);
   gap: 12px;
}

.dash__stat {
   background: var(--paper-2);
   padding: 16px 20px;
   display: flex;
   flex-direction: column;
   justify-content: center;
}

.dash__stat-n {
   font-family: var(--serif);
   font-size: 28px;
   line-height: 1;
}

.dash__stat-l {
   font-family: var(--sans);
   font-size: 10.5px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--stone);
   margin-top: 6px;
}

.dash__empty {
   text-align: center;
   padding: 40px 0;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 14px;
}

.dash__form {
   max-width: 520px;
}

@media (max-width: 860px) {
   .dash {
      grid-template-columns: 1fr;
   }

   .dash__nav {
      flex-direction: row;
      overflow-x: auto;
      position: static;
      padding-bottom: 8px;
   }

   .dash__navlink {
      border-left: none;
      border-bottom: 1px solid var(--line);
      white-space: nowrap;
   }

   .dash__navlink.sel {
      border-bottom-color: var(--ink);
      background: none;
   }

   .dash__navlink--out {
      display: none;
   }

   .dash__overview {
      grid-template-columns: 1fr;
   }

   .dash__quick {
      grid-template-rows: none;
      grid-template-columns: repeat(3, 1fr);
   }
}

/* order row */
.order-row {
   border: 1px solid var(--line);
   margin-bottom: 16px;
}

.order-row__head {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 16px 20px;
   background: var(--paper-2);
}

.order-row__id {
   font-family: var(--sans);
   font-size: 12px;
   letter-spacing: 0.1em;
}

.order-row__date {
   font-size: 12px;
   color: var(--stone);
   margin-left: 14px;
}

.order-row__status {
   font-family: var(--sans);
   font-size: 10px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   padding: 5px 12px;
   border: 1px solid var(--mint-deep);
   color: var(--brown);
}

.order-row__items {
   padding: 8px 20px;
}

.order-row__item {
   display: flex;
   gap: 14px;
   align-items: center;
   padding: 12px 0;
   cursor: pointer;
   border-bottom: 1px solid var(--line-soft);
}

.order-row__item:last-child {
   border-bottom: none;
}

.order-row__media {
   width: 48px;
   aspect-ratio: 3/4;
   position: relative;
   flex-shrink: 0;
}

.order-row__name {
   font-family: var(--serif);
   font-size: 17px;
}

.order-row__attr {
   font-size: 12px;
   color: var(--stone);
   margin-top: 2px;
}

.order-row__foot {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 14px 20px;
   border-top: 1px solid var(--line);
}

.order-row__foot span {
   font-size: 13px;
}

.order-row__actions {
   display: flex;
   gap: 18px;
}

/* addresses */
.addr-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 16px;
}

.addr-card {
   border: 1px solid var(--line);
   padding: 22px;
   position: relative;
}

.addr-card__badge {
   position: absolute;
   top: 16px;
   right: 16px;
   font-family: var(--sans);
   font-size: 9.5px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   background: var(--ink);
   color: var(--paper);
   padding: 4px 10px;
}

.addr-card__label {
   font-family: var(--sans);
   font-size: 11px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--stone);
   margin-bottom: 12px;
}

.addr-card__name {
   font-family: var(--serif);
   font-size: 19px;
}

.addr-card__line {
   font-size: 14px;
   color: var(--ink-soft);
   margin-top: 5px;
   line-height: 1.4;
}

.addr-card__actions {
   display: flex;
   gap: 18px;
   margin-top: 16px;
}

.addr-add {
   border: 1px dashed var(--line);
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   gap: 8px;
   min-height: 140px;
   font-family: var(--sans);
   font-size: 12px;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--stone);
   transition: all var(--fast);
}

.addr-add span {
   font-size: 26px;
   font-family: var(--serif);
}

.addr-add:hover {
   border-color: var(--brown);
   color: var(--ink);
}

@media (max-width: 560px) {
   .addr-grid {
      grid-template-columns: 1fr;
   }
}

/* perk list */
.perk-list {
   list-style: none;
   display: flex;
   flex-direction: column;
   gap: 12px;
}

.perk-list li {
   font-size: 15px;
   color: var(--ink-soft);
   padding-left: 26px;
   position: relative;
   line-height: 1.5;
}

.perk-list li::before {
   content: "";
   position: absolute;
   left: 0;
   top: 9px;
   width: 7px;
   height: 7px;
   border-radius: 50%;
   background: var(--brown);
}

/* ============================================================
   MEMBERSHIP PAGE
   ============================================================ */
.circle-hero {
   position: relative;
   height: 70vh;
   min-height: 480px;
   display: flex;
   align-items: center;
   color: var(--paper);
   overflow: hidden;
}

.circle-hero__media {
   position: absolute;
   inset: 0;
}

.circle-hero__veil {
   position: absolute;
   inset: 0;
   background: linear-gradient(to bottom, rgba(20, 18, 15, 0.4), rgba(20, 18, 15, 0.55));
}

.circle-hero__content {
   position: relative;
   width: 100%;
   padding-top: calc(var(--nav-h) + var(--announce-h));
}

.circle-hero__title {
   font-size: clamp(46px, 8vw, 116px);
}

.circle-hero__sub {
   font-family: var(--serif);
   font-style: italic;
   font-size: clamp(18px, 2.4vw, 26px);
   max-width: 640px;
   margin: 18px auto 0;
   line-height: 1.5;
   opacity: 0.94;
}

.tier-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: clamp(16px, 2vw, 28px);
}

.tier-card {
   border: 1px solid var(--line);
   padding: clamp(26px, 3vw, 40px) clamp(24px, 2.4vw, 34px);
   position: relative;
   background: var(--white);
   display: flex;
   flex-direction: column;
}

.tier-card.current {
   border-color: var(--ink);
   box-shadow: 0 20px 50px -30px rgba(33, 30, 26, 0.5);
}

.tier-card__you {
   position: absolute;
   top: -1px;
   right: -1px;
   font-family: var(--sans);
   font-size: 9.5px;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   background: var(--ink);
   color: var(--paper);
   padding: 6px 12px;
}

.tier-card__chip {
   width: 64px;
   height: 64px;
   border-radius: 50%;
   box-shadow: inset 0 0 0 1px rgba(33, 30, 26, 0.12), 0 8px 20px -10px rgba(33, 30, 26, 0.4);
   margin-bottom: 22px;
}

.tier-card__metal {
   font-family: var(--sans);
   font-size: 10.5px;
   letter-spacing: 0.2em;
   text-transform: uppercase;
   color: var(--stone);
}

.tier-card__name {
   font-family: var(--serif);
   font-size: 38px;
   line-height: 1;
   margin: 6px 0 8px;
}

.tier-card__line {
   font-family: var(--serif);
   font-style: italic;
   font-size: 17px;
   color: var(--ink-soft);
}

.tier-card__thresh {
   font-family: var(--sans);
   font-size: 12px;
   letter-spacing: 0.06em;
   color: var(--brown);
   margin: 16px 0 20px;
   padding-bottom: 20px;
   border-bottom: 1px solid var(--line-soft);
}

.tier-card__perks {
   list-style: none;
   display: flex;
   flex-direction: column;
   gap: 11px;
}

.tier-card__perks li {
   font-size: 14px;
   color: var(--ink-soft);
   line-height: 1.5;
   padding-left: 20px;
   position: relative;
}

.tier-card__perks li::before {
   content: "—";
   position: absolute;
   left: 0;
   color: var(--stone);
}

@media (max-width: 860px) {
   .tier-grid {
      grid-template-columns: 1fr;
      max-width: 480px;
      margin: 0 auto;
   }
}

.circle-how {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 36px;
   border-top: 1px solid var(--line);
   padding-top: clamp(40px, 5vw, 64px);
}

.circle-how__n {
   font-family: var(--serif);
   font-size: 30px;
   color: var(--brown);
}

.circle-how__t {
   font-family: var(--serif);
   font-size: 26px;
   margin: 12px 0 8px;
}

.circle-how__d {
   font-size: 15px;
   color: var(--ink-soft);
   line-height: 1.6;
   max-width: 32ch;
}

@media (max-width: 700px) {
   .circle-how {
      grid-template-columns: 1fr;
      gap: 28px;
   }
}

/* ============================================================
   CART PAGE
   ============================================================ */
.cart-pg__count {
   font-family: var(--sans);
   font-size: 12px;
   letter-spacing: 0.12em;
   text-transform: uppercase;
   color: var(--stone);
   margin-bottom: 36px;
}

.cart-pg {
   display: grid;
   grid-template-columns: 1.5fr 1fr;
   gap: clamp(32px, 5vw, 72px);
   align-items: start;
}

.cart-pg__line {
   display: grid;
   grid-template-columns: 110px 1fr;
   gap: 20px;
   padding: 24px 0;
   border-bottom: 1px solid var(--line);
}

.cart-pg__media {
   aspect-ratio: 3/4;
   position: relative;
   cursor: pointer;
}

.cart-pg__top {
   display: flex;
   justify-content: space-between;
   gap: 16px;
}

.cart-pg__name {
   font-family: var(--serif);
   font-size: 22px;
   cursor: pointer;
   line-height: 1.1;
}

.cart-pg__attr {
   font-size: 12px;
   color: var(--stone);
   margin-top: 6px;
   letter-spacing: 0.02em;
}

.cart-pg__price {
   font-size: 15px;
   white-space: nowrap;
}

.cart-pg__controls {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-top: 20px;
   flex-wrap: wrap;
   gap: 12px;
}

.cart-pg__line-actions {
   display: flex;
   gap: 18px;
}

.cart-pg__line-actions .link-ul {
   font-size: 10px;
}

.cart-pg__gift {
   padding: 24px 0;
}

.cart-pg__note {
   width: 100%;
   margin-top: 14px;
   background: var(--white);
   border: 1px solid var(--line);
   padding: 14px 16px;
   font-size: 14px;
   resize: vertical;
}

.cart-pg__note:focus {
   outline: none;
   border-color: var(--brown);
}

.cart-pg__summary {
   background: var(--paper-2);
   padding: clamp(24px, 3vw, 36px);
   position: sticky;
   top: calc(var(--nav-h) + var(--announce-h) + 20px);
}

.cart-pg__promo {
   margin-bottom: 22px;
   padding-bottom: 22px;
   border-bottom: 1px solid var(--line);
}

.promo-row {
   display: flex;
   gap: 10px;
}

.promo-row input {
   flex: 1;
   background: var(--white);
   border: 1px solid var(--line);
   padding: 12px 14px;
   font-size: 13px;
   letter-spacing: 0.08em;
   text-transform: uppercase;
}

.promo-row input:focus {
   outline: none;
   border-color: var(--brown);
}

.promo-row button {
   font-family: var(--sans);
   font-size: 11px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   padding: 0 20px;
   border: 1px solid var(--ink);
   transition: all var(--fast);
}

.promo-row button:hover {
   background: var(--ink);
   color: var(--paper);
}

.promo-err {
   color: var(--peach-deep);
   font-size: 12px;
   margin-top: 8px;
}

.promo-hint {
   font-size: 11px;
   color: var(--stone-2);
   margin-top: 10px;
   letter-spacing: 0.04em;
}

.promo-applied {
   display: flex;
   justify-content: space-between;
   align-items: center;
   font-size: 13px;
   color: var(--brown);
}

.promo-applied button {
   color: var(--stone);
   display: flex;
}

@media (max-width: 820px) {
   .cart-pg {
      grid-template-columns: 1fr;
   }

   .cart-pg__summary {
      position: static;
   }
}

/* checkout extras */
.co-giftnote {
   background: var(--paper-2);
   padding: 14px 18px;
   font-size: 13px;
   color: var(--ink-soft);
   margin-top: 6px;
}

.review-grid {
   display: grid;
   gap: 1px;
   background: var(--line);
   border: 1px solid var(--line);
   margin-bottom: 24px;
}

.review-block {
   background: var(--paper);
   padding: 18px 20px;
}

.review-block__head {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 8px;
}

.review-block p {
   font-size: 14px;
   color: var(--ink-soft);
   line-height: 1.5;
}

.review-block .link-ul {
   font-size: 10px;
}

.review-items {
   display: flex;
   flex-direction: column;
}

.review-item {
   display: grid;
   grid-template-columns: 52px 1fr auto;
   gap: 16px;
   align-items: center;
   padding: 14px 0;
   border-bottom: 1px solid var(--line-soft);
}

.review-item__media {
   position: relative;
   aspect-ratio: 3/4;
}

.review-item__name {
   font-family: var(--serif);
   font-size: 17px;
}

.review-item__price {
   font-size: 14px;
}

@media (max-width: 560px) {
   .review-grid {
      grid-template-columns: 1fr;
   }
}

/* pdp wishlist button */
.pdp__wishbtn {
   display: inline-flex;
   align-items: center;
   gap: 9px;
   font-family: var(--sans);
   font-size: 11px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--ink-soft);
   margin-top: 16px;
   transition: color var(--fast);
}

.pdp__wishbtn:hover {
   color: var(--ink);
}

.pdp__wishbtn.on {
   color: var(--brown);
}

/* ============================================================
   SERVICE STRIP / ABOUT NUMBERS / PROCESS
   ============================================================ */
.service-strip {
   border-top: 1px solid var(--line);
   border-bottom: 1px solid var(--line);
   background: var(--paper-2);
}

.service-strip__row {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
}

.service-strip__item {
   text-align: left;
   padding: clamp(28px, 3.4vw, 44px) clamp(20px, 2vw, 32px);
   border-left: 1px solid var(--line);
   transition: background var(--fast);
}

.service-strip__item:first-child {
   border-left: none;
}

.service-strip__item:hover {
   background: var(--paper);
}

.service-strip__t {
   font-family: var(--serif);
   font-size: 21px;
   margin-bottom: 7px;
}

.service-strip__d {
   font-size: 13px;
   color: var(--stone);
   line-height: 1.5;
}

@media (max-width: 760px) {
   .service-strip__row {
      grid-template-columns: 1fr 1fr;
   }

   .service-strip__item:nth-child(3) {
      border-left: none;
   }

   .service-strip__item:nth-child(odd) {
      border-left: none;
   }

   .service-strip__item:nth-child(n+3) {
      border-top: 1px solid var(--line);
   }
}

.about-numbers {
   background: var(--ink);
   color: var(--paper);
   padding-block: clamp(48px, 6vw, 84px);
}

.about-numbers__grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 30px;
}

.about-number {
   text-align: center;
}

.about-number__n {
   font-size: clamp(42px, 5vw, 72px);
   line-height: 1;
}

.about-number__l {
   font-family: var(--sans);
   font-size: 12px;
   letter-spacing: 0.04em;
   color: rgba(251, 249, 246, 0.6);
   margin-top: 12px;
   line-height: 1.4;
}

@media (max-width: 700px) {
   .about-numbers__grid {
      grid-template-columns: 1fr 1fr;
      gap: 36px;
   }
}

.process-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: clamp(28px, 4vw, 56px);
}

.process-step__n {
   font-family: var(--serif);
   font-size: 28px;
   color: var(--brown);
}

.process-step__t {
   font-family: var(--serif);
   font-size: 27px;
   margin: 14px 0 10px;
}

.process-step__d {
   font-size: 15px;
   color: var(--ink-soft);
   line-height: 1.65;
   max-width: 34ch;
}

@media (max-width: 760px) {
   .process-grid {
      grid-template-columns: 1fr;
      gap: 30px;
   }
}