  /*********Home Page Start**********/
 .hero {
     background: linear-gradient(180deg, #fff, var(--bg-alt));
     border-bottom: 1px solid var(--line)
 }

 .hero .wrap {
     display: grid;
     grid-template-columns: 1.05fr .95fr;
     gap: 48px;
     align-items: center;
     padding: 64px 28px 70px
 }

 .hero h1 {
     font-size: clamp(2.2rem, 4.6vw, 3.5rem);
     font-weight: 600;
     line-height: 1.12
 }

 .hero h1 .u {
     color: var(--navy);
     position: relative;
     white-space: nowrap
 }

 .hero p.lead {
     font-size: 1.16rem;
     color: var(--slate);
     max-width: 540px;
     margin: 20px 0 0;
     line-height: 1.65
 }

 .hero .badges {
     display: flex;
     gap: 8px;
     margin: 22px 0 0
 }

 .hero .actions {
     margin-top: 28px;
     display: flex;
     gap: 12px;
     flex-wrap: wrap
 }

 .hero .trust {
     margin-top: 24px;
     font-size: .92rem;
     color: var(--slate);
     display: flex;
     align-items: center;
     gap: 8px
 }

 .hero .trust b {
     color: var(--ink);
     font-weight: 700
 }

 .hero-books {
     position: relative;
     height: 380px;
     display: flex;
     align-items: center;
     justify-content: center
 }

 .hb {
     width: 230px;
     aspect-ratio: 3/4;
     border-radius: 10px;
     color: #fff;
     padding: 20px 18px;
     box-shadow: var(--shadow);
     position: absolute;
     display: flex;
     flex-direction: column;
     justify-content: space-between;
     border-left: 8px solid rgba(0, 0, 0, .18)
 }

 .hb .t {
     font-family: var(--serif);
     font-weight: 600;
     font-size: 1.2rem;
     line-height: 1.15
 }

 .hb .s {
     font-family: var(--sans);
     font-weight: 700;
     font-size: 9px;
     letter-spacing: .14em;
     text-transform: uppercase;
     opacity: .8
 }

 .hb .tag {
     font-family: var(--sans);
     font-weight: 700;
     font-size: 10px;
     letter-spacing: .06em;
     text-transform: uppercase;
     background: rgba(255, 255, 255, .18);
     padding: 4px 9px;
     border-radius: 4px;
     align-self: flex-start
 }

 .hb1 {
     transform: rotate(-7deg) translate(-86px, 8px);
     background: linear-gradient(160deg, #0B3A66, #14538f);
     z-index: 1
 }

 .hb2 {
     transform: rotate(0deg);
     background: linear-gradient(160deg, #143f6e, #1f6fae);
     z-index: 3
 }

 .hb3 {
     transform: rotate(7deg) translate(86px, 8px);
     background: linear-gradient(160deg, #0e3358, #155089);
     z-index: 2
 }

 .trust-strip {
     background: var(--navy);
     color: #fff
 }

 .trust-strip .grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr)
 }

 .ts {
     padding: 26px 18px;
     text-align: center;
     border-right: 1px solid rgba(255, 255, 255, .12)
 }

 .ts:last-child {
     border-right: 0
 }

 .ts .n {
     font-family: var(--serif);
     font-size: 1.9rem;
     font-weight: 600;
     color: #fff
 }

 .ts .l {
     font-size: .84rem;
     color: #bcd2e6;
     margin-top: 4px;
     letter-spacing: .02em
 }

 .board-cards {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 22px;
     margin-top: 42px
 }

 .bcard {
     display: block;
     background: #fff;
     border: 1px solid var(--line);
     border-radius: var(--r);
     padding: 28px;
     transition: .2s;
     position: relative;
     overflow: hidden
 }

 .bcard:hover {
     box-shadow: var(--shadow);
     transform: translateY(-3px);
     border-color: var(--line-d)
 }

 .bcard .strip {
     position: absolute;
     left: 0;
     top: 0;
     bottom: 0;
     width: 6px
 }

 .bcard.cbse .strip {
     background: var(--cbse)
 }

 .bcard.icse .strip {
     background: var(--icse)
 }

 .bcard.state .strip {
     background: var(--state)
 }

 .bcard h3 {
     font-size: 1.4rem;
     margin-bottom: 6px
 }

 .bcard p {
     color: var(--slate);
     font-size: .96rem
 }

 .bcard .go {
     margin-top: 16px;
     font-family: var(--sans);
     font-weight: 700;
     font-size: .9rem;
     color: var(--navy);
     display: inline-flex;
     align-items: center;
     gap: 6px
 }

 .vp-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 24px;
     margin-top: 42px
 }

 .vp {
     padding: 4px
 }

 .vp .ic {
     width: 48px;
     height: 48px;
     border-radius: 10px;
     background: var(--bg-soft);
     color: var(--navy);
     display: flex;
     align-items: center;
     justify-content: center;
     margin-bottom: 14px
 }

 .vp h3 {
     font-size: 1.12rem;
     margin-bottom: 6px
 }

 .vp p {
     color: var(--slate);
     font-size: .95rem
 }

 .schools {
     background: var(--navy);
     color: #fff;
     border-radius: var(--r);
     padding: 48px;
     display: grid;
     grid-template-columns: 1.3fr 1fr;
     gap: 36px;
     align-items: center
 }

 .schools h2 {
     color: #fff;
     font-size: clamp(1.6rem, 3.2vw, 2.2rem)
 }

 .schools p {
     color: #cfe0ef;
     margin-top: 12px
 }

 .schools .pts {
     display: flex;
     flex-direction: column;
     gap: 10px;
     margin-top: 18px
 }

 .schools .pt {
     display: flex;
     align-items: center;
     gap: 10px;
     color: #e6eff7;
     font-size: .96rem
 }

 .schools .pt svg {
     color: #7ed0f5;
     flex-shrink: 0
 }

 .schools .act {
     display: flex;
     flex-direction: column;
     gap: 12px
 }

 .voice-grid {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 22px;
     margin-top: 42px
 }

 .voice {
     background: #fff;
     border: 1px solid var(--line);
     border-radius: var(--r);
     padding: 28px;
     display: flex;
     flex-direction: column
 }

 .voice .stars {
     color: #e0a92e;
     letter-spacing: 2px;
     font-size: 14px;
     margin-bottom: 12px
 }

 .voice p {
     color: var(--ink);
     font-size: 1.04rem;
     line-height: 1.6;
     flex: 1
 }

 .voice .who {
     margin-top: 20px;
     display: flex;
     align-items: center;
     gap: 12px;
     border-top: 1px solid var(--line);
     padding-top: 16px
 }

 .voice .av {
     width: 42px;
     height: 42px;
     border-radius: 8px;
     background: var(--navy);
     color: #fff;
     display: flex;
     align-items: center;
     justify-content: center;
     font-family: var(--sans);
     font-weight: 700
 }

 .voice .n {
     font-family: var(--sans);
     font-weight: 700;
     font-size: .96rem
 }

 .voice .r {
     color: var(--slate);
     font-size: .84rem
 }

 @media(max-width:980px) {
     .hero .wrap {
         grid-template-columns: 1fr;
         gap: 30px
     }

     .hero-books {
         height: 320px;
         order: -1
     }

     .board-cards {
         grid-template-columns: 1fr
     }

     .vp-grid {
         grid-template-columns: repeat(2, 1fr)
     }

     .schools {
         grid-template-columns: 1fr;
         padding: 34px
     }

     .voice-grid {
         grid-template-columns: 1fr
     }
 }

 @media(max-width:680px) {
     .trust-strip .grid {
         grid-template-columns: repeat(2, 1fr)
     }

     .ts {
         border-bottom: 1px solid rgba(255, 255, 255, .12)
     }

     .vp-grid {
         grid-template-columns: 1fr
     }
 }
 /*********Home Page End**********/
 /***************School Page Start****************/
 .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:42px}
  .svc{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px}
  .svc .ic{width:48px;height:48px;border-radius:10px;background:var(--bg-soft);color:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
  .svc h3{font-size:1.2rem}.svc p{color:var(--slate);margin-top:6px;font-size:.96rem}
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:38px;counter-reset:s}
  .step{padding:22px;border:1px solid var(--line);border-radius:var(--r);background:#fff;position:relative}
  .step .num{font-family:var(--serif);font-weight:700;color:var(--navy);font-size:1.6rem}
  .step h4{font-family:var(--sans);font-weight:700;margin:8px 0 4px}.step p{color:var(--slate);font-size:.9rem}
  .enq{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  @media(max-width:980px){.svc-grid{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.enq{grid-template-columns:1fr}}
 /***************School Page End  ***************/

 /***************About Us Start *********************/

  .about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:start}
  .about-copy p{color:var(--slate);line-height:1.75}.about-copy p+p{margin-top:16px}
  .about-aside{background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--r);padding:30px}
  .about-aside .stat+.stat{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}
  .about-aside .n{font-family:var(--serif);font-weight:600;font-size:1.7rem;color:var(--navy)}
  .about-aside .l{color:var(--slate);font-size:.92rem}
  .vals{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:46px}
  .val{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px}
  .val .ic{width:48px;height:48px;border-radius:10px;background:var(--bg-soft);color:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
  .val h3{font-size:1.2rem}.val p{color:var(--slate);margin-top:6px;font-size:.95rem}
  @media(max-width:980px){.about-grid{grid-template-columns:1fr;gap:30px}.vals{grid-template-columns:1fr}}

 /***************About US End ***********************/
 /**********************Contact US Start***********/
   .contact-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:44px;align-items:start}
  .info-card{background:var(--navy);color:#fff;border-radius:var(--r);padding:32px}
  .info-list{list-style:none;padding:0;margin:0}
  .info-list li{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.14)}
  .info-list li:last-child{border-bottom:0}
  .info-list .ic{width:40px;height:40px;border-radius:8px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0}
  .info-list .k{font-family:var(--sans);font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#9fc2e0}
  .info-list .v{font-weight:500;margin-top:3px;color:#eaf2fa}.info-list a.v:hover{text-decoration:underline}
  @media(max-width:980px){.contact-grid{grid-template-columns:1fr;gap:30px}}
 /********************Contact Us End*****************/

 /*********************Dashboard*****************************/
section.dashboard{
    padding-top:30px;
}
.dash {
    display: grid;
    grid-template-columns: 272px 1fr;
    gap: 36px;
    align-items: start;
    padding: 20px 0 0;
}

.dash-side {
    position: sticky;
    top: 96px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 22px;
    overflow: hidden
}

.dash-user {
    display: flex;
    align-items: center;
    gap: 13px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line-2);
    margin-bottom: 12px
}

.dash-user__av {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--forest);
    color: var(--paper);
    font-family: var(--display);
    font-size: 1.4rem;
    font-weight: 600;
    display: grid;
    place-items: center;
    flex-shrink: 0
}

.dash-user__name {
    font-weight: 800;
    font-size: 1.02rem;
    line-height: 1.2
}

.dash-user__mail {
    font-size: .78rem;
    color: var(--ink-55);
    word-break: break-all
}

.dash-nav {
    display: flex;
    flex-direction: column;
    gap: 2px
}

.dash-nav button {
    display: flex;
    align-items: center;
    gap: 12px;
    background: none;
    border: none;
    text-align: left;
    width: 100%;
    padding: 12px 12px;
    border-radius: 11px;
    font-weight: 800;
    font-size: .93rem;
    color: var(--ink-70);
    transition: background .2s, color .2s
}

.dash-nav button svg {
    width: 19px;
    height: 19px;
    flex-shrink: 0;
    color: var(--ink-55);
    transition: color .2s
}

.dash-nav button:hover {
    background: var(--paper-2);
    color: var(--ink)
}

.dash-nav button.on {
    background: var(--forest);
    color: var(--paper)
}

.dash-nav button.on svg {
    color: var(--leaf)
}

.dash-nav .logout {
    color: #a13c2c;
    margin-top: 8px;
    border-top: 1px solid var(--line-2);
    border-radius: 0 0 11px 11px;
    padding-top: 16px
}

.dash-nav .logout svg {
    color: #a13c2c
}

.dash-panel {
    display: none
}

.dash-panel.on {
    display: block;
    animation: pop .35s var(--ease)
}

.dash-panel>h2 {
    font-size: clamp(1.6rem, 3.2vw, 2.2rem);
    margin-bottom: 6px
}

.dash-panel>.sub {
    color: var(--ink-70);
    
    margin: 0 0 26px
}
.dash-panel .sub{
    font-family: var(--sans);
    font-size: 13px;
}

/* overview */
.greet {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    margin-bottom: 26px
}

.dstats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-bottom: 30px
}

