.page-hero { position: relative; overflow: hidden; padding-block: clamp(5rem, 10vw, 9rem); background: linear-gradient(140deg, var(--color-cream), var(--color-sage-light)); }
.page-hero::after { position: absolute; top: -13rem; right: -10rem; width: 34rem; height: 34rem; background: rgba(255,255,255,.38); border-radius: 50%; content: ""; }
.page-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: 4rem; }
.page-hero__copy .eyebrow, .page-hero__narrow .eyebrow { margin-bottom: 1.2rem; }
.page-hero__copy > p:last-child, .page-hero__narrow > p { max-width: 42rem; margin-top: 1.4rem; font-size: 1.06rem; }
.page-hero__narrow { position: relative; z-index: 1; max-width: 58rem; text-align: center; }
.page-hero__narrow .eyebrow { justify-content: center; }
.page-hero__narrow > p { margin-inline: auto; }
.page-hero__narrow .button { margin-top: 1.8rem; }
.page-hero--booking { padding-bottom: 9rem; }
.page-hero--contact { background: linear-gradient(140deg, #f7f2e8, var(--color-sage-light)); }

.page-hero__portrait { display: grid; place-items: center; }
.portrait-frame { position: relative; width: min(100%, 24rem); aspect-ratio: 1; padding: 1.1rem; background: rgba(255,255,255,.62); border: 1px solid rgba(255,255,255,.85); border-radius: 50%; box-shadow: var(--shadow-float); }
.portrait-frame::before { position: absolute; inset: -1rem; border: 1px solid rgba(40,77,63,.2); border-radius: 50%; content: ""; }
.portrait-frame img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.portrait-frame span { position: absolute; right: -1.2rem; bottom: 3.2rem; padding: .7rem 1rem; color: var(--color-white); background: var(--color-forest); border-radius: var(--radius-pill); font-size: .7rem; font-weight: 700; box-shadow: var(--shadow-card); }

.story-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(3rem,8vw,7rem); }
.story-grid__visual { position: relative; min-height: 43rem; }
.story-grid__visual > img { width: 81%; height: 100%; object-fit: cover; border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); }
.quote-card { position: absolute; right: 0; bottom: 3rem; width: 62%; padding: 1.6rem; color: var(--color-white); background: var(--color-forest); border-radius: var(--radius-lg); box-shadow: var(--shadow-float); }
.quote-card > span { color: var(--color-sage-light); font-family: var(--font-display); font-size: 4rem; line-height: .5; }
.quote-card p { margin-top: .6rem; font-family: var(--font-display); font-size: 1.35rem; line-height: 1.25; }
.story-grid__content .eyebrow { margin-bottom: 1rem; }
.story-grid__content h2 { margin-bottom: 1.4rem; }
.story-grid__content p + p { margin-top: 1rem; }
.story-grid__content .button { margin-top: 1.8rem; }
.credentials-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 3rem; }
.credential-card { position: relative; min-height: 20rem; padding: 1.7rem; background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-lg); }
.credential-card__index { position: absolute; top: 1.4rem; right: 1.5rem; color: var(--color-sand-dark); font-family: var(--font-display); font-size: 1.5rem; }
.credential-card .icon-box { margin-bottom: 3.7rem; }
.credential-card h3 { margin-bottom: .75rem; }
.credential-card p { font-size: .82rem; }
.values-section { background: var(--color-white); }
.values-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem,8vw,7rem); }
.values-list { border-top: 1px solid var(--color-line); }
.values-list article { display: grid; grid-template-columns: 3rem 1fr; gap: 1.2rem; padding-block: 1.4rem; border-bottom: 1px solid var(--color-line); }
.values-list article > span { color: var(--color-sage); font-family: var(--font-display); font-size: 1.2rem; }
.values-list h3 { margin-bottom: .4rem; font-size: 1.35rem; }
.values-list p { font-size: .85rem; }

