/* WordPress block adapter. The original visual stylesheet remains untouched. */
/* Tokens follow the Global Styles palette on the site and inside the editor canvas. */
:root,
.vd-skin-fse,
.editor-styles-wrapper {
  --cream: var(--wp--preset--color--cream, #fbf8f3);
  --paper: var(--wp--preset--color--paper, #fffdf9);
  --espresso: var(--wp--preset--color--espresso, #271e1b);
  --brown: var(--wp--preset--color--brown, #4a3e39);
  --gold: var(--wp--preset--color--gold, #b1873f);
  --gold-dark: var(--wp--preset--color--gold-dark, #876429);
  --blush: var(--wp--preset--color--blush, #e3d0c6);
  --muted: var(--wp--preset--color--muted, #746963);
  /* Variables the v5.0.28 stylesheets expect; they follow the theme.json presets. */
  --vd-heading-font: var(--wp--preset--font-family--playfair-display, "Playfair Display", serif);
  --vd-body-font: var(--wp--preset--font-family--inter, "Inter", system-ui, sans-serif);
  --vd-whatsapp: var(--wp--preset--color--whatsapp, #25d366);
}
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-block-template-part { margin: 0; }

.utility-bar.wp-block-group { max-width: none; }
.utility-inner.wp-block-group { justify-content: flex-end; }
.utility-inner p { margin: 0; display: flex; align-items: center; gap: 7px; }

.site-header.wp-block-group { max-width: none; }
.site-header .brand { margin: 0; }
.site-header .brand .wp-block-site-logo { margin: 0; }
/* Brand: fixed name linked to home. The fallback logo sits inside that link, so a click on it also goes home. */
.site-header .brand .wp-block-site-logo img { width: 58px; height: 58px; object-fit: contain; background: #f3ebe2; border-radius: 50%; }
.site-header .brand-name { margin: 0; }
.site-header .brand-name a { display: grid; grid-template-columns: 58px auto; column-gap: 12px; align-items: center; color: var(--espresso); font-family: "Playfair Display", serif; font-size: 13px; letter-spacing: .12em; line-height: 1.3; text-decoration: none; white-space: nowrap; }
.site-header .brand-name a::before { content: ""; grid-column: 1; grid-row: 1 / 3; width: 58px; height: 58px; border-radius: 50%; background: #f3ebe2 url("../images/vd-logo.webp") center/contain no-repeat; }
.site-header .brand-name strong { grid-column: 2; grid-row: 1; color: var(--gold-dark); font-size: 15px; font-weight: 600; letter-spacing: .18em; }
.site-header .brand:has(.wp-block-site-logo img) .brand-name a { grid-template-columns: auto; }
.site-header .brand:has(.wp-block-site-logo img) .brand-name a::before { display: none; }
.site-header .brand:has(.wp-block-site-logo img) .brand-name strong { grid-column: 1; }
.site-header .wp-block-navigation { justify-self: center; }
.site-header .wp-block-navigation__responsive-container-open { display: none; }
.site-header .wp-block-navigation__container { gap: clamp(17px,2vw,31px); }
.site-header .wp-block-navigation-item__content { position: relative; padding: 8px 0; color: var(--brown); font-size: 12px; font-weight: 500; white-space: nowrap; text-decoration: none; }
.site-header .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 2px; height: 1px; background: var(--gold); transition: right .25s ease; }
.site-header .wp-block-navigation-item__content:hover::after,
.site-header .current-menu-item .wp-block-navigation-item__content::after { right: 0; }
.site-header .header-cta { justify-self: end; }

.wp-block-button.button { min-height: 48px; padding: 0; border: 0; }
.wp-block-button.button .wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: 999px; padding: 0 24px; font-size: 12px; font-weight: 600; letter-spacing: .02em; white-space: nowrap; transition: transform .2s ease,background .2s ease,box-shadow .2s ease; }
.wp-block-button.button .wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button.button-dark .wp-block-button__link { background: var(--espresso); color: white; }
.wp-block-button.button-gold .wp-block-button__link { background: var(--gold-dark); color: white; box-shadow: 0 10px 24px rgba(135,100,41,.18); }
.wp-block-buttons.button-row { gap: 28px; }
.wp-block-button.text-link .wp-block-button__link { min-height: auto; border: 0; border-bottom: 1px solid rgba(39,30,27,.5); border-radius: 0; padding: 5px 0; background: transparent; color: var(--espresso); font-size: 12px; font-weight: 600; }

.hero.wp-block-group { max-width: 1536px; }
.hero > .hero-copy,
.hero > .hero-visual { margin: 0; }
.hero .hero-copy > p.eyebrow { margin: 0; color: var(--gold-dark); font-size: var(--text-label); font-weight: 600; letter-spacing: .16em; line-height: 1.4; text-transform: uppercase; }
.hero-visual > .wp-block-image { width: 100%; height: 100%; margin: 0; }
.hero-visual > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-stamp.wp-block-group { margin: 0; }

.trust-band.wp-block-group { max-width: 1536px; }
.trust-band .trust-stat { margin: 0; }
.trust-band .trust-stat p { margin: 0; }
.trust-band .trust-stat p:first-child { font-family: "Playfair Display",serif; font-size: 28px; font-weight: 500; }
.trust-band .trust-stat p:last-child { color: var(--muted); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }

.story.wp-block-group,
.about-split.wp-block-group,
.before-after.wp-block-group,
.testimonials.wp-block-group,
.contact.wp-block-group { max-width: 1536px; }
.story > .story-image { margin: 0; }
.story-image > .wp-block-image { margin: 0; }
.story-image > .wp-block-image img { width: 100%; min-height: 480px; object-fit: cover; border-radius: var(--soft-radius); }
.story-copy .section-intro { margin: 0; }
.section-intro > p:first-child { display: block; max-width: none; margin: 0 0 15px; color: var(--gold-dark); font-size: var(--text-label); font-weight: 600; letter-spacing: .15em; line-height: 1.2; text-transform: uppercase; }

/* Services menu: same structure as v5.0.28. Layout comes from css-original.css; these rules only adapt block markup. */
.menu-section.wp-block-group { max-width: 1440px; }
.filter-bar.wp-block-buttons { flex-wrap: nowrap; gap: 9px; margin: 0; }
.filter-bar .wp-block-button { flex: 0 0 auto; margin: 0; }
.filter-bar .wp-block-button__link { min-height: 38px; display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; padding: 0 17px; background: transparent; color: var(--brown); font-size: var(--text-small); font-weight: 400; }
.filter-bar .is-selected .wp-block-button__link { border-color: var(--espresso); background: var(--espresso); color: white; }
.service-list.wp-block-query { margin: 0; }
.service-list .wp-block-post-template { margin: 0; padding: 0; list-style: none; counter-reset: vd-service; }
.service-list .wp-block-post { margin: 0; counter-increment: vd-service; }
.service-list .wp-block-post[hidden] { display: none; }
.service-row.wp-block-group,
.service-row > * { margin: 0; }
.service-list .service-index::before { content: counter(vd-service, decimal-leading-zero); }
.service-index { margin: 0; }
.service-main .service-category { margin: 0; color: var(--gold-dark); font-size: var(--text-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.service-main { min-width: 0; }
.service-main .taxonomy-vd_service_category { margin: 0; color: var(--gold-dark); font-size: var(--text-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.service-main .taxonomy-vd_service_category a,
.service-main .wp-block-post-title a { color: inherit; text-decoration: none; }
.service-main .wp-block-post-excerpt,
.service-main .wp-block-post-excerpt__excerpt { margin: 0; }
.service-meta p { margin: 0; }
.service-meta .service-price { color: var(--espresso); font-weight: 600; }
.service-actions .wp-block-buttons { margin: 0; }
.service-actions .wp-block-button.daysmart-link { display: block; border: 0; padding: 0; }
.service-actions .daysmart-link .wp-block-button__link { border: 0; border-bottom: 1px solid var(--espresso); border-radius: 0; padding: 5px 0; background: transparent; color: var(--espresso); font-size: var(--text-small); font-weight: 600; }
.service-actions .detail-link { color: var(--espresso); text-decoration: none; }
.service-empty[hidden] { display: none; }
.service-empty .service-empty-kicker { margin: 0; color: var(--gold-dark); font-size: var(--text-label); font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.service-empty .wp-block-buttons { justify-content: center; }

/* Inner page heroes and About (v5.0.28 structure). */
.inner-hero.wp-block-group { max-width: 1440px; }
.inner-hero > *,
.inner-hero .eyebrow { margin-block: 0; }
.about-split > .wp-block-image { margin: 0; }
.about-split > .wp-block-image img { width: 100%; min-height: 610px; object-fit: cover; border-radius: var(--soft-radius); }
.about-split > .about-bio { margin: 0; }
.about-bio > p:first-child { margin-top: 0; }

.before-after { padding-top: 120px; padding-bottom: 140px; }
.before-after .section-intro { margin-bottom: 52px; }
.before-after-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.before-after-card { position: relative; overflow: hidden; border-radius: var(--soft-radius); background: var(--paper); box-shadow: var(--shadow); }
.before-after-card .wp-block-image { margin: 0; }
.before-after-card .wp-block-image img { width: 100%; height: 460px; object-fit: cover; }
.before-after-card .before-after-copy { padding: 24px 28px 28px; }
.before-after-copy h3 { margin: 0 0 8px; font-family: "Playfair Display",serif; font-size: var(--text-card-title); font-weight: 500; }
.before-after-copy p { margin: 0; color: var(--muted); font-size: var(--text-description); line-height: 1.7; }

.testimonials { padding-top: 120px; padding-bottom: 140px; }
.testimonials .section-intro { margin-bottom: 52px; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.testimonial-card { min-height: 290px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid var(--line); border-radius: var(--soft-radius); padding: 32px; background: var(--paper); box-shadow: 0 18px 50px rgba(74,62,57,.07); }
.testimonial-card .testimonial-quote { margin: 0; color: var(--brown); font-family: "Playfair Display",serif; font-size: 21px; line-height: 1.55; }
.testimonial-card .testimonial-name { margin: 28px 0 0; color: var(--gold-dark); font-size: var(--text-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }

.contact > .contact-info,
.contact > .contact-form-wrap { margin: 0; }
/* The original grid expects an SVG icon in a 24px column; these icons are text glyphs, so the
   first character is floated into that column instead and every line of text stays aligned. */
.contact-info > p { display: block; padding-left: 24px; }
.contact-info > p::first-letter { float: left; width: 24px; margin-left: -24px; color: var(--gold-dark); }
.contact-info > p.social { display: flex; padding-left: 0; }
.contact-info > p.social::first-letter { float: none; width: auto; margin: 0; color: inherit; }
.contact-form-wrap .contact-form-block,
.contact-form-wrap .contact-form { width: 100%; }
.contact-form .form-message { color: #315b45; font-size: 12px; }
.contact-form .form-message:focus { outline: none; }

footer.site-footer { max-width: none; }
.site-footer .footer-brand .wp-block-site-logo { margin: 0; }
.site-footer .footer-brand:not(:has(img))::before { content: ""; width: 70px; height: 70px; flex: 0 0 70px; border-radius: 50%; background: #f3ebe2 url("../images/vd-logo.webp") center/contain no-repeat; }
.site-footer .footer-brand .wp-block-site-logo img { width: 70px; height: 70px; object-fit: contain; background: #f3ebe2; border-radius: 50%; }
.site-footer .footer-brand-name { margin: 0; font-family: "Playfair Display",serif; font-size: 25px; font-weight: 500; }
.site-footer .footer-brand-name a { color: white; text-decoration: none; }
/* The fallback logo is a decoration of the group, so the name link lays a transparent hit area over it. */
.site-footer .footer-brand:not(:has(img)) { position: relative; }
.site-footer .footer-brand:not(:has(img)) .footer-brand-name a::after { content: ""; position: absolute; top: 50%; left: 0; width: 70px; height: 70px; border-radius: 50%; transform: translateY(-50%); }
.site-footer .footer-brand-copy { display: grid; gap: 5px; }
.site-footer .footer-brand-tagline { margin: 0; color: rgba(255,255,255,.5); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.site-footer .footer-links { margin-left: auto; }
.site-footer .footer-column { display: grid; align-content: start; gap: 11px; color: rgba(255,255,255,.6); font-size: 11px; }
.site-footer .footer-column h3 { margin: 0 0 7px; color: white; font-family: "Inter",sans-serif; font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.site-footer .footer-column p { margin: 0; color: rgba(255,255,255,.6); font-size: 11px; }
.site-footer .wp-block-navigation { color: rgba(255,255,255,.7); }
.site-footer .wp-block-navigation__container { gap: 11px; }
.site-footer .wp-block-navigation-item__content { color: inherit; font-size: 11px; }
.site-footer .footer-booking .wp-block-button__link { min-height: auto; border: 0; border-bottom: 1px solid var(--blush); border-radius: 0; padding: 4px 0; background: transparent; color: var(--blush); font-size: 11px; font-weight: 400; }
.site-footer .footer-bottom { margin-top: 65px; }
.site-footer .footer-socials p { margin: 0; }
.site-footer .footer-socials:has(.footer-socials-links p:empty) { display: none; }
/* Developer credit (Customize → 09. Footer): hidden while the developer name is empty. */
.site-footer .footer-credit:empty { display: none; }
.site-footer .footer-credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.whatsapp { background: var(--wp--preset--color--whatsapp, #25d366); box-shadow: 0 12px 30px rgba(37,211,102,.26); }
.whatsapp .wp-block-button__link { min-height: 50px; border: 0; border-radius: 999px; padding: 0 18px; background: transparent; color: white; font-size: 11px; font-weight: 600; }

/* Booking modal (v5.0.28 structure): layout comes from css-original.css. */
.modal-backdrop.wp-block-group { max-width: none; margin: 0; }
.modal-backdrop[hidden] { display: none; }
.booking-modal.wp-block-group { margin: 0; }
.booking-modal > * { margin: 0; }
.modal-close-wrap.wp-block-buttons { position: absolute; top: 18px; right: 18px; z-index: 2; margin: 0; }
.modal-close .wp-block-button__link { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; padding: 0; background: var(--paper); color: var(--espresso); font-size: 18px; line-height: 1; }
.modal-heading .modal-kicker { display: block; margin: 0 0 15px; color: var(--gold-dark); font-size: var(--text-label); font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.modal-heading h2 { color: white; }
.booking-direct > * { margin: 0; }
.booking-direct .wp-block-button,
.booking-direct .wp-block-button__link { width: 100%; }
.booking-direct .booking-note { color: var(--muted); font-size: 9px; line-height: 1.6; }

.generic-page { max-width: 1360px; margin: 0 auto; padding-top: 100px; padding-bottom: 140px; }
.generic-page > .wp-block-post-title { font-family: "Playfair Display",serif; font-size: var(--text-display); font-weight: 500; letter-spacing: -.055em; line-height: .98; }
.generic-page .wp-block-post-content { color: var(--brown); font-size: var(--text-description); line-height: 1.9; }

/* Treatment page (v5.0.28 structure). */
.service-detail-hero.wp-block-group,
.detail-layout.wp-block-group { margin-inline: auto; }
.service-detail-hero > *,
.detail-layout > * { margin: 0; }
.service-detail-copy .back-link { margin-top: 0; }
.service-detail-copy .back-link a { color: inherit; text-decoration: none; }
.service-detail-copy .service-subtitle { margin: 0; color: var(--brown); font-size: var(--text-body); line-height: 1.7; }
.detail-facts.wp-block-group { display: flex; flex-wrap: wrap; align-items: center; gap: 25px; }
.detail-facts p { margin: 0; }
.detail-facts p:empty { display: none; }
.detail-facts .detail-duration::before { content: "◷ "; }
.detail-facts .detail-price { color: var(--espresso); font-weight: 600; }
.service-detail-image img { width: 100%; height: 500px; object-fit: cover; border-radius: var(--soft-radius); }
.service-detail-hero:not(:has(.service-detail-image))::after { content: ""; height: 500px; border-radius: var(--soft-radius); background: url("../images/salon.webp") center/cover no-repeat; }
.detail-content .section-intro { margin: 0; }
.detail-content .vd-service-blocks { margin-top: 30px; }
.booking-card .booking-card-kicker { display: block; margin: 0 0 15px; color: var(--gold-dark); font-size: var(--text-label); font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.booking-card h2 { color: white; }
.booking-card .booking-row { display: flex; justify-content: space-between; margin: 0; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.15); }
.booking-card .booking-row:has(.booking-value:empty) { display: none; }
.booking-card .booking-row p { margin: 0; }
.booking-card .booking-label { color: rgba(255,255,255,.6); font-size: var(--text-label); line-height: 1.6; }
.booking-card .booking-value { font-size: var(--text-small); font-weight: 600; }
.booking-card .wp-block-buttons { margin: 26px 0 17px; }
.booking-card > .wp-block-buttons { display: block; border-top: 0; padding: 0; }
.booking-card .wp-block-button { width: 100%; }
.booking-card .wp-block-button__link { width: 100%; }
.booking-card .booking-card-whatsapp { margin: 0 0 20px; text-align: center; font-size: var(--text-small); }
.booking-card .booking-card-whatsapp a { color: var(--blush); text-decoration: none; }
.booking-card .booking-card-note { margin: 0; color: rgba(255,255,255,.6); font-size: var(--text-label); line-height: 1.6; }


/* Treatment collections: native image + text tiles with a full-tile link. */
.categories.wp-block-group { max-width: 1536px; }
.category-tile > .wp-block-image { width: 100%; height: 100%; margin: 0; }
.category-tile::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(20deg, rgba(26,20,18,.76), rgba(26,20,18,.04) 67%); }
.category-tile .category-content { z-index: 2; margin: 0; }
.category-content .category-note { margin: 0; color: rgba(255,255,255,.72); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.category-content h3 { color: white; }
.category-content h3 a { position: static; width: auto; height: auto; display: inline; border: 0; border-radius: 0; color: inherit; text-decoration: none; }
.category-content h3 a::after { content: ""; position: absolute; inset: -400px -28px -27px; }

/* Skin diagnostic: answers are native buttons that link to each collection. */
.quiz.wp-block-group { max-width: 1420px; }
.quiz > .quiz-intro,
.quiz > .quiz-panel { margin: 0; }
.quiz-intro .eyebrow { color: var(--blush); }
.quiz-intro h2 { color: white; }
.quiz-panel h3 { color: white; }
.quiz-panel .quiz-label { margin: 0; color: var(--blush); font-size: var(--text-label); font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.wp-block-buttons.quiz-options { display: grid; gap: 10px; }
.quiz-options .wp-block-button { width: 100%; margin: 0; }
.quiz-options .wp-block-button__link { width: 100%; min-height: 58px; display: flex; align-items: center; justify-content: space-between; box-sizing: border-box; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 0 18px; background: rgba(255,255,255,.035); color: white; font-size: 13px; font-weight: 400; text-align: left; transition: background .2s, border-color .2s; }
.quiz-options .wp-block-button__link::after { content: "→"; }
.quiz-options .wp-block-button__link:hover { border-color: rgba(227,208,198,.5); background: rgba(255,255,255,.08); }
.quiz-step.wp-block-group,
.quiz-result.wp-block-group { margin: 0; }
.quiz-step[hidden],
.quiz-result[hidden] { display: none; }
.quiz-step h3:focus,
.quiz-result h3:focus { outline: none; }
.quiz-result .quiz-check { width: 44px; height: 44px; display: grid; place-items: center; margin: 0 0 22px; border: 1px solid var(--blush); border-radius: 50%; color: var(--blush); font-size: 18px; }
.quiz-result > p:not([class]) { max-width: 600px; color: rgba(255,255,255,.64); line-height: 1.8; }
.quiz-result .wp-block-button.text-link .wp-block-button__link { border-bottom-color: rgba(255,255,255,.55); color: white; }
.quiz .is-entering { animation: vd-quiz-in .35s ease both; }
@keyframes vd-quiz-in { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: none; } }
/* Without the script (and inside the editor) every step and result stays visible, stacked. */
.quiz:not(.is-interactive) .quiz-panel > * + * { margin-top: 48px; border-top: 1px solid rgba(255,255,255,.14); padding-top: 48px; }

/* FAQ: native Details blocks styled like the original accordion. */
.faq.wp-block-group { max-width: 1370px; }
.faq-layout.wp-block-group,
.faq-list.wp-block-group { margin-block: 0; }
.faq-layout > * { margin: 0; }
.faq-list .wp-block-details { margin: 0; border-top: 1px solid var(--line); }
.faq-list .wp-block-details:last-child { border-bottom: 1px solid var(--line); }
.faq-list .wp-block-details summary { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0; cursor: pointer; list-style: none; font-family: "Playfair Display", serif; font-size: 19px; }
.faq-list .wp-block-details summary::-webkit-details-marker { display: none; }
.faq-list .wp-block-details summary::after { content: ""; flex: 0 0 9px; width: 9px; height: 9px; margin-right: 4px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .25s; }
.faq-list .wp-block-details[open] summary::after { transform: rotate(-135deg); }
.faq-list .wp-block-details p { margin: 0; padding-bottom: 26px; color: var(--muted); font-size: 13px; line-height: 1.8; }

/* Services card grid: Query Loop with image, title, excerpt and link. */
.service-cards-section.wp-block-group { max-width: 1536px; margin: 0 auto; padding-top: 110px; padding-bottom: 140px; }
.service-cards-section > .section-intro { margin-bottom: 52px; }
.service-cards .wp-block-post-template { gap: 18px; margin: 0; padding: 0; list-style: none; }
.service-card.wp-block-group { height: 100%; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: var(--soft-radius); background: var(--paper); box-shadow: 0 18px 50px rgba(74,62,57,.07); }
.service-card .service-card-image { margin: 0; }
.service-card:not(:has(.service-card-image))::before { content: ""; aspect-ratio: 4 / 3; background: url("../images/treatment-editorial.png") center/cover no-repeat; }
.service-card .service-card-image img { width: 100%; height: 100%; object-fit: cover; }
.service-card-body.wp-block-group { flex: 1; display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 24px 26px 28px; }
.service-card-body .taxonomy-vd_service_category { margin: 0; color: var(--gold-dark); font-size: var(--text-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.service-card-body .taxonomy-vd_service_category a,
.service-card-body .wp-block-post-title a { color: inherit; text-decoration: none; }
.service-card-body .wp-block-post-title { margin: 0; font-family: "Playfair Display",serif; font-size: clamp(22px, 2vw, 28px); font-weight: 500; line-height: 1.15; }
.service-card-body .wp-block-post-excerpt { margin: 0; }
.service-card-body .wp-block-post-excerpt__excerpt { margin: 0; color: var(--muted); font-size: var(--text-description); line-height: 1.6; }
.service-card-body .wp-block-read-more { align-self: flex-start; margin-top: auto; border-bottom: 1px solid var(--espresso); padding: 5px 0; color: var(--espresso); font-size: var(--text-small); font-weight: 600; text-decoration: none; }

/* The logo artwork is 1000x1014 with its ring touching the edges, so it is contained, not cropped. */
.links-page .links-brand img { object-fit: contain; border: 0; background: #f3ebe2; }

/* Links page (v5.0.28 structure, without header or footer). Layout comes from editable-overrides.css. */
.links-page .wp-block-post-content > * { margin-block: 0; }
.links-shell.wp-block-group { margin: auto; }
.links-shell > * { margin: 0; }
.links-brand.wp-block-group { gap: 12px; }
.links-brand .wp-block-image,
.links-brand p { margin: 0; }
.links-brand .wp-block-image img { width: 56px; height: 56px; object-fit: contain; background: #f3ebe2; border-radius: 50%; }
.links-page h1 em { display: block; }
.links-actions.wp-block-buttons { display: grid; gap: 11px; }
.links-actions .wp-block-button { width: 100%; margin: 0; }
.links-actions .wp-block-button__link { width: 100%; box-sizing: border-box; text-align: left; font-size: 15px; font-weight: 500; }
.links-actions .wp-block-button__link em { color: rgba(255,255,255,.72); font-size: 10px; font-style: normal; letter-spacing: .1em; }
.links-actions .wp-block-button__link strong { font-weight: 500; }
.links-actions .wp-block-button__link::after { content: "↗"; color: var(--blush); font-size: 18px; transition: transform .22s ease; }
.links-actions .wp-block-button__link:hover::after { transform: translate(3px,-3px); }
.links-visual.wp-block-image img { display: block; width: 100%; height: 100%; min-height: 530px; object-fit: cover; }

@media (max-width: 1180px) {
  .site-header.wp-block-group { grid-template-columns: 1fr auto auto; }
  .site-header .wp-block-navigation { justify-self: end; }
  .site-header .wp-block-navigation__responsive-container-open { display: flex; }
  .site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  /* Same dropdown panel as v5.0.28: the header backdrop-filter makes it the containing block, so the
     open menu sits right below the header instead of covering the screen. */
  .site-header .wp-block-navigation__responsive-container.is-menu-open { inset: 78px 0 auto; height: auto; max-height: calc(100dvh - 78px); padding: 48px 30px 30px; border-bottom: 1px solid var(--line); background: rgba(251,248,243,.98); color: var(--brown); animation: none; }
  .site-header .is-menu-open .wp-block-navigation__responsive-close,
  .site-header .is-menu-open .wp-block-navigation__responsive-dialog,
  .site-header .is-menu-open .wp-block-navigation__responsive-container-content { width: 100%; max-width: none; margin: 0; padding: 0; }
  .site-header .is-menu-open .wp-block-navigation__responsive-container-close { top: 12px; right: 18px; }
  .site-header .is-menu-open .wp-block-navigation__container { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
  .site-header .is-menu-open .wp-block-navigation-item { width: 100%; }
  .site-header .is-menu-open .wp-block-navigation-item__content { min-height: 44px; display: flex; align-items: center; padding: 0; }
  /* Core navigation defaults (white overlay, centered items, admin-bar offset) carry higher specificity. */
  .site-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { background-color: rgba(251,248,243,.98); color: var(--brown); }
  .site-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-dialog,
  .site-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content { margin-top: 0; padding-top: 0; align-items: stretch; }
  .site-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; }
  .site-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item { align-items: flex-start; justify-content: center; }
}
.admin-bar .site-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-dialog { margin-top: 0; }

@media (max-width: 900px) {
  .service-detail-image img,
  .service-detail-hero:not(:has(.service-detail-image))::after { height: 55vw; min-height: 400px; }
  .about-split > .wp-block-image img { min-height: 460px; }
  .hero > .hero-copy,
  .hero > .hero-visual { width: 100%; }
  .before-after-grid { grid-template-columns: 1fr; }
  .testimonial-grid { grid-template-columns: 1fr 1fr; }
  .service-cards .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 650px) {
  .site-header .wp-block-navigation__responsive-container.is-menu-open { inset: 70px 0 auto; max-height: calc(100dvh - 70px); padding-inline: 22px; }
  .site-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container { grid-template-columns: 1fr; }
  .service-detail-image img,
  .service-detail-hero:not(:has(.service-detail-image))::after { height: 90vw; min-height: 350px; }
  .about-split > .wp-block-image img { min-height: 350px; }
  .service-meta .service-price { grid-column: 1 / -1; }
  .site-header .brand-name a { grid-template-columns: 50px; font-size: 0; }
  .site-header .brand-name a::before { width: 50px; height: 50px; }
  .site-header .brand-name strong { display: none; }
  .site-header .brand .wp-block-site-logo img { width: 50px; height: 50px; }
  .site-header .header-cta { display: none; }
  .hero-visual > .wp-block-image img { min-height: 0; }
  .before-after-card .wp-block-image img { height: 330px; }
  .testimonial-grid { grid-template-columns: 1fr; }
  .service-cards .wp-block-post-template { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .quiz .is-entering { animation: none; }
}

@media (prefers-reduced-transparency: reduce) {
}