.dstat {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 20px 18px;
    transition: transform .25s var(--ease), border-color .25s
}

.dstat:hover {
    transform: translateY(-3px);
    border-color: var(--leaf)
}

.dstat .num {
    font-family: var(--display);
    font-size: 1.9rem;
    font-weight: 600;
    line-height: 1
}

.dstat .lbl {
    font-size: .74rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ink-55);
    font-weight: 800;
    margin-top: 8px
}

.dstat svg {
    width: 50px;
    height: 50px;
    color: var(--leaf-deep);
    margin-bottom: 12px
}

/* orders table */
.otable {
    width: 100%;
    border-collapse: collapse;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    overflow: hidden;
    font-size: .93rem
}

.otable thead th {
    text-align: left;
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ink-55);
    font-weight: 800;
    padding: 15px 16px;
    background: var(--paper-2);
    border-bottom: 1px solid var(--line)
}

.otable td {
    padding: 15px 16px;
    border-bottom: 1px solid var(--line-2);
    vertical-align: middle
}

.otable tbody tr:last-child td {
    border-bottom: none
}

.otable tbody tr {
    transition: background .2s
}

.otable tbody tr:hover {
    background: var(--paper-2)
}

.otable .oid {
    font-weight: 800
}

.otable .items {
    color: var(--ink-70)
}