.service-details { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(3rem,8vw,7rem); }
.service-detail { display: grid; grid-template-columns: 4rem 1fr; gap: 1.4rem; padding-block: 3rem; border-bottom: 1px solid var(--color-line); scroll-margin-top: 7rem; }
.service-detail__icon { display: grid; width: 4rem; height: 4rem; place-items: center; color: var(--color-forest); background: var(--color-sage-pale); border-radius: 1.3rem; }
.service-detail__icon svg { width: 1.7rem; height: 1.7rem; }
.service-detail__number { color: var(--color-sage); font-family: var(--font-display); font-size: 1.1rem; }
.service-detail__modality { display: block; margin-top: .55rem; color: var(--color-forest-soft); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.service-detail h2 { margin: .4rem 0 1rem; font-size: clamp(2rem,3vw,2.8rem); }
.service-detail p { font-size: .9rem; }
.modality-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.modality-card { min-height: 37rem; border-radius: var(--radius-xl); }
.modality-card--image { position: relative; overflow: hidden; color: var(--color-white); }
.modality-card--image::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(11,39,29,.86)); content: ""; }
.modality-card--image img { width: 100%; height: 100%; object-fit: cover; }
.modality-card--image > div { position: absolute; z-index: 1; right: 2.3rem; bottom: 2.3rem; left: 2.3rem; }
.modality-card > div > span, .modality-card--content > span { font-size: .7rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.modality-card--image h2 { margin: .65rem 0; color: var(--color-white); }
.modality-card--image p { color: rgba(255,255,255,.7); }
.modality-card--content { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(2rem,5vw,4rem); background: var(--color-white); border: 1px solid var(--color-line); }
.modality-card__icon { display: grid; width: 4.5rem; height: 4.5rem; margin-bottom: 2.5rem; place-items: center; color: var(--color-white); background: var(--color-forest); border-radius: 50%; }
.modality-card__icon svg { width: 1.8rem; }
.modality-card--content h2 { margin: .7rem 0 1rem; }
.modality-card--content ul { display: grid; gap: .7rem; margin-block: 1.5rem; }
.modality-card--content li { display: flex; align-items: center; gap: .65rem; color: var(--color-ink); font-size: .82rem; font-weight: 600; }
.modality-card--content li svg { width: 1.1rem; color: var(--color-success); }
.boundaries-section { padding-top: 0; }
.boundaries-card { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 3rem; padding: 2.3rem 2.6rem; background: var(--color-sand); border-radius: var(--radius-lg); }
.boundaries-card > div { display: flex; align-items: center; gap: 1.2rem; }
.boundaries-card h2 { font-size: 2rem; }
.boundaries-card > p { font-size: .88rem; }

.booking-section { position: relative; z-index: 2; margin-top: -5rem; padding-top: 0; }
.booking-shell { max-width: 1050px; padding: clamp(1.2rem,3vw,2rem); background: var(--color-white); border: 1px solid rgba(40,77,63,.08); border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); }
.booking-progress { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.2rem 2rem; border-bottom: 1px solid var(--color-line); }
.booking-progress__item { display: flex; align-items: center; gap: .7rem; color: var(--color-muted); }
.booking-progress__item > span { display: grid; width: 2.15rem; height: 2.15rem; flex: 0 0 auto; place-items: center; background: var(--color-sage-pale); border-radius: 50%; font-size: .72rem; font-weight: 700; }
.booking-progress__item > div { display: grid; line-height: 1.25; }
.booking-progress__item strong { color: inherit; font-size: .72rem; }
.booking-progress__item small { font-size: .55rem; }
.booking-progress__item.is-active { color: var(--color-forest-dark); }
.booking-progress__item.is-active > span, .booking-progress__item.is-complete > span { color: var(--color-white); background: var(--color-forest); }
.booking-progress__item.is-complete { color: var(--color-forest-soft); }
.booking-progress__line { width: clamp(1rem,4vw,3.5rem); height: 1px; background: var(--color-line); }
.booking-panel { padding: clamp(2rem,5vw,4rem); }
.booking-panel__heading { max-width: 43rem; margin-bottom: 2rem; }
.booking-panel__heading > span { color: var(--color-forest-soft); font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.booking-panel__heading h2 { margin: .55rem 0 .7rem; font-size: clamp(2rem,4vw,3.2rem); }
.booking-panel__heading p { font-size: .9rem; }
.modality-options { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.modality-option { display: grid; grid-template-columns: 3.2rem 1fr 1.7rem; align-items: center; gap: 1rem; padding: 1.25rem; color: var(--color-text); background: var(--color-cream); border: 1px solid var(--color-line); border-radius: var(--radius-md); text-align: left; transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast); }
.modality-option:hover { border-color: var(--color-sage); transform: translateY(-2px); }
.modality-option.is-selected { background: var(--color-sage-pale); border-color: var(--color-forest-soft); box-shadow: 0 0 0 3px rgba(60,105,88,.08); }
.modality-option__icon { display: grid; width: 3.2rem; height: 3.2rem; place-items: center; color: var(--color-forest); background: var(--color-white); border-radius: 1rem; }
.modality-option__icon svg { width: 1.4rem; }
.modality-option > span:nth-child(2) { display: grid; }
.modality-option strong { color: var(--color-ink); font-size: .88rem; }
.modality-option small { margin-top: .2rem; color: var(--color-muted); font-size: .67rem; }
.modality-option__check { display: grid; width: 1.55rem; height: 1.55rem; place-items: center; color: transparent; border: 1px solid var(--color-sage); border-radius: 50%; }
.modality-option__check svg { width: .9rem; }
.modality-option.is-selected .modality-option__check { color: var(--color-white); background: var(--color-forest); border-color: var(--color-forest); }
.booking-actions { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--color-line); }
.booking-actions--end { justify-content: flex-end; }
.calendar-layout { display: grid; grid-template-columns: 1.08fr .92fr; gap: 1rem; }
.calendar-card, .time-card { padding: 1.4rem; background: var(--color-cream); border: 1px solid var(--color-line); border-radius: var(--radius-lg); }
.calendar-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.calendar-header h3 { font-family: var(--font-body); font-size: .88rem; text-transform: capitalize; }
.calendar-header button { display: grid; width: 2.2rem; height: 2.2rem; place-items: center; color: var(--color-forest); background: var(--color-white); border: 1px solid var(--color-line); border-radius: 50%; font-size: 1.3rem; }
.calendar-header button:disabled { opacity: .35; cursor: not-allowed; }
.calendar-weekdays { display: grid; grid-template-columns: repeat(7,1fr); margin-bottom: .4rem; color: var(--color-muted); font-size: .58rem; font-weight: 700; text-align: center; text-transform: uppercase; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--color-line); color: var(--color-muted); font-size: .6rem; }
.calendar-legend span { display: flex; align-items: center; gap: .35rem; }
.calendar-legend i { width: .6rem; height: .6rem; border-radius: 50%; }
.calendar-legend .is-available { background: var(--color-sage-light); }
.calendar-legend .is-selected { background: var(--color-forest); }
.calendar-legend .is-unavailable { background: #d9ddd9; }
.time-card { display: flex; flex-direction: column; }
.time-card__heading { display: flex; align-items: center; gap: .8rem; padding-bottom: 1rem; border-bottom: 1px solid var(--color-line); }
.time-card__icon { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; color: var(--color-forest); background: var(--color-white); border-radius: 50%; }
.time-card__icon svg { width: 1.25rem; }
.time-card__heading h3 { font-family: var(--font-body); font-size: .86rem; }
.time-card__heading p { color: var(--color-muted); font-size: .62rem; }
.time-slots { display: grid; grid-template-columns: repeat(3,1fr); gap: .55rem; align-content: start; min-height: 13.5rem; padding-block: 1rem; }
.time-slot { padding: .75rem .4rem; color: var(--color-forest-dark); background: var(--color-white); border: 1px solid var(--color-line); border-radius: .65rem; font-size: .76rem; font-weight: 700; transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); }
.time-slot:hover { border-color: var(--color-sage); }
.time-slot.is-selected { color: var(--color-white); background: var(--color-forest); border-color: var(--color-forest); }
.empty-state { grid-column: 1/-1; display: grid; place-items: center; align-content: center; gap: .7rem; color: var(--color-muted); text-align: center; }
.empty-state svg { width: 2rem; }
.empty-state p { max-width: 14rem; font-size: .72rem; }
.time-card__note { margin-top: auto; padding-top: .8rem; border-top: 1px solid var(--color-line); color: var(--color-muted); font-size: .58rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.field--full { grid-column: 1/-1; }
.consent-field { display: flex; align-items: flex-start; gap: .7rem; margin-top: 1rem; color: var(--color-text); font-size: .76rem; cursor: pointer; }
.consent-field input { width: 1.05rem; height: 1.05rem; margin-top: .15rem; accent-color: var(--color-forest); }
.appointment-summary { display: grid; grid-template-columns: repeat(2,1fr); gap: .75rem; }
.summary-item { padding: 1rem 1.15rem; background: var(--color-cream); border: 1px solid var(--color-line); border-radius: var(--radius-sm); }
.summary-item--full { grid-column: 1/-1; }
.summary-item small { display: block; margin-bottom: .3rem; color: var(--color-muted); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.summary-item strong { color: var(--color-ink); font-size: .84rem; }
.summary-item p { font-size: .78rem; }
.booking-notice { display: flex; gap: .8rem; margin-top: 1rem; padding: 1rem; color: var(--color-text); background: var(--color-sage-pale); border-radius: var(--radius-sm); font-size: .72rem; }
.booking-notice svg { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; color: var(--color-forest); }
.booking-success { padding-block: 5rem; text-align: center; }
.booking-success__icon { display: grid; width: 5rem; height: 5rem; margin: 0 auto 1.5rem; place-items: center; color: var(--color-white); background: var(--color-success); border-radius: 50%; box-shadow: 0 12px 28px rgba(50,114,86,.22); }
.booking-success__icon svg { width: 2.4rem; stroke-width: 2.2; }
.booking-success .eyebrow { justify-content: center; }
.booking-success h2 { margin: 1rem 0; }
.booking-success > p:not(.eyebrow) { max-width: 39rem; margin-inline: auto; }
.booking-success__protocol { display: inline-grid; gap: .2rem; margin-top: 1.5rem; padding: .8rem 1.5rem; background: var(--color-sage-pale); border-radius: var(--radius-pill); }
.booking-success__protocol span { color: var(--color-muted); font-size: .58rem; text-transform: uppercase; }
.booking-success__protocol strong { color: var(--color-forest-dark); font-size: .85rem; letter-spacing: .08em; }
.booking-success__actions { display: flex; justify-content: center; gap: .8rem; margin-top: 2rem; }
.booking-help { padding-top: 0; }
.booking-help__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; max-width: 1050px; }
.booking-help__grid > div { padding: 1.6rem; background: var(--color-sand); border-radius: var(--radius-lg); }
.booking-help h2 { margin: 1rem 0 .6rem; font-size: 1.8rem; }
.booking-help p { font-size: .78rem; }
.booking-help a { color: var(--color-forest); font-weight: 700; }

.contact-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 1.3rem; }
.contact-cards { display: grid; gap: .75rem; align-content: start; }
.contact-card { display: grid; grid-template-columns: 3rem 1fr 1.2rem; align-items: center; gap: .9rem; padding: 1rem; background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-md); box-shadow: var(--shadow-card); transition: transform var(--transition-fast), border-color var(--transition-fast); }
.contact-card:hover:not(.contact-card--static) { border-color: var(--color-sage); transform: translateX(.2rem); }
.contact-card__icon { display: grid; width: 3rem; height: 3rem; place-items: center; color: var(--color-forest); background: var(--color-sage-pale); border-radius: 1rem; }
.contact-card__icon svg { width: 1.3rem; }
.contact-card > span:nth-child(2) { display: grid; line-height: 1.35; }
.contact-card small { color: var(--color-muted); font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-card strong { color: var(--color-ink); font-size: .82rem; }
.contact-card em { color: var(--color-forest-soft); font-size: .62rem; font-style: normal; }
.contact-card > svg { width: 1rem; color: var(--color-sage); }
.location-card { overflow: hidden; background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); }
.location-card__map { position: relative; height: 23rem; overflow: hidden; }
.location-card__map img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7) sepia(.08); }
.location-card__map a { position: absolute; right: 1rem; bottom: 1rem; display: inline-flex; align-items: center; gap: .5rem; padding: .7rem 1rem; color: var(--color-white); background: var(--color-forest); border-radius: var(--radius-pill); font-size: .68rem; font-weight: 700; box-shadow: var(--shadow-card); }
.location-card__map a svg { width: 1rem; }
.location-card__content { padding: 2rem; }
.location-card__content h2 { margin: .8rem 0 1rem; font-size: 2.5rem; }
.location-card__content > p:last-child { margin-top: 1rem; font-size: .82rem; }
.address-row { display: flex; gap: .8rem; padding: 1rem; background: var(--color-sage-pale); border-radius: var(--radius-sm); }
.address-row svg { width: 1.2rem; flex: 0 0 auto; color: var(--color-forest); }
.address-row p { color: var(--color-ink); font-size: .78rem; }
.guidance-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 3rem; }
.guidance-grid article { padding: 1.6rem; background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-lg); }
.guidance-grid article > span { color: var(--color-sage); font-family: var(--font-display); font-size: 1.6rem; }
.guidance-grid h3 { margin: 2.5rem 0 .6rem; }
.guidance-grid p { font-size: .82rem; }

