.store,.news,.checkout{background:#fff}.store-grid,.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.store-card,.news-card,.cart-box{border:1px solid #dce9e3;border-radius:18px;padding:20px;background:#fbfdfc}.store-card img{width:100%;height:150px;object-fit:cover;border-radius:12px;background:#edf6f2;margin-bottom:16px}.store-card h3,.news-card h3{margin:8px 0;font-size:1.2rem}.store-card p,.news-card p{color:#60746b;line-height:1.6}.store-card strong{display:block;color:#2c735c;font-size:1.1rem;margin:14px 0}.store-card .button{border:0;cursor:pointer}.store-card__tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#7b9b8e}.store-muted{color:#71847c}.cart-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #e8f0ec}.cart-row>span{display:grid;gap:3px}.cart-row small{color:#71847c;font-size:11px}.cart-controls{display:flex;align-items:center;gap:7px}.cart-controls button{min-width:30px;min-height:30px;border:1px solid #cbded5;border-radius:4px;background:#fff;cursor:pointer}.cart-controls .cart-remove{padding-inline:8px;color:#b65346;font-size:11px}.cart-total{display:flex;justify-content:space-between;padding-top:18px;font-size:1.15rem;color:#2c735c}.cart-nav{display:flex;align-items:center;gap:6px}.cart-nav b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:50%;background:#e9765d;color:white;font-size:10px}.checkout-form h3{margin:5px 0 0;font-size:16px}.checkout-form label,.booking-fields label{display:grid;gap:6px;color:#60746b;font-size:12px;font-weight:700}.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.checkout-required{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:20px;padding-top:16px;border-top:1px solid #e8f0ec}.checkout-required p,.order-confirmation{color:#526f65;font-size:13px}.payment-note{margin:0;color:#75877f;font-size:11px}.order-confirmation{margin:0 0 18px;padding:14px;background:#eaf5ee}.store-card .button:disabled,.checkout-form .button:disabled{opacity:.6;cursor:wait}@media(max-width:800px){.store-grid,.news-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.store-grid,.news-grid{grid-template-columns:1fr}.cart-row{grid-template-columns:1fr auto;gap:9px}.cart-controls{grid-column:1/-1}.checkout-required{align-items:flex-start;flex-direction:column}.booking-fields{grid-template-columns:1fr}}
.auth-actions{display:flex;gap:8px;align-items:center}.auth-actions #user-menu:not([hidden]){display:flex;align-items:center;gap:8px}.user-menu__greeting{font-weight:600;white-space:nowrap}.auth-link{border:0;background:transparent;color:#2c735c;cursor:pointer}.auth-link--solid{background:#2c735c;color:#fff;padding:9px 14px;border-radius:9px}.dashboard-link{font-weight:700}.auth-modal{position:fixed;inset:0;background:#17352dcc;display:grid;place-items:center;z-index:20}.auth-modal[hidden]{display:none}.auth-dialog{position:relative;width:min(92vw,420px);background:#fff;border-radius:18px;padding:28px}.auth-dialog label{display:block;margin:14px 0}.auth-dialog input{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:11px;border:1px solid #cbded5;border-radius:8px}.auth-dialog .button{width:100%;border:0;cursor:pointer}.auth-close{position:absolute;right:15px;top:10px;border:0;background:none;font-size:25px;cursor:pointer}
 .auth-dialog [hidden],.auth-modal[hidden]{display:none!important}
@media(max-width:900px){.header__inner{gap:8px}.auth-actions{margin-left:auto}.button--nav{display:none}}
.checkout-form{display:grid;gap:10px;margin-top:22px;max-width:560px}.checkout-form input,.checkout-form textarea,.checkout-form select{padding:12px;border:1px solid #cbded5;border-radius:8px;font:inherit}.checkout-form textarea{min-height:80px}.checkout-form .button{border:0;cursor:pointer}
.service-like-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.store-card .service-like-row strong{margin:14px 0}.service-like{display:inline-flex;align-items:center;gap:6px;min-width:54px;min-height:34px;padding:0 9px;border:1px solid #dce9e3;border-radius:18px;background:#fff;color:#60746b;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.service-like span:first-child{font-size:18px;line-height:1}.service-like.is-active{border-color:#e8aaa0;color:#c75b4d}.service-like:disabled{opacity:.65;cursor:wait}

/* Shared polish for catalogue, news, checkout and authentication surfaces. */
.store-grid,.news-grid{gap:24px}
.store-card,.news-card,.cart-box{border-radius:var(--radius-md);box-shadow:0 8px 25px rgba(24,63,58,.045);transition:transform .2s,box-shadow .2s,border-color .2s}
.store-card:hover,.news-card:hover{transform:translateY(-4px);border-color:#bcd9cc;box-shadow:var(--shadow-soft)}
.store-card img{height:170px;border-radius:var(--radius-sm)}
.cart-box{box-shadow:none}
.auth-dialog{border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-card)}
.auth-dialog input{padding:12px;border-radius:var(--radius-sm)}
@media(max-width:680px){.store-grid,.news-grid{gap:16px}.auth-actions{gap:5px}.auth-link{font-size:11px;padding-inline:8px}}
/* Keep the service catalog compact while preserving readable cards on small screens. */
.store-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.store-card{padding:16px}
.store-card img{height:125px;margin-bottom:10px}
.store-card h3{margin:7px 0;font-size:1.05rem}
.store-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.45}
.store-card strong{margin:10px 0;font-size:1rem}
.store-card .button{min-height:42px;padding-inline:12px;font-size:12px}
.store-card img{height:110px}
.store-card > div > .store-card__duration{margin:4px 0 0}
.store-card > div > p{margin:8px 0}
.store-card .service-like-row strong{margin:0}
@media(max-width:900px){.store-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.store-card .button{width:100%;padding-inline:6px;white-space:normal}}
@media(max-width:360px){.store-grid{grid-template-columns:1fr}}
.booking-fields .booking-hours{grid-column:1/-1;margin:0;color:#43805a;font-size:11px}.booking-fields select:disabled{background:#f4f7f5;color:#71847c}

.cart-row{grid-template-columns:64px minmax(0,1fr) auto auto}.cart-row__image{width:64px;height:64px;object-fit:cover;border-radius:10px;background:#fff0f7}.cart-row>span{min-width:0}
@media(max-width:520px){.cart-row{grid-template-columns:52px minmax(0,1fr) auto}.cart-row__image{width:52px;height:52px}.cart-controls{grid-column:2/-1}}
@media(max-width:520px){.cart-row strong{font-size:12px}.cart-controls{justify-content:flex-start;flex-wrap:wrap}.cart-total{gap:12px;font-size:1rem}.checkout-form{display:grid;gap:12px}.checkout-form h3,.checkout-form .booking-fields{margin:0}.checkout-form input,.checkout-form textarea,.checkout-form select{min-width:0}.checkout-form .button{width:100%}.auth-dialog{width:calc(100vw - 28px);max-height:calc(100dvh - 28px);overflow:auto;padding:24px 20px}.auth-dialog h2{padding-right:30px}.order-card{gap:14px}.payment-instructions{align-items:flex-start;flex-direction:column}}

/* Pink-and-green Aera Baby Spa palette for cards, forms, and account UI. */
.store,.news,.checkout{background:#fffafd}.store-card,.news-card,.cart-box{border-color:#ccebd4;background:#fff}.store-card img{background:#fff0f7}.store-card p,.news-card p,.checkout-form label,.booking-fields label,.service-like{color:#5e7e68}.store-card strong,.cart-total{color:#087333}.store-card__tag,.store-muted,.cart-row small,.payment-note{color:#43805a}.cart-row,.checkout-required{border-color:#e5f4e8}.cart-controls button,.auth-dialog input,.checkout-form input,.checkout-form textarea,.checkout-form select{border-color:#bfe5c8}.cart-controls .cart-remove{color:#d9086b}.cart-nav b{background:#ff1684}.order-confirmation{background:#effcf1;color:#17663a}.auth-link{min-height:38px;padding:0 13px;border:1px solid #087333;border-radius:9px;background:#fff;color:#087333;font-weight:700}.auth-link:hover{background:#dff6e5}.auth-link--solid{border-color:#ff1684;background:#ff1684;color:#fff}.auth-link--solid:hover{background:#d9086b}.auth-modal{background:rgba(8,115,51,.78)}.service-like.is-active{border-color:#ff9bc8;color:#d9086b}.store-card:hover,.news-card:hover{border-color:#ff9bc8}

/* Pembayaran, invoice, dan riwayat pelanggan. */
.order-history{margin-top:28px}.order-history__heading{margin-bottom:12px}.order-history__heading h3{margin:7px 0 0;color:#174d32}.order-card{display:grid;gap:14px;margin-top:12px;padding:18px;border:1px solid #ccebd4;border-radius:14px;background:#fff}.order-card>div>p{margin:6px 0 0;color:#5e7e68;font-size:13px}.payment-instructions{display:flex;align-items:center;gap:16px;padding:14px;border-radius:10px;background:#effcf1;color:#174d32}.payment-instructions p{margin:5px 0 0;line-height:1.55}.qris-code{display:grid;place-content:center;width:108px;height:108px;flex:0 0 108px;border:7px solid #174d32;background:repeating-conic-gradient(#174d32 0 25%,#fff 0 50%) 0/18px 18px;color:#174d32;text-align:center;box-shadow:inset 0 0 0 17px #fff}.qris-code span,.qris-code small{padding:2px 4px;background:#fff;font-size:12px;font-weight:800}.qris-code small{font-size:8px;word-break:break-all}.invoice{padding:18px;border:1px dashed #87bf99;border-radius:10px;background:#fff}.invoice__head,.invoice__total,.invoice li{display:flex;justify-content:space-between;gap:14px}.invoice__head span{font-size:11px;font-weight:800;letter-spacing:.12em;color:#43805a}.invoice__head h3{margin:4px 0;color:#174d32}.invoice ul{padding:0;margin:15px 0;list-style:none}.invoice li{padding:8px 0;border-bottom:1px solid #e5f4e8;font-size:13px}.invoice__total{padding-top:8px;font-size:16px;color:#174d32}.invoice>p{margin:12px 0;color:#5e7e68;font-size:12px}.payment-badge{height:max-content;padding:5px 8px;border-radius:999px;background:#fff0f7;color:#b22061;font-size:11px}.payment-badge.is-paid{background:#dff6e5;color:#17663a}@media(max-width:520px){.payment-instructions{align-items:flex-start}.qris-code{width:86px;height:86px;flex-basis:86px}}
.qris-code--image{display:block;object-fit:contain;background:#fff;box-shadow:none}