.otable .amt {
    font-family: var(--display);
    font-weight: 600;
    white-space: nowrap
}

.st {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: .74rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 6px 12px;
    border-radius: 100px;
    white-space: nowrap
}

.st::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor
}

.st--ship {
    background: rgba(201, 154, 60, .16);
    color: var(--gold-deep)
}

.st--done {
    background: rgba(136, 168, 72, .18);
    color: var(--leaf-deep)
}

.st--proc {
    background: rgba(94, 122, 90, .14);
    color: var(--moss)
}

.otable .act a {
    font-weight: 800;
    color: var(--leaf-deep);
    font-size: .86rem
}

.otable .act a:hover {
    text-decoration: underline
}

.table-scroll {
    overflow-x: auto;
    border-radius: var(--radius-lg)
}

/* wishlist */
.wish {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px
}

.wish .product {
    padding-top: 20px
}

.wish .heart {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid var(--line);
    background: var(--paper);
    display: grid;
    place-items: center;
    color: #a13c2c;
    z-index: 2
}

.wish .heart:hover {
    background: #a13c2c;
    color: #fff;
    border-color: #a13c2c
}

/* addresses */
.addrs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px
}

.acard {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 24px;
    position: relative
}

.acard .tag {
    position: absolute;
    top: 16px;
    right: 16px
}

.acard h3 {
    font-size: 1.05rem;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 9px
}

.acard h3 svg {
    width: 18px;
    height: 18px;
    color: var(--leaf-deep)
}

.acard p {
    margin: 0 0 4px;
    color: var(--ink-70);
    font-size: .93rem
}

.acard .row {
    display: flex;
    gap: 14px;
    margin-top: 16px
}

.acard .row button {
    background: none;
    border: none;
    color: var(--leaf-deep);
    font-weight: 800;
    font-size: .85rem;
    padding: 0
}

.acard .row button:hover {
    text-decoration: underline
}

.acard .row .del {
    color: #a13c2c
}

.acard--new {
    border-style: dashed;
    display: grid;
    place-items: center;
    min-height: 190px;
    cursor: pointer;
    color: var(--ink-55);
    font-weight: 800;
    transition: border-color .2s, color .2s;
    background: transparent
}

.acard--new:hover {
    border-color: var(--leaf-deep);
    color: var(--leaf-deep)
}

.acard--new svg {
    width: 26px;
    height: 26px;
    display: block;
    margin: 0 auto 10px
}

/* settings */
.set-form {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 28px;
    max-width: 560px;
    margin-bottom: 22px
}