/* Blog, serviços, carrinho e depoimentos */
.page-hero--services, .page-hero--blog { background: linear-gradient(140deg, var(--color-cream), #e5eee8); }
.page-hero--services .page-hero__grid > div > .eyebrow, .page-hero--blog .page-hero__grid > div > .eyebrow { margin-bottom: 1.2rem; }
.page-hero--services .page-hero__grid > div > p:last-child, .page-hero--blog .page-hero__grid > div > p:last-child { max-width: 45rem; margin-top: 1.4rem; font-size: 1.04rem; }
.service-note { display: flex; align-items: flex-start; gap: 1rem; padding: 1.5rem; background: rgba(255,255,255,.72); border: 1px solid rgba(40,77,63,.1); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); backdrop-filter: blur(12px); }
.service-note .icon-box { flex: 0 0 auto; }
.service-note strong { display: block; margin-bottom: .35rem; color: var(--color-ink); font-family: var(--font-display); font-size: 1.35rem; }
.service-note p { font-size: .82rem; }
.store-layout { display: grid; grid-template-columns: minmax(0,1fr) 22rem; align-items: start; gap: 2.2rem; }
.services-store-section .store-catalog { width: 100%; }
.product-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-top: 2.8rem; }
.product-card { display: flex; min-height: 33rem; flex-direction: column; padding: 1.7rem; background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base); }
.services-store-section .product-card { min-height: 0; }
.product-card:hover { border-color: rgba(40,77,63,.24); box-shadow: var(--shadow-soft); transform: translateY(-6px); }
.product-card--featured { border-color: var(--color-sage); box-shadow: 0 20px 55px rgba(40,77,63,.13); }
.product-card__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.product-card__tag { padding: .4rem .7rem; color: var(--color-forest); background: var(--color-sage-pale); border-radius: var(--radius-pill); font-size: .62rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.product-card h3 { margin: 2rem 0 .7rem; font-size: 1.75rem; }
.product-card > p { min-height: 6rem; font-size: .84rem; }
.product-card__features { display: grid; gap: .65rem; margin: 1.4rem 0 1.8rem; }
.product-card__features li { position: relative; padding-left: 1.45rem; color: var(--color-text); font-size: .76rem; }
.product-card__features li::before { position: absolute; top: .15rem; left: 0; width: .9rem; height: .9rem; color: var(--color-white); background: var(--color-forest); border-radius: 50%; content: "✓"; font-size: .58rem; font-weight: 800; line-height: .9rem; text-align: center; }
.product-card__footer { display: grid; gap: 1rem; margin-top: auto; padding-top: 1.25rem; border-top: 1px solid var(--color-line); }
.product-card__footer > div { display: grid; }
.product-card__footer small { color: var(--color-muted); font-size: .64rem; }
.product-card__footer strong { color: var(--color-forest-dark); font-family: var(--font-display); font-size: 2rem; }
.product-card__footer .button { width: 100%; }
.store-disclaimer { max-width: 52rem; margin-top: 1.2rem; padding-left: 1rem; border-left: 2px solid var(--color-sage); font-size: .72rem; }
.cart-panel { position: sticky; top: calc(var(--header-height) + 1.2rem); padding: 1.4rem; background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
.cart-panel__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: 1.1rem; border-bottom: 1px solid var(--color-line); }
.cart-panel__header .eyebrow { margin-bottom: .45rem; font-size: .58rem; }
.cart-panel__header h2 { display: flex; align-items: center; gap: .6rem; font-size: 2rem; }
.cart-count { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; color: var(--color-white); background: var(--color-forest); border-radius: 50%; font-family: var(--font-body); font-size: .68rem; }
.cart-clear, .cart-item__remove { color: var(--color-danger); background: transparent; font-size: .66rem; font-weight: 700; }
.cart-empty { padding: 2rem .3rem; font-size: .78rem; text-align: center; }
.cart-items { display: grid; }
.cart-item { display: grid; gap: .85rem; padding: 1rem 0; border-bottom: 1px solid var(--color-line); }
.cart-item__info { display: grid; gap: .2rem; }
.cart-item__info strong { color: var(--color-ink); font-size: .78rem; }
.cart-item__info small { color: var(--color-muted); font-size: .64rem; }
.cart-item__controls { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .65rem; }
.cart-item__quantity { display: inline-flex; align-items: center; gap: .55rem; padding: .25rem; background: var(--color-sage-pale); border-radius: var(--radius-pill); }
.cart-item__quantity-button { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; color: var(--color-forest-dark); background: var(--color-white); border: 1px solid var(--color-line); border-radius: 50%; font-size: 1rem; }
.cart-item__quantity span { min-width: 1rem; color: var(--color-ink); font-size: .72rem; font-weight: 700; text-align: center; }
.cart-item__subtotal { color: var(--color-ink); font-size: .72rem; }
.cart-panel__summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.2rem 0; padding-top: 1rem; border-top: 1px solid var(--color-line); }
.cart-panel__summary span { color: var(--color-muted); font-size: .72rem; }
.cart-panel__summary strong { color: var(--color-forest-dark); font-family: var(--font-display); font-size: 1.7rem; }
.cart-panel__help { display: block; margin-top: .75rem; color: var(--color-muted); font-size: .61rem; line-height: 1.5; text-align: center; }
.blog-hero-mark { display: grid; width: 18rem; height: 18rem; place-content: center; justify-self: center; color: var(--color-white); background: linear-gradient(145deg, var(--color-forest-soft), var(--color-forest-dark)); border-radius: 48% 52% 45% 55% / 55% 44% 56% 45%; box-shadow: var(--shadow-float); text-align: center; transform: rotate(3deg); }
.blog-hero-mark span { font-family: var(--font-display); font-size: 5rem; line-height: .85; }
.blog-hero-mark small { margin-top: .7rem; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; opacity: .72; }
.featured-post { display: grid; grid-template-columns: .95fr 1.05fr; overflow: hidden; background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); }
.featured-post figure { min-height: 31rem; }
.featured-post img { width: 100%; height: 100%; object-fit: cover; }
.featured-post__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem,5vw,4rem); }
.article-meta { display: flex; flex-wrap: wrap; gap: .55rem 1rem; color: var(--color-muted); font-size: .64rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.article-meta span:first-child { color: var(--color-forest-soft); }
.featured-post__content h2 { margin: 1rem 0 1rem; font-size: clamp(2.4rem,4vw,3.5rem); }
.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 2.7rem; }
.blog-card { overflow: hidden; background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); transition: transform var(--transition-base), box-shadow var(--transition-base); }
.blog-card:hover { box-shadow: var(--shadow-soft); transform: translateY(-6px); }
.blog-card figure { height: 15rem; overflow: hidden; }
.blog-card img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); }
.blog-card:hover img { transform: scale(1.04); }
.blog-card__content { padding: 1.5rem; }
.blog-card h3 { margin: .9rem 0 .7rem; font-size: 1.55rem; }
.blog-card p { font-size: .8rem; }
.blog-card a { display: inline-flex; gap: .4rem; margin-top: 1.2rem; color: var(--color-forest); font-size: .76rem; font-weight: 700; }
.article-header { padding: clamp(4.5rem,9vw,8rem) 0 10rem; background: linear-gradient(140deg, var(--color-cream), var(--color-sage-light)); }
.article-header__inner { max-width: 55rem; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; color: var(--color-muted); font-size: .68rem; }
.breadcrumb a:hover { color: var(--color-forest); }
.article-header .article-meta { margin-bottom: 1rem; }
.article-header h1 { font-size: clamp(3rem,7vw,5.6rem); }
.article-lead { max-width: 48rem; margin-top: 1.5rem; font-size: clamp(1.05rem,1.8vw,1.25rem); }
.article-cover { position: relative; z-index: 2; height: min(54vw,38rem); margin-top: -6rem; overflow: hidden; border: .65rem solid var(--color-cream); border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); }
.article-cover img { width: 100%; height: 100%; object-fit: cover; object-position: center 62%; }
.article-layout { display: grid; grid-template-columns: minmax(0,1fr) 19rem; gap: clamp(3rem,7vw,6rem); padding-top: 4.5rem; }
.article-content { max-width: 47rem; }
.article-content > p { margin-bottom: 1.4rem; font-size: 1rem; line-height: 1.85; }
.article-content h2 { margin: 3rem 0 1rem; font-size: 2.5rem; }
.article-highlight, .article-content > blockquote { margin: 2.8rem 0; padding: 2rem 2.2rem; color: var(--color-forest-dark); background: var(--color-sage-pale); border-left: 4px solid var(--color-forest); border-radius: 0 var(--radius-lg) var(--radius-lg) 0; }
.article-highlight p, .article-content > blockquote p { font-family: var(--font-display); font-size: 1.7rem; line-height: 1.35; }
.article-author { display: flex; align-items: center; gap: 1rem; margin-top: 3.5rem; padding-top: 2rem; border-top: 1px solid var(--color-line); }
.article-author img { width: 4rem; height: 4rem; object-fit: cover; border-radius: 50%; }
.article-author div { display: grid; }
.article-author small, .article-author span { color: var(--color-muted); font-size: .66rem; }
.article-author strong { color: var(--color-ink); }
.article-sidebar { position: sticky; top: calc(var(--header-height) + 1.5rem); display: grid; align-self: start; gap: 1rem; }
.article-sidebar > div { padding: 1.4rem; background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); }
.article-sidebar > div:first-child { background: var(--color-sage-pale); }
.article-sidebar h2 { margin-bottom: .7rem; font-size: 1.7rem; }
.article-sidebar p { font-size: .76rem; }
.article-sidebar .button { margin-top: 1rem; }
.testimonials-section { background: linear-gradient(180deg, var(--color-cream), var(--color-sage-pale)); }
.testimonials-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 3rem; }
.testimonial-card { position: relative; display: flex; min-height: 20rem; flex-direction: column; justify-content: space-between; padding: 2rem; overflow: hidden; background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); }
.testimonial-card__quote { position: absolute; top: .5rem; right: 1.2rem; color: var(--color-sage-light); font-family: var(--font-display); font-size: 7rem; line-height: 1; }
.testimonial-card > p { position: relative; z-index: 1; padding-top: 2.5rem; color: var(--color-ink); font-family: var(--font-display); font-size: 1.45rem; line-height: 1.45; }
.testimonial-card footer { display: grid; gap: .15rem; margin-top: 2rem; }
.testimonial-card footer strong { color: var(--color-forest-dark); font-size: .75rem; }
.testimonial-card footer span { color: var(--color-muted); font-size: .62rem; }
.testimonials-note { max-width: 46rem; margin: 1.25rem auto 0; color: var(--color-muted); font-size: .66rem; text-align: center; }
.testimonials-pagination { display: flex; justify-content: center; gap: .45rem; margin-top: 2rem; }
.testimonials-pagination[hidden] { display: none; }
.testimonials-pagination button { display: grid; min-width: 2.4rem; height: 2.4rem; place-items: center; padding: 0 .7rem; color: var(--color-forest); background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-pill); font-size: .75rem; font-weight: 700; cursor: pointer; transition: color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast); }
.testimonials-pagination button:hover:not(:disabled), .testimonials-pagination button[aria-current="page"] { color: var(--color-white); background: var(--color-forest); border-color: var(--color-forest); }
.testimonials-pagination button:disabled { cursor: default; opacity: .4; }

.login-page { min-height: calc(100vh - var(--header-height)); display: grid; place-items: center; background: linear-gradient(135deg, var(--color-cream), var(--color-sage-pale)); }
.login-page__shell { width: 100%; max-width: 34rem; }
.login-page__card { padding: clamp(1.5rem, 4vw, 2.5rem); background: rgba(255,255,255,.88); border: 1px solid rgba(40,77,63,.12); border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); backdrop-filter: blur(12px); }
.login-page__card h1 { margin-top: .2rem; font-size: clamp(2rem, 4vw, 2.8rem); }
.login-page__error { margin-top: 1rem; padding: .9rem 1rem; color: #8a2f2f; background: #fdeeee; border-radius: var(--radius-sm); font-size: .85rem; font-weight: 600; }
.login-page__actions { justify-content: space-between; margin-top: .5rem; }
