:root {
    --ink: #1c242d;
    --muted: #67737e;
    --paper: #ffffff;
    --slate: #edf1f3;
    --red: #b62933;
    --red-dark: #8f1d27;
    --line: #d9e0e4;
    --shadow: 0 24px 60px rgba(30, 43, 54, .14);
}

* { box-sizing: border-box; }

body {
    min-height: 100vh;
    margin: 0;
    color: var(--ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
        "Segoe UI", sans-serif;
    background: var(--slate);
}

body.menu-open { overflow: hidden; }

.auth-page {
    position: relative;
    display: grid;
    min-height: 100vh;
    place-items: center;
    overflow: hidden;
    padding: 104px 20px 32px;
}

.site-nav {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 2;
    display: grid;
    min-height: 72px;
    align-items: center;
    grid-template-columns: 1fr auto 1fr;
    padding: 0 clamp(18px, 4vw, 56px);
    border-bottom: 1px solid #d9dddf;
    background: #fff;
}

.home-content {
    display: grid;
    min-height: 100vh;
    place-content: center;
    gap: 15px;
    padding: 104px 24px 32px;
    text-align: center;
}

.home-content h1 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.4rem, 7vw, 4.5rem); letter-spacing: -.06em; }
.home-content p { max-width: 510px; margin: 0 auto; color: var(--muted); line-height: 1.6; }
.home-hero { position:relative; isolation:isolate; min-height: 100vh; padding: 92px 20px 20px; overflow:hidden; background: var(--slate); }
.home-hero::before,.home-hero::after,.articles-section::before,.articles-section::after{position:absolute;z-index:-1;width:440px;height:440px;border:1px solid rgba(182,41,51,.15);border-radius:50%;content:"";pointer-events:none}.home-hero::before{top:-250px;left:-170px;box-shadow:0 0 0 48px rgba(182,41,51,.035),0 0 0 96px rgba(182,41,51,.025)}.home-hero::after{right:-260px;bottom:-300px;background:rgba(182,41,51,.045)}
.hero-frame { position: relative; width: min(100%, 1500px); min-height: calc(100vh - 112px); margin: 0 auto; overflow: hidden; border-radius: 25px; background: #1a1d1f; box-shadow: var(--shadow); }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .7s ease; }
.hero-slide.is-active { z-index: 1; opacity: 1; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; }
.hero-slide::after { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(10,12,13,.82),rgba(10,12,13,.46) 42%,transparent 76%); content: ""; }
.hero-copy { position: absolute; z-index: 2; top: 50%; right: clamp(28px,7vw,105px); left: clamp(28px,7vw,105px); max-width: 560px; color: white; transform: translateY(-50%); }
.hero-copy .eyebrow { color: #fa838a; }.hero-copy h1 { margin: 0 0 20px; font-family: Georgia,"Times New Roman",serif; font-size: clamp(3rem,6vw,6.6rem); font-weight: 500; line-height: .93; letter-spacing: -.075em; }.hero-copy p { max-width:430px; margin:0; color:#e4e5e5; font-size:1.05rem; line-height:1.65; }.hero-copy .primary-button { display:inline-grid; min-width:164px; margin-top:29px; place-items:center; text-decoration:none; }
.slide-nav { position:absolute; z-index:3; right:clamp(24px,4vw,62px); bottom:32px; display:flex; gap:8px; }.slide-dot { width:35px; height:3px; border:0; padding:0; cursor:pointer; background:rgba(255,255,255,.42); }.slide-dot.is-active { width:54px; background:white; }
.products-section{padding:75px 6%;background:#fff}.products-head{display:flex;justify-content:space-between;align-items:end}.products-head h2{margin:0;font:clamp(2rem,4vw,3.5rem) Georgia,serif}.product-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:28px}.product-card{padding:13px;border:1px solid #e1e5e7;border-radius:14px}.product-art{display:grid;aspect-ratio:1;place-items:center;overflow:hidden;border-radius:10px;color:#fff;font:600 .9rem Fredoka,sans-serif;background:#374047}.product-art img{width:100%;height:100%;object-fit:cover}.spray{background:#8d705e}.paste{background:#922e38}.shampoo{background:#48696b}.pomade{background:#714d34}.powder{background:#737078}.oil{background:#547370}.tonic{background:#956f55}.gel{background:#34496a}.set{background:#7b4747}.product-card p{margin:13px 0 4px;color:var(--muted);font-size:.75rem}.product-card h3{margin:8px 0 5px;font:1.15rem Georgia,serif}.product-card button{float:right;border:0;border-radius:5px;padding:8px;color:#fff;background:var(--red);font-size:.72rem;font-weight:700}.products-controls button{width:32px;height:32px;border:1px solid #ccd2d5;border-radius:50%;background:#fff}@media(max-width:720px){.product-grid{grid-template-columns:repeat(2,1fr);gap:10px}.product-grid .product-card:last-child{grid-column:span 2}.products-section{padding:50px 16px}.products-head{align-items:start}}
.products-section--right { background: #fff; }
.products-section--right .products-head { flex-direction: row-reverse; }
.products-section--right .products-head > div:first-child { text-align: right; }
.products-controls { display: flex; align-items: center; flex-shrink: 0; gap: 8px; white-space: nowrap; }
.products-controls button,
.product-card { cursor: pointer; }
@media (max-width: 720px) { .products-section--right .products-head { flex-direction: row-reverse; } }

.product-detail-page { position: relative; min-height: calc(100vh - 72px); padding: 112px 6% 82px; overflow: hidden; background: var(--slate); }
.product-detail-page::before,
.product-detail-page::after { position: absolute; z-index: 0; width: 440px; height: 440px; border: 1px solid rgba(182, 41, 51, .15); border-radius: 50%; content: ""; pointer-events: none; }
.product-detail-page::before { top: -250px; left: -170px; box-shadow: 0 0 0 48px rgba(182, 41, 51, .035), 0 0 0 96px rgba(182, 41, 51, .025); }
.product-detail-page::after { right: -260px; bottom: -300px; background: rgba(182, 41, 51, .045); }
.product-back { display: inline-block; margin-bottom: 34px; }
.product-back,
.product-detail { position: relative; z-index: 1; }
.product-detail { display: grid; grid-template-columns: minmax(300px, 1fr) minmax(300px, .8fr); gap: clamp(38px, 8vw, 130px); width: min(100%, 1180px); margin: 0 auto; align-items: center; }
.product-detail__art { min-height: min(58vw, 650px); padding: 40px; font-size: clamp(2rem, 5vw, 4.8rem); text-align: center; box-shadow: var(--shadow); }
.product-detail__content { max-width: 450px; }
.product-detail__content h1, .product-not-found h1 { margin: 0 0 18px; font: clamp(2.7rem, 5vw, 4.8rem) Georgia, serif; line-height: .94; letter-spacing: -.07em; }
.product-detail__description { margin: 0 0 25px; color: var(--muted); line-height: 1.7; }
.product-detail__price { margin: 0 0 28px; font-size: 1.2rem; font-weight: 750; }
.quantity-picker { display: inline-grid; grid-template-columns: 44px 54px 44px; height: 46px; margin-right: 12px; vertical-align: middle; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; }
.quantity-picker button { border: 0; background: #fff; cursor: pointer; color: var(--ink); font-size: 1.3rem; }
.quantity-picker button:hover { background: #f2f4f5; }
.quantity-picker output { display: grid; place-items: center; border-right: 1px solid var(--line); border-left: 1px solid var(--line); font-weight: 700; }
.product-add { min-height: 46px; padding: 0 25px; border: 0; cursor: pointer; vertical-align: middle; }
.product-detail__note { margin: 26px 0 0; color: var(--muted); font-size: .8rem; }
.product-not-found { width: min(100%, 700px); margin: 80px auto; }
@media (max-width: 720px) { .product-detail-page { padding: 92px 18px 56px; }.product-detail { grid-template-columns: 1fr; gap: 38px; }.product-detail__art { min-height: 70vw; }.product-back { margin-bottom: 22px; }.product-add { margin-top: 12px; }.quantity-picker { margin-right: 8px; } }

.checkout-page { min-height: calc(100vh - 72px); padding: 120px 20px 82px; background: var(--slate); }
.checkout-card { width: min(100%, 660px); margin: 0 auto; padding: clamp(28px, 5vw, 52px); border: 1px solid rgba(182, 41, 51, .18); border-radius: 20px; background: #fff; box-shadow: var(--shadow); }
.checkout-card h1 { margin: 0 0 26px; font: clamp(2.5rem, 6vw, 4.3rem) Georgia, serif; letter-spacing: -.075em; }
.checkout-items { display: grid; gap: 13px; }
.checkout-items > div { display: flex; justify-content: space-between; gap: 18px; padding-bottom: 13px; border-bottom: 1px solid var(--line); font-size: .9rem; }
.checkout-items strong { white-space: nowrap; }
.checkout-total { display: flex; justify-content: space-between; margin: 24px 0; font-size: 1.12rem; }
.checkout-card .primary-button { width: 100%; }
.checkout-card .primary-button:disabled { cursor: not-allowed; opacity: .48; }

.shop-page { padding: 132px 6% 84px; background: #fff; }
.shop-hero { width: min(100%, 1180px); margin: 0 auto 54px; }
.shop-hero h1 { margin: 0 0 18px; font: clamp(3.5rem, 8vw, 7rem) Georgia, serif; line-height: .84; letter-spacing: -.09em; }
.shop-hero > p:last-child { max-width: 410px; margin: 0; color: var(--muted); line-height: 1.65; }
.shop-toolbar { display: grid; grid-template-columns: 1.8fr repeat(3, 1fr) auto; gap: 12px; width: min(100%, 1180px); margin: 0 auto; padding: 15px; border: 1px solid var(--line); background: #f7f8f8; }
.shop-toolbar label { display: grid; gap: 6px; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.shop-toolbar input, .shop-toolbar select { width: 100%; height: 43px; border: 1px solid var(--line); border-radius: 5px; padding: 0 11px; color: var(--ink); background: #fff; font: .85rem inherit; text-transform: none; }
.shop-toolbar button { align-self: end; height: 43px; border: 1px solid var(--ink); padding: 0 15px; cursor: pointer; color: var(--ink); background: transparent; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.shop-toolbar button:hover { color: #fff; background: var(--ink); }
.shop-results { display: flex; justify-content: space-between; width: min(100%, 1180px); margin: 26px auto 18px; color: var(--muted); font-size: .82rem; }
.shop-results p { margin: 0; }
.shop-product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; width: min(100%, 1180px); margin: 0 auto; }
.shop-product-card { padding: 13px; border: 1px solid #e1e5e7; border-radius: 14px; cursor: pointer; background: #fff; transition: transform .2s ease, box-shadow .2s ease; }
.shop-product-card:hover { transform: translateY(-3px); box-shadow: 0 13px 25px rgba(30, 43, 54, .1); }
.shop-product-card .product-art { font-size: .95rem; }
.shop-product-card__meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 13px; color: var(--muted); font-size: .67rem; }
.shop-product-card h2 { margin: 8px 0 5px; font: 1.25rem Georgia, serif; }
.shop-product-card p { min-height: 35px; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.4; }
.shop-product-card__bottom { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 14px; font-size: .82rem; }
.shop-product-card__bottom button { border: 0; border-radius: 5px; padding: 8px; cursor: pointer; color: #fff; background: var(--red); font-size: .7rem; font-weight: 700; white-space: nowrap; }
.shop-product-card__bottom button:hover { background: var(--red-dark); }
.shop-empty { grid-column: 1 / -1; padding: 45px 0; color: var(--muted); text-align: center; }
@media (max-width: 900px) { .shop-toolbar { grid-template-columns: repeat(2, 1fr); }.shop-toolbar button { width: max-content; }.shop-product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .shop-page { padding: 98px 16px 56px; }.shop-hero { margin-bottom: 35px; }.shop-toolbar { grid-template-columns: 1fr; padding: 12px; }.shop-toolbar button { width: 100%; }.shop-results { margin-top: 20px; }.shop-results p:last-child { display: none; }.shop-product-grid { gap: 10px; }.shop-product-card { padding: 10px; }.shop-product-card h2 { font-size: 1.05rem; }.shop-product-card__bottom { align-items: flex-start; flex-direction: column; }.shop-product-card__bottom button { width: 100%; } }

.booking-page { position: relative; min-height: calc(100vh - 72px); padding: 112px 6% 84px; overflow: hidden; background: var(--slate); }
.booking-page::before, .booking-page::after { position: absolute; z-index: 0; width: 440px; height: 440px; border: 1px solid rgba(182, 41, 51, .15); border-radius: 50%; content: ""; pointer-events: none; }
.booking-page::before { top: -250px; left: -170px; box-shadow: 0 0 0 48px rgba(182, 41, 51, .035), 0 0 0 96px rgba(182, 41, 51, .025); }.booking-page::after { right: -260px; bottom: -300px; background: rgba(182, 41, 51, .045); }
.booking-page > * { position: relative; z-index: 1; }.booking-heading, .booking-layout { width: min(100%, 1000px); margin-right: auto; margin-left: auto; }.booking-heading { margin-top: 38px; margin-bottom: 34px; }.booking-heading h1 { margin: 0 0 14px; font: clamp(3rem, 7vw, 5.7rem) Georgia, serif; letter-spacing: -.08em; line-height: .9; }.booking-heading > p:last-child { margin: 0; color: var(--muted); }.booking-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 18px; align-items: start; }.booking-customer, .booking-form { padding: 27px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.booking-customer h2 { margin: 0 0 11px; font: 1.5rem Georgia, serif; }.booking-customer p { margin: 4px 0; color: var(--muted); font-size: .86rem; }.booking-customer a { display: inline-block; margin-top: 22px; color: var(--red); font-size: .82rem; font-weight: 700; }.booking-form { display: grid; gap: 20px; }.booking-form label { display: grid; gap: 8px; font-size: .78rem; font-weight: 750; }.booking-form select, .booking-form input { height: 46px; border: 1px solid var(--line); border-radius: 6px; padding: 0 12px; color: var(--ink); background: #fff; font: .9rem inherit; }.booking-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }.booking-form legend { margin-bottom: 10px; font-size: .78rem; font-weight: 750; }.time-slots { display: grid; grid-template-columns: repeat(6, 1fr); gap: 7px; }.time-slots p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: .86rem; }.time-slot { min-height: 39px; border: 1px solid var(--line); border-radius: 5px; cursor: pointer; background: #fff; font-size: .78rem; }.time-slot:hover, .time-slot.is-selected { border-color: var(--red); color: #fff; background: var(--red); }.time-slot.is-booked { cursor: not-allowed; color: #9aa2a8; background: #f0f2f3; text-decoration: line-through; }.booking-form .primary-button { width: max-content; border: 0; cursor: pointer; padding: 13px 24px; }.booking-form .primary-button:disabled { cursor: not-allowed; opacity: .45; }.booking-message { min-height: 20px; margin: -6px 0 0; color: var(--red-dark); font-size: .86rem; font-weight: 700; }
@media (max-width: 720px) { .booking-page { padding: 92px 16px 56px; }.booking-layout { grid-template-columns: 1fr; }.time-slots { grid-template-columns: repeat(4, 1fr); }.booking-customer, .booking-form { padding: 20px; } }
.articles-section{position:relative;isolation:isolate;padding:82px 6%;overflow:hidden;background:#f5f6f6}.articles-section::before{top:-250px;left:-170px;box-shadow:0 0 0 48px rgba(182,41,51,.035),0 0 0 96px rgba(182,41,51,.025)}.articles-section::after{right:-260px;bottom:-300px;background:rgba(182,41,51,.045)}.articles-heading,.article-grid{position:relative;z-index:1}.articles-heading{max-width:650px;margin-bottom:30px}.articles-heading h2{margin:0;font:clamp(2.2rem,4vw,4rem) Georgia,serif;letter-spacing:-.06em}.articles-heading p{color:var(--muted);line-height:1.6}.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.article-card{display:flex;min-height:330px;flex-direction:column;padding:28px;border:1px solid var(--red);border-radius:16px;background:#fff}.article-card .eyebrow{margin-bottom:28px}.article-card h3{margin:0 0 14px;font:1.75rem Georgia,serif;letter-spacing:-.05em}.article-card p{margin:0;color:var(--muted);line-height:1.65}.article-card__image{width:100%;height:135px;object-fit:cover;margin:22px 0 0;border-radius:9px}.article-card a{margin-top:auto;padding-top:18px;color:var(--red);font-size:.76rem;font-weight:700;text-decoration:none;text-transform:uppercase;letter-spacing:.1em}.article-card a:hover{text-decoration:underline}@media(max-width:720px){.articles-section{padding:55px 16px}.article-grid{grid-template-columns:1fr}.article-card{min-height:260px}.article-card__image{height:190px}.home-hero::after,.articles-section::after{width:310px;height:310px;right:-175px;bottom:-210px}}
.site-footer{padding:70px 6% 24px;color:#fff;background:#b62933}.footer-top{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:38px;padding-bottom:54px}.footer-brand{margin:0 0 14px;font:600 clamp(2.3rem,4vw,3.6rem) Fredoka,sans-serif;letter-spacing:-.08em}.footer-intro{max-width:310px;margin:0;color:#ffe5e6;line-height:1.65}.footer-column h3{margin:7px 0 17px;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase}.footer-column a{display:block;width:max-content;margin:0 0 10px;color:#fff;font-size:.9rem;text-decoration:none}.footer-column a:hover{text-decoration:underline;text-underline-offset:4px}.social-links{display:flex;flex-wrap:wrap;gap:9px}.social-links a{border:1px solid rgba(255,255,255,.55);border-radius:999px;margin:0;padding:8px 11px;font-size:.75rem}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:22px;border-top:1px solid rgba(255,255,255,.35);color:#ffe5e6;font-size:.73rem}@media(max-width:720px){.site-footer{padding:52px 22px 20px}.footer-top{grid-template-columns:1fr 1fr;gap:32px 18px}.footer-top>div:first-child{grid-column:span 2}.footer-bottom{flex-direction:column}.footer-column a{font-size:.84rem}}
.site-footer {
    position: relative;
    z-index: 10;
    isolation: isolate;
}

.article-page { position: relative; min-height: calc(100vh - 72px); overflow: hidden; padding: 112px 6% 84px; background: var(--slate); }
.article-page::before, .article-page::after { position: absolute; z-index: 0; width: 460px; height: 460px; border: 1px solid rgba(182,41,51,.17); border-radius: 50%; content: ""; pointer-events: none; }
.article-page::before { top: -230px; left: -210px; box-shadow: 0 0 0 52px rgba(182,41,51,.035), 0 0 0 104px rgba(182,41,51,.02); }
.article-page::after { right: -270px; bottom: -300px; background: rgba(182,41,51,.045); }
.article-page > * { position: relative; z-index: 1; }
.article-back { display: block; width: min(100%, 860px); margin: 12px auto 22px; }
.article-content { width: min(100%, 860px); margin: 0 auto; padding: clamp(25px,5vw,58px); border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 20px 55px rgba(26,37,45,.08); }
.article-content header { max-width: 690px; }
.article-content h1 { margin: 0 0 20px; font: clamp(2.7rem,6vw,5.4rem) Georgia,serif; line-height: .92; letter-spacing: -.075em; }
.article-intro { margin: 0; color: var(--muted); font-size: clamp(1rem,2vw,1.16rem); line-height: 1.7; }
.article-hero { display: block; width: 100%; height: clamp(230px,42vw,440px); margin: 34px 0 42px; border-radius: 12px; object-fit: cover; }
.article-content section { max-width: 660px; margin: 0 auto 34px; }
.article-content h2 { margin: 0 0 10px; font: clamp(1.55rem,3vw,2.15rem) Georgia,serif; letter-spacing: -.04em; }
.article-content section p { margin: 0; color: var(--muted); line-height: 1.78; }
.article-shop-link { display: inline-flex; min-height: 49px; align-items: center; justify-content: center; margin-top: 8px; padding: 0 23px; border-radius: 9px; color: #fff !important; text-decoration: none; }
.article-shop-link:hover { color: #fff !important; text-decoration: none; }
@media (max-width: 720px) { .article-page { padding: 92px 16px 56px; }.article-content { padding: 24px 20px; border-radius: 14px; }.article-hero { margin: 26px 0 32px; }.article-page::after { width: 310px; height: 310px; right: -175px; bottom: -210px; } }

.product-detail__art { padding: 0; }
.footer-column p { margin: 0 0 10px; color: #ffe5e6; font-size: .9rem; }
.admin-page { position:relative; min-height: calc(100vh - 72px); padding: 112px 6% 80px; overflow:hidden; background: var(--slate); }.admin-page::before,.admin-page::after{position:absolute;z-index:0;width:460px;height:460px;border:1px solid rgba(182,41,51,.17);border-radius:50%;content:"";pointer-events:none}.admin-page::before{top:-250px;left:-205px;box-shadow:0 0 0 52px rgba(182,41,51,.035),0 0 0 104px rgba(182,41,51,.02)}.admin-page::after{right:-270px;bottom:-290px;background:rgba(182,41,51,.045)}.admin-page>*{position:relative;z-index:1}.admin-heading,.admin-stats,.admin-grid,.admin-list-card{width:min(100%,1120px);margin-left:auto;margin-right:auto}.admin-heading h1{margin:0;font:clamp(3rem,6vw,5.5rem) Georgia,serif;letter-spacing:-.08em}.admin-heading>p:last-child{color:var(--muted)}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:32px}.admin-stats article,.admin-card,.admin-list-card{padding:24px;border:1px solid var(--line);border-radius:14px;background:#fff}.admin-stats span{display:block;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.admin-stats strong{display:block;margin-top:10px;color:var(--red-dark);font:clamp(1.7rem,3vw,2.4rem) Georgia,serif}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.admin-card h2,.admin-list-card h2{margin:0 0 18px;font:1.5rem Georgia,serif}.admin-card form{display:grid;gap:10px}.admin-card input,.admin-card select{min-height:43px;border:1px solid var(--line);border-radius:7px;padding:0 11px;font:inherit}.admin-card .primary-button{border:0;padding:0 18px}.admin-list-card{margin-top:16px}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-top:1px solid var(--line)}.admin-row:first-child{border-top:0}.admin-row b,.admin-row small{display:block}.admin-row small{margin-top:3px;color:var(--muted);font-size:.75rem}.admin-row button{border:1px solid var(--red);border-radius:5px;padding:7px 10px;color:var(--red-dark);background:#fff;cursor:pointer}.admin-row button:hover{color:#fff;background:var(--red)}@media(max-width:720px){.admin-page{padding:92px 16px 56px}.admin-page::after{width:310px;height:310px;right:-175px;bottom:-200px}.admin-stats,.admin-grid{grid-template-columns:1fr}.admin-card,.admin-list-card,.admin-stats article{padding:19px}}
.footer-logo{display:block;width:min(220px,70vw);margin:0 0 16px;filter:brightness(0) invert(1)}

.homepage-placement{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.78rem;white-space:nowrap}.homepage-placement select{min-height:34px;border:1px solid var(--line);border-radius:5px;padding:0 7px;background:#fff;font:inherit;color:var(--ink);cursor:pointer}.homepage-placement select:focus{outline:2px solid rgba(182,41,51,.25);border-color:var(--red)}
@media(max-width:720px){.admin-row{align-items:flex-start;flex-wrap:wrap}.homepage-placement{margin-left:auto}}

/* Keep dashboard forms within the viewport and make product controls easy to scan. */
.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-card,.admin-list-card{min-width:0}.admin-card input,.admin-card select{width:100%;max-width:100%}.product-admin-row{display:grid;grid-template-columns:minmax(0,1fr);justify-content:initial;align-items:start;gap:10px}.product-admin-row__details b,.product-admin-row__details small{display:block}.product-admin-row .homepage-placement{justify-content:space-between;width:100%;margin:0}.product-admin-row button{justify-self:start}@media(max-width:860px){.admin-grid{grid-template-columns:1fr}}
.product-image-upload{display:grid;gap:6px;color:var(--muted);font-size:.78rem}.product-image-upload input{width:100%;max-width:100%;font:inherit;font-size:.78rem}

/* Equal card rhythm on the homepage, even when product descriptions have different lengths. */
.product-card{display:flex;min-width:0;height:100%;flex-direction:column}.product-card b{display:block}.product-card p{min-height:3.6em}.product-card button{float:none;align-self:flex-end;margin-top:auto}.article-card{height:100%}.article-card a{display:flex;min-height:36px;align-items:flex-end}

/* Phone landscape does not leave enough width for the product-detail columns. */
@media (max-width:720px), (orientation:landscape) and (max-height:520px){.product-detail-page{padding:82px 18px 48px}.product-detail{grid-template-columns:1fr;gap:28px}.product-detail__art{min-height:min(48vw,360px)}.product-detail__content{max-width:none}}

@media (orientation:landscape) and (max-height:520px){.article-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.article-card{min-height:0;padding:16px}.article-card .eyebrow{margin-bottom:12px;font-size:.6rem}.article-card h3{margin-bottom:9px;font-size:1.1rem}.article-card p{font-size:.72rem;line-height:1.45}.article-card__image{height:92px;margin-top:14px}.article-card a{min-height:28px;padding-top:12px;font-size:.61rem}}

.chair-time-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.chair-slots{padding:14px;border:1px solid var(--line);border-radius:10px;background:#f8f9f9}.chair-slots h3{margin:0 0 10px;font:1.05rem Georgia,serif}.chair-slots>div{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.chair-form{display:flex;gap:10px;margin:18px 0}.chair-form input{min-width:0;flex:1;height:44px;border:1px solid var(--line);border-radius:7px;padding:0 11px;font:inherit}.chair-form .primary-button{min-height:46px;margin:0;border:0;border-radius:9px;padding:0 22px;color:#fff!important;background:var(--red)!important;box-shadow:0 8px 16px rgba(182,41,51,.2);font-weight:750;text-decoration:none!important}.chair-form .primary-button:hover{background:var(--red-dark)!important;box-shadow:0 10px 20px rgba(182,41,51,.28);transform:translateY(-1px)}.chair-row{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--line)}.chair-row button{border:0;padding:0;cursor:pointer;color:var(--red);background:none;text-decoration:underline}.appointment-item--business p{display:block}.list-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.list-pagination button{min-height:36px!important;padding:0 12px!important;border:1px solid var(--line)!important;border-radius:6px!important;color:var(--ink)!important;background:#fff!important;text-decoration:none!important;cursor:pointer}.list-pagination button:hover:not(:disabled){border-color:var(--red)!important;color:#fff!important;background:var(--red)!important}.list-pagination button:disabled{cursor:not-allowed;opacity:.42}.list-pagination span{color:var(--muted);font-size:.78rem;white-space:nowrap}@media(max-width:520px){.chair-form{flex-direction:column}.chair-form .primary-button{min-height:44px}.chair-time-slots{grid-template-columns:1fr}.list-pagination{justify-content:space-between;gap:6px}.list-pagination button{padding:0 9px!important;font-size:.72rem!important}.list-pagination span{font-size:.7rem}}

.auth-page::before,
.auth-page::after {
    position: absolute;
    width: 440px;
    height: 440px;
    border: 1px solid rgba(182, 41, 51, .15);
    border-radius: 50%;
    content: "";
}

.auth-page::before {
    top: -250px;
    left: -170px;
    box-shadow: 0 0 0 48px rgba(182, 41, 51, .035), 0 0 0 96px rgba(182, 41, 51, .025);
}

.auth-page::after {
    right: -260px;
    bottom: -300px;
    background: rgba(182, 41, 51, .045);
}

.auth-shell {
    position: relative;
    z-index: 1;
    display: grid;
    width: min(100%, 920px);
    min-height: 600px;
    grid-template-columns: .9fr 1.1fr;
    overflow: hidden;
    border: 1px solid rgba(182, 41, 51, .18);
    border-radius: 24px;
    background: var(--paper);
    box-shadow: var(--shadow);
}

.brand-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    padding: 42px;
    color: white;
    background: #232d36;
}

.brand-panel::after {
    position: absolute;
    right: -105px;
    bottom: -130px;
    width: 330px;
    height: 330px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
    content: "";
}

.brand-panel::before {
    position: absolute;
    top: 44px;
    right: -70px;
    width: 190px;
    height: 10px;
    border-radius: 20px;
    background: var(--red);
    box-shadow: 0 28px 0 rgba(255, 255, 255, .12), 0 56px 0 rgba(255, 255, 255, .08);
    content: "";
    transform: rotate(-35deg);
}

.brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.logo-wordmark {
    color: var(--red);
    font-family: "Fredoka", "Arial Rounded MT Bold", "Trebuchet MS", sans-serif;
    font-size: clamp(1.55rem, 3vw, 1.95rem);
    font-weight: 600;
    letter-spacing: -.075em;
    line-height: 1;
}

.logo-image {
    display: block;
    width: clamp(138px, 18vw, 180px);
    height: auto;
}

.nav-side {
    display: flex;
    align-items: center;
    gap: 20px;
}

.nav-side--right { justify-content: flex-end; }

.nav-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #23292d;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-decoration: none;
    text-transform: uppercase;
}

.nav-link:hover { color: var(--red); }
.icon-control { position: relative; width: 28px; height: 28px; justify-content: center; }
.cart-count { position: absolute; top: -5px; right: -7px; display: grid; min-width: 15px; height: 15px; place-items: center; border-radius: 50%; color: white; font-size: .55rem; background: var(--red); }
.account-notification { position:absolute;top:-5px;right:-7px;display:grid;min-width:15px;height:15px;place-items:center;border-radius:50%;color:white;font-size:.55rem;background:var(--red); }
.account-notification[hidden] { display: none !important; }

.nav-control {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    border: 0;
    padding: 0;
    color: #23292d;
    font: inherit;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .12em;
    cursor: pointer;
    background: transparent;
    text-transform: uppercase;
}

.nav-control:hover { color: var(--red); }

.menu-icon {
    display: grid;
    width: 15px;
    gap: 4px;
}

.menu-icon::before,
.menu-icon::after {
    display: block;
    width: 15px;
    height: 1px;
    background: currentColor;
    content: "";
}

.search-icon {
    width: 15px;
    height: 15px;
    stroke: currentColor;
    stroke-width: 1.8;
}
.nav-glyph { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.contact-icon { display: none; }
.contact-label { white-space: nowrap; }

.menu-backdrop {
    position: fixed;
    z-index: 10;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    background: rgba(0, 0, 0, .58);
    transition: opacity .28s ease;
}

.menu-backdrop.is-open { opacity: 1; pointer-events: auto; }
.right-panel { position: fixed; z-index: 11; top: 0; right: 0; bottom: 0; width: min(390px, 88vw); padding: 25px 29px 34px; color: #20262b; background: white; box-shadow: -14px 0 35px rgba(0,0,0,.14); transform: translateX(102%); transition: transform .32s cubic-bezier(.2,.75,.25,1); }
.right-panel.is-open { transform: translateX(0); }
.panel-top { display:flex; justify-content:space-between; align-items:center; padding-bottom:24px; border-bottom:1px solid #e1e4e6; }
.panel-top h2 { margin:0; color:var(--red); font-family:"Fredoka",sans-serif; font-size:1.45rem; }
.contact-details { display:grid; gap:22px; margin-top:34px; }
.contact-details dt { margin-bottom:5px; color:#7b858c; font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.contact-details dd { margin:0; font-size:.95rem; line-height:1.5; }
.contact-details a { color: inherit; text-decoration: none; }
.contact-details a:hover { color: var(--red); }
.cart-items { display:grid; gap:12px; margin:28px 0; padding:0; list-style:none; }
.cart-items li { display:flex; justify-content:space-between; gap:10px; padding-bottom:12px; border-bottom:1px solid #e6e8e9; }
.cart-items button { border:0; padding:0; color:var(--red); cursor:pointer; background:none; font:inherit; font-size:.75rem; }
.cart-empty { color:#7b858c; }
.cart-total { display:flex; justify-content:space-between; padding-top:16px; border-top:1px solid #cfd5d8; font-weight:700; }
.cart-checkout { display: grid; min-height: 49px; margin-top: 20px; place-items: center; border-radius: 9px; color: #fff; background: var(--red); box-shadow: 0 8px 16px rgba(182, 41, 51, .2); font-size: .9rem; font-weight: 750; text-decoration: none; transition: background .18s, transform .18s, box-shadow .18s; }
.cart-checkout:hover { color: #fff; background: var(--red-dark); box-shadow: 0 10px 20px rgba(182, 41, 51, .28); transform: translateY(-1px); }
.cart-checkout[hidden] { display: none; }

.side-menu {
    position: fixed;
    z-index: 11;
    top: 0;
    bottom: 0;
    left: 0;
    display: flex;
    width: min(390px, 88vw);
    flex-direction: column;
    padding: 25px 29px 34px;
    color: #20262b;
    background: #fff;
    box-shadow: 14px 0 35px rgba(0, 0, 0, .14);
    transform: translateX(-102%);
    transition: transform .32s cubic-bezier(.2, .75, .25, 1);
}

.side-menu.is-open { transform: translateX(0); }

.side-menu__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 24px;
    border-bottom: 1px solid #e1e4e6;
}

.side-menu__title {
    color: var(--red);
    font-family: "Fredoka", "Arial Rounded MT Bold", sans-serif;
    font-size: 1.45rem;
    font-weight: 600;
    letter-spacing: -.06em;
}
.side-menu__title img { display: block; width: 158px; height: auto; }

.close-menu {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid #dadddf;
    border-radius: 50%;
    color: #22292e;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    background: white;
}

.close-menu:hover { border-color: var(--red); color: var(--red); }

.menu-search {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 27px 0 30px;
    padding-bottom: 11px;
    border-bottom: 1px solid #adb5ba;
}

.menu-search input {
    width: 100%;
    border: 0;
    outline: 0;
    color: var(--ink);
    font: inherit;
    font-size: .92rem;
}

.menu-search input::placeholder { color: #8a959d; }

.menu-links { display: grid; gap: 7px; }

.menu-links a {
    padding: 10px 0;
    color: #20262b;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.6rem;
    letter-spacing: -.04em;
    text-decoration: none;
}

.menu-links a:hover { color: var(--red); }

.menu-logout {
    width: max-content;
    min-height: 49px;
    margin-top: 12px;
    border: 0;
    border-radius: 9px;
    padding: 0 22px;
    cursor: pointer;
    color: #fff;
    background: var(--red);
    box-shadow: 0 8px 16px rgba(182, 41, 51, .2);
    font: inherit;
    font-size: .9rem;
    font-weight: 750;
    transition: background .18s, transform .18s, box-shadow .18s;
}

.menu-logout:hover { background: var(--red-dark); box-shadow: 0 10px 20px rgba(182, 41, 51, .28); transform: translateY(-1px); }

.side-menu__footer {
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid #e1e4e6;
    color: #7b858c;
    font-size: .72rem;
    line-height: 1.6;
}

.brand-copy {
    position: relative;
    z-index: 1;
    max-width: 290px;
    padding-bottom: 28px;
}

.eyebrow {
    margin: 0 0 18px;
    color: #f46a72;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.brand-copy h2 {
    margin: 0 0 14px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1;
    letter-spacing: -.055em;
}

.brand-copy p:last-child {
    margin: 0;
    color: #c6d0d6;
    font-size: .95rem;
    line-height: 1.7;
}

.form-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 48px clamp(30px, 7vw, 72px);
}

.form-panel h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.2rem;
    letter-spacing: -.045em;
}

.form-intro {
    margin: 8px 0 28px;
    color: var(--muted);
    font-size: .94rem;
    line-height: 1.5;
}

.auth-form { display: grid; gap: 17px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

.account-type { margin: 0; padding: 0; border: 0; }
.account-type legend { margin-bottom: 8px; color: #48545e; font-size: .78rem; font-weight: 700; }
.account-type__choices { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.account-type__choices label { display: flex; min-height: 47px; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 9px; padding: 0 13px; cursor: pointer; color: var(--ink); font-size: .86rem; font-weight: 700; background: #fbfcfc; }
.account-type__choices label:has(input:checked) { border-color: var(--red); color: var(--red-dark); background: #fff8f8; box-shadow: 0 0 0 3px rgba(182, 41, 51, .10); }
.account-type__choices input { accent-color: var(--red); }

.field { display: grid; gap: 7px; }
#businessNameField[hidden] { display: none; }

.field label {
    color: #48545e;
    font-size: .78rem;
    font-weight: 700;
}

.field input {
    width: 100%;
    min-height: 47px;
    border: 1px solid var(--line);
    border-radius: 9px;
    outline: none;
    padding: 0 13px;
    color: var(--ink);
    font: inherit;
    font-size: .9rem;
    background: #fbfcfc;
    transition: border-color .18s, box-shadow .18s, background .18s;
}

.field input::placeholder { color: #9aa5ac; }

.field input:focus {
    border-color: var(--red);
    background: white;
    box-shadow: 0 0 0 3px rgba(182, 41, 51, .12);
}

.primary-button {
    min-height: 49px;
    margin-top: 5px;
    border: 0;
    border-radius: 9px;
    color: white;
    font: inherit;
    font-size: .9rem;
    font-weight: 750;
    cursor: pointer;
    background: var(--red);
    box-shadow: 0 8px 16px rgba(182, 41, 51, .2);
    transition: background .18s, transform .18s, box-shadow .18s;
}

.primary-button:hover {
    background: var(--red-dark);
    box-shadow: 0 10px 20px rgba(182, 41, 51, .28);
    transform: translateY(-1px);
}

.primary-button:active { transform: translateY(0); }

.message {
    min-height: 20px;
    margin: 0 0 13px;
    color: var(--red-dark);
    font-size: .82rem;
    font-weight: 600;
}

.switch-link {
    margin: 24px 0 0;
    color: var(--muted);
    font-size: .85rem;
    text-align: center;
}

.switch-link a { color: var(--red); font-weight: 750; text-decoration: none; }
.switch-link a:hover { text-decoration: underline; }

.form-footer {
    margin-top: 25px;
    color: #93a0a8;
    font-size: .7rem;
    line-height: 1.5;
    text-align: center;
}

@media (max-width: 720px) {
    .auth-page { padding: 80px 16px 16px; }
    .home-content { padding-top: 88px; }
    .site-nav { min-height: 64px; }
    .nav-link { font-size: .58rem; letter-spacing: .08em; }
    .nav-control { font-size: .58rem; letter-spacing: .08em; }
    .nav-side { gap: 10px; }
    .contact-label { display: none; }
    .menu-label, .search-label { display: none; }
    .contact-icon { display: block; }
    .nav-side:not(.nav-side--right) .nav-control {
        width: 28px;
        height: 28px;
        justify-content: center;
    }
    .contact-control { width: 28px; height: 28px; justify-content: center; }
    .side-menu { width: min(350px, 90vw); padding: 21px 23px 28px; }
    .auth-shell { grid-template-columns: 1fr; min-height: 0; }
    .brand-panel { min-height: 184px; padding: 27px 30px; }
    .brand-copy { max-width: 410px; padding: 20px 0 0; }
    .brand-copy h2 { font-size: 1.8rem; }
    .brand-copy p:last-child { display: none; }
    .form-panel { padding: 36px 30px; }
}

@media (max-width: 420px) {
    .form-row { grid-template-columns: 1fr; }
    .brand-panel { min-height: 168px; }
    .form-panel h1 { font-size: 1.9rem; }
}

@media (max-width: 720px) {
    .hero-slide:nth-child(3) img { object-position: 82% center; }
}

.account-sidebar-footer { margin-top: 18px; padding-top: 18px; border-top: 1px solid #e1e5e7; }
.account-sidebar-footer button { display: flex; width: 100%; justify-content: space-between; border: 0; padding: 0; color: #252b30; cursor: pointer; background: none; font: inherit; font-size: .82rem; font-weight: 700; }
.account-sidebar-footer button:hover { color: var(--red); }
.account-page { background: var(--slate); }
.account-card { border-radius: 14px; }
.account-layout { grid-template-columns: 1fr; }
.account-content { margin: 0 auto; }
.profile-form .primary-button{min-height:49px;border-radius:9px;color:#fff!important;text-decoration:none!important;background:var(--red);font-size:.9rem;font-weight:750}
#businessNameProfileField[hidden] { display: none; }
.profile-form .primary-button:hover{color:#fff!important;text-decoration:none!important;background:var(--red-dark)!important}
.profile-form{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:26px}.profile-form label{display:grid;gap:7px;font-size:.75rem;font-weight:700}.profile-form input{min-height:44px;border:1px solid #d9e0e4;border-radius:7px;padding:0 11px;font:inherit;font-weight:400}.profile-form small{color:var(--muted);font-weight:400}.profile-form>div{grid-column:span 2}.profile-form .primary-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;border-radius:7px;padding:0 22px;box-shadow:0 8px 18px rgba(182,41,51,.22);transition:transform .18s,background .18s,box-shadow .18s}.profile-form .primary-button:hover{background:var(--red-dark);box-shadow:0 11px 22px rgba(182,41,51,.3);transform:translateY(-1px)}@media(max-width:720px){.profile-form{grid-template-columns:1fr}.profile-form>div{grid-column:span 1}.profile-form .primary-button{width:100%}}
.account-page{background:#f5f6f6}.account-layout{display:grid;min-height:100vh;grid-template-columns:minmax(250px,23vw) 1fr;padding-top:72px}.account-sidebar{display:flex;flex-direction:column;padding:56px 30px 28px;border-right:1px solid #d9dddf;background:#fff}.account-sidebar h1{margin:0 0 44px;font:2rem Georgia,serif;letter-spacing:-.05em}.account-links{display:grid;gap:5px}.account-links a{padding:10px 0;color:#252b30;text-decoration:none}.account-links .is-active{color:var(--red);text-decoration:underline;text-underline-offset:5px}.sidebar-contact{margin-top:auto;color:#252b30;font-size:.82rem;text-decoration:none}.sidebar-contact span{float:right}.account-content{width:min(100%,970px);padding:58px clamp(28px,6vw,110px) 80px}.back-link{display:inline-block;margin-bottom:45px;color:#252b30;font-size:.8rem;text-decoration:none}.account-content h2{margin:0;font:clamp(2.4rem,5vw,4rem) Georgia,serif;letter-spacing:-.07em}.account-intro{max-width:480px;color:var(--muted);line-height:1.6}.account-card{margin-top:20px;padding:30px clamp(22px,4vw,50px);background:#fff}.account-card header{display:flex;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid #dce1e3}.account-card h3{margin:0;font:1.2rem Georgia,serif}.account-card button,.account-card a{border:0;padding:0;color:#252b30;background:none;font:inherit;font-size:.8rem;text-decoration:underline}.details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 50px;margin:28px 0 4px}.details-grid dt{margin-bottom:7px;color:#737d84;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}.details-grid dd{margin:0}.empty-state{margin:25px 0 2px;color:var(--muted)}@media(max-width:720px){.account-layout{grid-template-columns:1fr;padding-top:64px}.account-sidebar{padding:30px 22px;border-right:0;border-bottom:1px solid #d9dddf}.account-sidebar h1{margin-bottom:22px}.account-links{grid-template-columns:repeat(3,1fr);gap:12px}.account-links a{font-size:.76rem}.sidebar-contact{display:none}.account-content{padding:38px 16px 60px}.back-link{margin-bottom:30px}.details-grid{grid-template-columns:1fr;gap:22px}.account-card{padding:24px 20px}}