.set-form h3 {
    font-size: 1.2rem;
    margin-bottom: 18px
}

.toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 0;
    border-bottom: 1px solid var(--line-2)
}

.toggle-row:last-of-type {
    border-bottom: none
}

.toggle-row .t {
    font-weight: 700;
    font-size: .94rem
}

.toggle-row .d {
    font-size: .8rem;
    color: var(--ink-55)
}

.switch {
    position: relative;
    width: 46px;
    height: 26px;
    flex-shrink: 0
}

.switch input {
    position: absolute;
    opacity: 0;
    inset: 0;
    cursor: pointer;
    z-index: 1;
    width: 100%;
    height: 100%
}

.switch .tr {
    position: absolute;
    inset: 0;
    border-radius: 100px;
    background: var(--line);
    transition: background .25s
}

.switch .tr::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    transition: transform .25s var(--ease);
    box-shadow: 0 1px 4px rgba(0, 0, 0, .2)
}

.switch input:checked+.tr {
    background: var(--leaf-deep)
}

.switch input:checked+.tr::after {
    transform: translateX(20px)
}

.switch input:focus-visible+.tr {
    outline: 2.5px solid var(--leaf-deep);
    outline-offset: 3px
}

@media(max-width:1024px) {
    .dstats {
        grid-template-columns: 1fr 1fr
    }

    .wish {
        grid-template-columns: 1fr 1fr
    }
}

@media(max-width:900px) {
    .dash {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .dash-side {
        position: static
    }

    .dash-nav {
        flex-direction: row;
        flex-wrap: wrap
    }

    .dash-nav button {
        width: auto;
        flex: 1 1 auto;
        justify-content: center
    }

    .dash-nav .logout {
        margin-top: 0;
        border-top: none;
        padding-top: 12px
    }
}

@media(max-width:560px) {
    .wish {
        grid-template-columns: 1fr 1fr
    }

    .addrs {
        grid-template-columns: 1fr
    }

    .dstats {
        gap: 10px
    }
}
 /*********************Dashboard End*****************************/

 /*********************Checkout Page*****************************/
.co-steps {
  display: flex;
  justify-content: center;
  gap: 0;
  margin: 26px 0 0;
  flex-wrap: wrap;
}

.co-step {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  font-size: .86rem;
  color: var(--ink-55);
}

.co-step .dot {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 2px solid var(--line);
  display: grid;
  place-items: center;
  font-size: .8rem;
  background: var(--card);
}

.co-step.done .dot,
.co-step.on .dot {
  border-color: var(--leaf-deep);
  background: var(--leaf);
  color: var(--ink);
}

.co-step.on {
  color: var(--ink);
}

.co-step__bar {
  width: 56px;
  height: 2px;
  background: var(--line);
  margin: auto 12px;
}

.done + .co-step__bar {
    background-color: var(--leaf-deep);
    
}


.co-step.done {
  color: var(--forest);
}

/* layout */
.checkout {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 44px;
    align-items: start;
    padding: 38px 0 84px
}

.co-card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 30px 28px;
    margin-bottom: 24px
}

.co-card>h2 {
    font-size: 1.45rem;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 12px
}

.co-card>h2 .n {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--leaf);
    color: var(--ink);
    font-family: var(--body);
    font-size: .86rem;
    font-weight: 900;
    display: grid;
    place-items: center;
    flex-shrink: 0
}

.co-card .hint {
    color: var(--ink-55);
    font-size: .9rem;
    margin: 0 0 20px
}

/* option cards (delivery / payment) */
.opts {
    display: grid;
    gap: 12px
}

.opt {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    border: 1.5px solid var(--line);
    border-radius: var(--radius);
    padding: 16px;
    cursor: pointer;
    transition: border-color .2s, background .2s;
    background: var(--paper)
}

.opt:hover {
    border-color: var(--moss)
}

.opt>input {
    accent-color: var(--leaf-deep);
    width: 18px;
    height: 18px;
    margin-top: 2px;
    flex-shrink: 0
}

.opt.on {
    border-color: var(--leaf-deep);
    background: rgba(136, 168, 72, .08)
}

.opt__body {
    flex: 1
}

.opt__ttl {
    font-weight: 800;
    font-size: .98rem;
    display: flex;
    align-items: center;
    gap: 8px
}

.opt__ttl svg {
    width: 19px;
    height: 19px;
    color: var(--leaf-deep)
}

.opt__sub {
    font-size: .85rem;
    color: var(--ink-55);
    margin-top: 3px
}

.opt__price {
    font-weight: 800;
    font-family: var(--display);
    font-size: 1.05rem;
    white-space: nowrap
}

.pay-extra {
    display: none;
    padding: 6px 0 2px 32px
}

.opt.on .pay-extra {
    display: block
}

.pay-extra .field {
    display: block;
    margin: 10px 0 0
}

.pay-extra .field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 12px
}

.pay-extra .field input {
    width: 100%;
    height: auto;
    margin: 0;
    background: var(--paper)
}



/* summary */
.summary {
    position: sticky;
    top: 96px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 28px
}

.summary h2 {
    font-size: 1.4rem;
    margin-bottom: 18px
}

.ci {
    display: flex;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--line-2)
}

.ci__img{
    width: 90px;
  min-width: 90px;
  max-width: 90px;
  height: 120px;
  min-height: 120px;
  max-height: 120px;
  aspect-ratio: 3/4;
  object-fit: cover;
  border-radius: 10px;
  flex-shrink: 0;
  background: var(--paper-2);
}

.ci .book {
    width: 56px;
    padding: 8px 7px 8px 10px;
    border-radius: 3px 5px 5px 3px
}

.ci .book__title {
    font-size: .5rem
}

.ci .book__imprint {
    font-size: .34rem
}

.ci .book__by {
    display: none
}

.ci__body {
    flex: 1;
    min-width: 0
}

.ci__ttl {
    font-weight: 800;
    font-size: .94rem;
    line-height: 1.25
}

.ci__sub {
    font-size: .8rem;
    color: var(--ink-55);
    margin-top: 2px
}

.ci__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
    gap: 10px
}

.ci .qty {
    transform: scale(.82);
    transform-origin: left center
}

.ci .qty button {
    height: 38px;
    width: 36px
}

.ci__price {
    font-family: var(--display);
    font-weight: 600;
    font-size: 1.05rem;
    white-space: nowrap
}

.ci__rm {
    background: none;
    border: none;
    color: var(--ink-55);
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none;
    padding: 0
}

.ci__rm:hover {
    color: #a13c2c
}

.coupon {
    display: flex;
    gap: 8px;
    margin: 18px 0 6px
}

.coupon input {
    flex: 1;
    padding: .75em 1em;
    border: 1px solid var(--line);
    border-radius: 100px;
    background: var(--paper);
    font-family: inherit;
    font-size: .9rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 700
}

.coupon input:focus {
    outline: none;
    border-color: var(--leaf);
    box-shadow: 0 0 0 3px rgba(136, 168, 72, .18)
}

.coupon .btn {
    padding: .7em 1.3em;
    font-size: .84rem
}

.coupon-msg {
    font-size: .82rem;
    font-weight: 700;
    min-height: 1.2em;
    margin-bottom: 8px
}

.coupon-msg.ok {
    color: var(--leaf-deep)
}

.coupon-msg.err {
    color: #a13c2c
}

.totals {
    margin-top: 8px
}

.trow {
    display: flex;
    justify-content: space-between;
    padding: 7px 0;
    font-size: .95rem;
    color: var(--ink-70)
}

.trow.disc {
    color: var(--leaf-deep);
    font-weight: 700
}

.trow.grand {
    border-top: 1px solid var(--line);
    margin-top: 8px;
    padding-top: 14px;
    color: var(--ink);
    font-weight: 800;
    font-size: 1.15rem
}

.trow.grand .amt {
    font-family: var(--display);
    font-size: 1.5rem
}

.summary .btn {
    width: 100%;
    justify-content: center;
    margin-top: 18px
}

.secure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: .8rem;
    color: var(--ink-55);
    margin-top: 14px;
    font-weight: 700
}

.secure svg {
    width: 15px;
    height: 15px;
    color: var(--leaf-deep)
}

.empty-cart {
    text-align: center;
    padding: 28px 0;
    color: var(--ink-55);
    display: none
}

/* success */
#co-success {
    /* display: none; */
    text-align: center;
    max-width: 620px;
    margin: 0 auto;
    padding: 40px 0 45px
}


#co-success .bloom {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: var(--leaf);
    display: grid;
    place-items: center;
    margin: 0 auto 26px;
    color: var(--ink);
    animation: pop .5s var(--ease)
}

#co-success h1 {
    font-size: clamp(2rem, 5vw, 3rem);
    margin-bottom: .3em
}

#co-success p {
    color: var(--ink-70);
    margin: 0 0 8px
}

#co-success .oid {
    display: inline-block;
    background: var(--paper-2);
    border: 1px dashed var(--moss);
    border-radius: 12px;
    padding: 12px 22px;
    font-weight: 800;
    letter-spacing: .06em;
    margin: 18px 0 26px
}

#co-success .row {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap
}

@media(max-width:1024px) {
    .checkout {
        grid-template-columns: 1fr
    }

    .summary {
        position: static
    }
}

@media(max-width:560px) {
    .step__bar {
        width: 22px;
        margin: 0 6px
    }

    .co-card {
        padding: 22px 18px
    }
}

.addr-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.addr-card {
    position: relative;
    display: block;
    border: 1.5px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 18px;
    cursor: pointer;
    background: var(--paper);
    transition: border-color .2s;
}
.addr-card input {
    position: absolute;
    top: 14px;
    right: 14px;
}
.addr-card:has(input:checked) {
    border-color: var(--leaf-deep);
    background: rgba(136,168,72,.08);
}
.addr-card__ttl { font-weight: 800; margin-bottom: 6px; }
.addr-card__ttl .tag { font-size: .72rem; color: var(--leaf-deep); font-weight: 700; margin-left: 6px; }
.addr-card__name { font-weight: 700; margin-bottom: 4px; }
.addr-card__line { font-size: .85rem; color: var(--ink-55); line-height: 1.5; }

.addr-card--add {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-style: dashed;
    color: var(--ink-55);
    font-weight: 700;
    min-height: 120px;
}
.addr-card__plus { font-size: 1.8rem; line-height: 1; margin-bottom: 6px; }

@media(max-width:640px) {
    .addr-grid { grid-template-columns: 1fr; }
}

/* review */
.review-block {
    border-bottom: 1px solid var(--line-2);
    padding: 14px 0;
}
.review-block:last-of-type { border-bottom: none; }
.review-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.review-edit {
    background: none;
    border: none;
    color: var(--leaf-deep);
    font-weight: 700;
    font-size: .85rem;
    text-decoration: underline;
    cursor: pointer;
}
.review-text {
    color: var(--ink-70);
    font-size: .92rem;
    margin-top: 6px;
    line-height: 1.5;
}

.step-actions{
    display: flex;
    justify-content: space-between;
    margin-top:20px;
}


.addr-type-group {
    display: flex;
    gap: 10px;
    margin-top: 8px;
}
.addr-type-opt {
    display: flex !important;
    align-items: center;
    gap: 6px;
    border: 1.5px solid var(--line);
    border-radius: 100px;
    padding: 8px 16px;
    cursor: pointer;
    font-size: .88rem;
    font-weight: 700;
    background: var(--paper);
}
.addr-type-opt input { display: none; }
.addr-type-opt svg { width: 16px; height: 16px; }
.addr-type-opt.on {
    border-color: var(--leaf-deep);
    background: rgba(136,168,72,.1);
    color: var(--leaf-deep);
}


#modal-generic .modal {
    max-width: 520px;
}

#modal-generic .modal{
    width: min(525px, 100%) !important;
}


.modal .field textarea,.modal .field select {
    background: var(--card);
}

.field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px
}
 /*********************Checkout Page End*************************/
/* =====================================================================
   Page-specific — order-status.html
   ===================================================================== */

/* lookup */
.lookup {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 30px 28px;
    max-width: 640px;
    margin: -34px auto 0;
    position: relative;
    z-index: 2;
    box-shadow: var(--shadow-soft)
}

.lookup h2 {
    font-size: 1.3rem;
    margin-bottom: 4px
}

.lookup .hint {
    color: var(--ink-55);
    font-size: .88rem;
    margin: 0 0 18px
}

.lookup .row {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 12px;
    align-items: end
}

.lookup .btn {
    height: 49px
}

@media(max-width:700px) {
    .lookup .row {
        grid-template-columns: 1fr
    }
}

/* status header */
.order-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 8px
}

.order-head h2 {
    font-size: clamp(1.6rem, 3.4vw, 2.2rem)
}

.order-head .sub {
    color: var(--ink-55);
    font-size: .92rem;
    font-weight: 700;
    margin-top: 6px
}

.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(136, 168, 72, .16);
    border: 1px solid rgba(136, 168, 72, .5);
    color: var(--leaf-deep);
    font-weight: 900;
    font-size: .78rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 9px 16px;
    border-radius: 100px
}

.status-pill .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--leaf-deep);
    animation: pulse 1.8s infinite
}

@keyframes pulse {

    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(110, 140, 56, .4)
    }

    50% {
        box-shadow: 0 0 0 6px rgba(110, 140, 56, 0)
    }
}

.eta {
    background: var(--paper-2);
    border: 1px dashed var(--moss);
    border-radius: var(--radius);
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 700;
    margin: 18px 0 40px
}

.eta svg {
    width: 22px;
    height: 22px;
    color: var(--leaf-deep);
    flex-shrink: 0
}

.eta b {
    font-family: var(--display);
    font-size: 1.1rem
}

/* vine timeline */
.track {
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--steps, 4), 1fr);
  gap: 8px;
  margin: 14px 0 10px;
}



.track::before {
    content: "";
    position: absolute;
    top: 19px;
     left: calc(50% / var(--steps, 4));
  right: calc(50% / var(--steps, 4));

    /* left: 10%;
    right: 10%; */
    height: 3px;
    background: var(--line);
    border-radius: 2px
}

.track::after {
    content: "";
    position: absolute;
    top: 19px;
      left: calc(50% / var(--steps, 4));
  width: calc(var(--prog, 0%) * (1 - 1 / var(--steps, 4)));
    /* left: 10%;
    width: var(--prog, 50%); */
    max-width: 80%;
    height: 3px;
    background: linear-gradient(90deg, var(--moss), var(--leaf));
    border-radius: 2px;
    transition: width 1.2s var(--ease)
}

.tk {
    position: relative;
    z-index: 1;
    text-align: center;
    padding-top: 0
}

.tk__dot {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--paper);
    border: 2.5px solid var(--line);
    display: grid;
    place-items: center;
    margin: 0 auto 12px;
    color: var(--ink-55);
    transition: .3s
}

.tk__dot svg {
    width: 18px;
    height: 18px
}

.tk.done .tk__dot {
    background: var(--leaf);
    border-color: var(--leaf-deep);
    color: var(--ink)
}

.tk.now .tk__dot {
    background: var(--forest);
    border-color: var(--forest);
    color: var(--paper);
    box-shadow: 0 0 0 6px rgba(47, 74, 56, .15)
}

.tk__ttl {
    font-weight: 800;
    font-size: .88rem
}

.tk.now .tk__ttl {
    color: var(--forest)
}

.tk__date {
    font-size: .76rem;
    color: var(--ink-55);
    font-weight: 700;
    margin-top: 3px
}

.tk:not(.done):not(.now) .tk__ttl {
    color: var(--ink-55)
}

@media(max-width:820px) {
    .track {
        grid-template-columns: 1fr;
        gap: 0
    }

    .track::before,
    .track::after {
        left: 19px;
        right: auto;
        top: 6%;
        bottom: 6%;
        width: 3px;
        height: auto
    }

    .track::after {
        height: var(--prog, 50%);
        max-height: 88%;
        width: 3px;
        background: linear-gradient(var(--moss), var(--leaf))
    }

    .tk {
        display: flex;
        text-align: left;
        gap: 16px;
        align-items: flex-start;
        padding: 14px 0
    }

    .tk__dot {
        margin: 0
    }
}

/* details grid */
.od-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 24px;
    margin-top: 44px;
    align-items: start
}

.od-card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 26px
}

.od-card h3 {
    font-size: 1.15rem;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 10px
}

.od-card h3 svg {
    width: 20px;
    height: 20px;
    color: var(--leaf-deep)
}

.od-item {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--line-2)
}

.od-item img{
    width: 90px;
    min-width: 90px;
    max-width: 90px;
    aspect-ratio: 3/4;
    object-fit: cover;
    border-radius: 10px;
    flex-shrink: 0;
    background: var(--paper-2); 
}

.od-item:last-child {
    border-bottom: none
}

.od-item .book {
    width: 50px;
    padding: 7px 6px 7px 9px;
    border-radius: 3px 5px 5px 3px
}

.od-item .book__title {
    font-size: .46rem
}

.od-item .book__imprint {
    font-size: .32rem
}

.od-item .book__by {
    display: none
}

.od-item__ttl {
    font-weight: 800;
    font-size: .94rem
}

.od-item__sub {
    font-size: .8rem;
    color: var(--ink-55)
}

.od-item__amt {
    margin-left: auto;
    font-family: var(--display);
    font-weight: 600;
    white-space: nowrap
}

.od-lines {
    margin-top: 14px;
    border-top: 1px solid var(--line);
    padding-top: 10px
}

.od-line {
    display: flex;
    justify-content: space-between;
    padding: 5px 0;
    font-size: .92rem;
    color: var(--ink-70)
}

.od-line.total {
    font-weight: 800;
    color: var(--ink);
    font-size: 1.05rem;
    padding-top: 10px
}

.addr p {
    margin: 0 0 4px;
    color: var(--ink-70);
    font-size: .95rem
}

.addr .who {
    font-weight: 800;
    color: var(--ink)
}

.od-card .mini {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 16px
}

.od-card .mini .btn {
    padding: .6em 1.1em;
    font-size: .8rem
}

/* #order-result {
    display: none
} */

@media(max-width:900px) {
    .od-grid {
        grid-template-columns: 1fr
    }
}

.price-strike {
    text-decoration: line-through;
    color: var(--ink-55);
    font-size: .82rem;
}
.price-save {
    font-size: .78rem;
    font-weight: 700;
    color: var(--leaf-deep);
    margin-top: 2px;
}

.remove-coupon {
    background: none;
    border: none;
    color: #dc3545;
    font-size: 12px;
    font-weight: 600;
    font-family: inherit;
    line-height: 1;
    cursor: pointer;
    padding: 0px;
   /* margin-left: 6px; */
    /* border-radius: 50%; */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.remove-coupon:hover {
    color: #e7818b;
}

.remove-coupon:focus {
    outline: none;
    /* box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.3); */
}

.disc-left {
    flex-direction: column;
    display: flex;
    /* justify-content: start; */
    align-items: start;
    flex-wrap: wrap;
    /* align-items: center; */
    /* flex: 1 1 auto; */
    /* min-width: 0; */
}

.coupon-label {
    overflow-wrap: break-word;
}

 /*************************OrderStatus End*************************************/

 .cv-gold   { background: linear-gradient(160deg, #B8860B, #DAA520); }
.cv-sky    { background: linear-gradient(160deg, #1f5d96, #4a90c9); }
.cv-forest { background: linear-gradient(160deg, #1B4332, #2D6A4F); }
.cv-ink    { background: linear-gradient(160deg, #0B1F3A, #1a3560); }
.cv-rust   { background: linear-gradient(160deg, #7A3B12, #A9491D); }
.cv-moss   { background: linear-gradient(160deg, #3A4D23, #5C7A34); }
.cv-plum   { background: linear-gradient(160deg, #4A2545, #6B3768); }
.cv-slate  { background: linear-gradient(160deg, #2F3B44, #47585F); }
.cv-teal   { background: linear-gradient(160deg, #0B4F4A, #147A72); }
.cv-coral  { background: linear-gradient(160deg, #B3452F, #E0623F); }
.cv-olive  { background: linear-gradient(160deg, #4B4B23, #6E6E32); }
.cv-indigo { background: linear-gradient(160deg, #2E1F63, #453092); }
.cv-rose   { background: linear-gradient(160deg, #7A2E4D, #A63E67); }
.cv-other  { background: linear-gradient(160deg, #444444, #666666); }
.cv-saffron{ background: linear-gradient(160deg, #C9781C, #E39A2E); }

.cover-author{
    position:relative;
    z-index:2;
    display: flex;
    flex-direction: column;
}

.shop-toolbar {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
  flex-wrap: wrap;
}

.shop-search-form {
  display: flex;
  gap: 8px;
  max-width: 440px;
  width: 100%;
  margin-bottom: 0;
}

.shop-search-form .field {
  margin: 0;
  flex: 1;
  border: 1.5px solid var(--line-d);
  border-radius: 6px;
  padding: 11px 14px;
}

.pagination {
  display: flex;
  gap: 8px;
  margin-top: 16px;
  flex-wrap: wrap;
}

.shelf-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 30px;
    flex-wrap: wrap
}

.shelf-bar h2 {
    font-size: clamp(1.7rem, 3.4vw, 2.4rem)
}


.set-tabs { display: flex; gap: 8px; margin-bottom: 20px; border-bottom: 1px solid #e5e5e5; }
.set-tab { padding: 10px 16px; border: none; background: none; cursor: pointer; font-size: 14px; color: #777; border-bottom: 2px solid transparent; }
.set-tab.on { color: #111; border-bottom-color: currentColor; font-weight: 600; }
.set-tab-panel { display: none; }
.set-tab-panel.on { display: block; }

.field-inline {
    display: flex;
    align-items: center;
    gap: 10px;
}

.field-inline input {
    flex: 1;
}

.field-inline .btn {
    flex-shrink: 0;
    white-space: nowrap;
}

.btn-verified {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #1a7f37;
    border-color: #1a7f37;
    opacity: 0.85;
    cursor: not-allowed;
}

.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(22, 39, 31, .55);
    backdrop-filter: blur(4px);
    z-index: 300;
    display: none;
    place-items: center;
    padding: 20px
}

.modal-overlay.open {
    display: grid
}

.modal {
    background: var(--paper);
    border-radius: var(--radius-lg);
    width: min(440px, 100%);
    padding: 38px 34px;
    box-shadow: var(--shadow);
    position: relative;
    animation: pop .35s var(--ease)
}

@keyframes pop {
    from {
        opacity: 0;
        transform: translateY(16px) scale(.97)
    }

    to {
        opacity: 1;
        transform: none
    }
}

.modal__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--line);
    background: transparent;
    font-size: 1.1rem;
    color: var(--ink);
    display: grid;
    place-items: center
}

.modal__close:hover {
    background: var(--paper-2)
}

.modal h2 {
    font-size: 1.7rem;
    margin-bottom: .2em
}

.modal .sub {
    color: var(--ink-70);
    margin-bottom: 22px;
    font-size: .95rem
}

.modal .field input {
    background: var(--card)
}

.modal .btn {
    width: 100%;
    justify-content: center;
    margin-top: 6px
}

.modal__alt {
    text-align: center;
    margin-top: 18px;
    font-size: .9rem;
    color: var(--ink-70)
}

.modal__alt button {
    background: none;
    border: none;
    color: var(--leaf-deep);
    font-weight: 800;
    cursor: pointer
}

.shop {
    display: grid;
    grid-template-columns: 270px 1fr;
    gap: 25px;
    align-items: start
}

.filters2 {
    position: sticky;
    top: 96px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 24px
}

.filter-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px
}

.filters2 h3 {
    font-size: 1.05rem;
    margin-bottom: 14px
}

.filter-group {
    padding: 16px 0;
    border-top: 1px solid var(--line-2)
}

.filter-group:first-of-type {
    border-top: none;
    padding-top: 0
}

.filter-group .ttl {
    font-size: .74rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--ink-55);
    margin-bottom: 12px
}

/* .filter-group-options {
    display: flex;
    flex-direction: column;
    gap: 2px
} */

.check {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: .92rem;
    padding: 5px 0;
    color: var(--ink-70);
    cursor: pointer
}

.check input {
    accent-color: var(--leaf-deep);
    width: 16px;
    height: 16px;
    flex-shrink: 0
}

.check:hover {
    color: var(--ink)
}

.shop-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 14px
}

.shop-top .count {
    color: var(--ink-55);
    font-weight: 700;
    font-size: .9rem
}

.shop-search-form {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap
}

.shop-search-form .field {
    padding: .7em 1em;
    border: 1px solid var(--line);
    border-radius: 100px;
    background: var(--card);
    font-family: inherit;
    font-size: .88rem;
    color: var(--ink);
    min-width: 180px;
    flex: 1
}

.select {
    padding: .7em 1em;
    border: 1px solid var(--line);
    border-radius: 100px;
    background: var(--card);
    font-family: inherit;
    font-weight: 700;
    font-size: .88rem;
    color: var(--ink)
}

.products {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px
}

.shop .products {
    grid-template-columns: repeat(3, 1fr)
}

.pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-top: 28px
}

/* ===== Responsive breakpoints ===== */

@media (max-width: 1024px) {
    .shop .products {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media (max-width: 820px) {
    .shop {
        grid-template-columns: 1fr
    }

    .filters2 {
        position: static;
        top: auto
    }

    .shop-top {
        align-items: stretch
    }

    .shop-search-form {
        width: 100%
    }

    .shop-search-form .field {
        min-width: 0
    }
}

@media (max-width: 560px) {
    .products,
    .shop .products {
        grid-template-columns: 1fr 1fr;
        gap: 16px
    }

    .product {
        padding: 16px 12px 14px
    }

    .shop-top {
        flex-direction: column;
        align-items: flex-start
    }

    .shop-search-form {
        flex-direction: row
    }

    .shop-search-form button,
    .shop-search-form a {
        flex-shrink: 0
    }

    .pagination {
        gap: 6px
    }

    .pagination a {
        padding: .5em .9em;
        font-size: .82rem
    }
}

@media (max-width: 400px) {
    .products,
    .shop .products {
        grid-template-columns: 1fr
    }

    .shop-search-form {
        flex-wrap: wrap
    }

    .shop-search-form .field {
        width: 100%
    }
}

@media(max-width:820px) {
    .filter-group-options {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(205px, 1fr));
    }
}

.pagination-ellipsis {
    padding: .5em .4em;
    color: var(--ink-55);
    font-weight: 700;
    user-select: none
}

.products .empty-state {
    grid-column: 1 / -1;
    text-align: center;
    padding: 60px 20px;
    color: var(--ink-55);
    font-size: 1rem;
    font-weight: 600;
    background: var(--card);
    border: 1px dashed var(--line);
    border-radius: var(--radius-lg);
    font-family: var(--serif);
}


.filters2 {
  max-height: 80vh;
  overflow-y: auto;
  scrollbar-width: thin;
}

.filters2::-webkit-scrollbar {
  width: 6px;
}

.filters2::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 3px;
}

.filters2 .filter-head {
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 1;
}