/* Lucide icons (lucide-static 1.60.0, ISC licence) as CSS masks.
   Add class "icon-<name>" to a block: the icon is drawn in ::before with the current text colour (buttons: before the label).
   Each icon is also exposed as var(--icon-<name>) for custom CSS. */
:root{--icon-activity:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2'/%3E%3C/svg%3E");--icon-arrow-right:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");--icon-arrow-up-right:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10'/%3E%3Cpath d='M7 17 17 7'/%3E%3C/svg%3E");--icon-baby:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5'/%3E%3Cpath d='M15 12h.01'/%3E%3Cpath d='M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1'/%3E%3Cpath d='M9 12h.01'/%3E%3C/svg%3E");--icon-building-2:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 12h4'/%3E%3Cpath d='M10 8h4'/%3E%3Cpath d='M14 21v-3a2 2 0 0 0-4 0v3'/%3E%3Cpath d='M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2'/%3E%3Cpath d='M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16'/%3E%3C/svg%3E");--icon-calendar-days:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v3'/%3E%3Cpath d='M16 2v3'/%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18'/%3E%3Cpath d='M8 13h.01'/%3E%3Cpath d='M12 13h.01'/%3E%3Cpath d='M16 13h.01'/%3E%3Cpath d='M8 17h.01'/%3E%3Cpath d='M12 17h.01'/%3E%3Cpath d='M16 17h.01'/%3E%3C/svg%3E");--icon-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");--icon-chevron-down:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--icon-chevron-right:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");--icon-clipboard-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E");--icon-cloud-rain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242'/%3E%3Cpath d='M16 14v6'/%3E%3Cpath d='M8 14v6'/%3E%3Cpath d='M12 16v6'/%3E%3C/svg%3E");--icon-heart-pulse:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5'/%3E%3Cpath d='M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27'/%3E%3C/svg%3E");--icon-leaf:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 20a10 10 0 0010-10 25.9 25.9 0 00-1.04-7.281 1 1 0 00-1.755-.325C15.833 5.5 13 5.5 9.8 6.1A7 7 0 0011 20'/%3E%3Cpath d='M2 21a5 5 0 012.911-4.544C7.613 15.212 8.351 15.24 11 13'/%3E%3C/svg%3E");--icon-mail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7'/%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3C/svg%3E");--icon-map-pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");--icon-menu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16'/%3E%3Cpath d='M4 12h16'/%3E%3Cpath d='M4 19h16'/%3E%3C/svg%3E");--icon-message-circle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719'/%3E%3C/svg%3E");--icon-newspaper:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18h-5'/%3E%3Cpath d='M18 14h-8'/%3E%3Cpath d='M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2'/%3E%3Crect width='8' height='4' x='10' y='6' rx='1'/%3E%3C/svg%3E");--icon-phone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384'/%3E%3C/svg%3E");--icon-receipt-text:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 16H8'/%3E%3Cpath d='M14 8H8'/%3E%3Cpath d='M16 12H8'/%3E%3Cpath d='M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z'/%3E%3C/svg%3E");--icon-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21 21-4.34-4.34'/%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3C/svg%3E");--icon-sprout:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 9.536V7a4 4 0 0 1 4-4h1.5a.5.5 0 0 1 .5.5V5a4 4 0 0 1-4 4 4 4 0 0 0-4 4c0 2 1 3 1 5a5 5 0 0 1-1 3'/%3E%3Cpath d='M4 9a5 5 0 0 1 8 4 5 5 0 0 1-8-4'/%3E%3Cpath d='M5 21h14'/%3E%3C/svg%3E");--icon-stethoscope:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 2v2'/%3E%3Cpath d='M5 2v2'/%3E%3Cpath d='M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1'/%3E%3Cpath d='M8 15a6 6 0 0 0 12 0v-3'/%3E%3Ccircle cx='20' cy='10' r='2'/%3E%3C/svg%3E");--icon-sun:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2'/%3E%3Cpath d='M12 20v2'/%3E%3Cpath d='m4.93 4.93 1.41 1.41'/%3E%3Cpath d='m17.66 17.66 1.41 1.41'/%3E%3Cpath d='M2 12h2'/%3E%3Cpath d='M20 12h2'/%3E%3Cpath d='m6.34 17.66-1.41 1.41'/%3E%3Cpath d='m19.07 4.93-1.41 1.41'/%3E%3C/svg%3E");--icon-syringe:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 2 4 4'/%3E%3Cpath d='m17 7 3-3'/%3E%3Cpath d='M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5'/%3E%3Cpath d='m9 11 4 4'/%3E%3Cpath d='m5 19-3 3'/%3E%3Cpath d='m14 4 6 6'/%3E%3C/svg%3E");--icon-warehouse:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11'/%3E%3Cpath d='M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z'/%3E%3Cpath d='M6 13h12'/%3E%3Cpath d='M6 17h12'/%3E%3C/svg%3E");--icon-wheat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 22 16 8'/%3E%3Cpath d='M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z'/%3E%3Cpath d='M7.47 8.53 9 7l1.53 1.53a3.5 3.5 0 0 1 0 4.94L9 15l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z'/%3E%3Cpath d='M11.47 4.53 13 3l1.53 1.53a3.5 3.5 0 0 1 0 4.94L13 11l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z'/%3E%3Cpath d='M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z'/%3E%3Cpath d='M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z'/%3E%3Cpath d='M15.47 13.47 17 15l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z'/%3E%3Cpath d='M19.47 9.47 21 11l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L13 11l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z'/%3E%3C/svg%3E");--icon-x:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E");}
:is([class^="icon-"], [class*=" icon-"]):not(.wp-block-button)::before{content:"";display:inline-block;flex-shrink:0;width:1.25em;height:1.25em;background-color:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.icon-activity{--ic:var(--icon-activity)}
.icon-arrow-right{--ic:var(--icon-arrow-right)}
.icon-arrow-up-right{--ic:var(--icon-arrow-up-right)}
.icon-baby{--ic:var(--icon-baby)}
.icon-building-2{--ic:var(--icon-building-2)}
.icon-calendar-days{--ic:var(--icon-calendar-days)}
.icon-check{--ic:var(--icon-check)}
.icon-chevron-down{--ic:var(--icon-chevron-down)}
.icon-chevron-right{--ic:var(--icon-chevron-right)}
.icon-clipboard-check{--ic:var(--icon-clipboard-check)}
.icon-cloud-rain{--ic:var(--icon-cloud-rain)}
.icon-heart-pulse{--ic:var(--icon-heart-pulse)}
.icon-leaf{--ic:var(--icon-leaf)}
.icon-mail{--ic:var(--icon-mail)}
.icon-map-pin{--ic:var(--icon-map-pin)}
.icon-menu{--ic:var(--icon-menu)}
.icon-message-circle{--ic:var(--icon-message-circle)}
.icon-newspaper{--ic:var(--icon-newspaper)}
.icon-phone{--ic:var(--icon-phone)}
.icon-receipt-text{--ic:var(--icon-receipt-text)}
.icon-search{--ic:var(--icon-search)}
.icon-sprout{--ic:var(--icon-sprout)}
.icon-stethoscope{--ic:var(--icon-stethoscope)}
.icon-sun{--ic:var(--icon-sun)}
.icon-syringe{--ic:var(--icon-syringe)}
.icon-warehouse{--ic:var(--icon-warehouse)}
.icon-wheat{--ic:var(--icon-wheat)}
.icon-x{--ic:var(--icon-x)}

/*
 * CowCare Việt Nam — component CSS. Design tokens (colours, fonts, sizes, layout widths) are in theme.json;
 * this file only styles what blocks cannot express. Direction and rationale: docs/design.md.
 */

:root {
    --milk: var(--wp--preset--color--milk);
    --cream: var(--wp--preset--color--cream);
    --mist: var(--wp--preset--color--mist);
    --line: var(--wp--preset--color--line);
    --ink: var(--wp--preset--color--ink);
    --muted: var(--wp--preset--color--muted);
    --pine-200: var(--wp--preset--color--pine-200);
    --pine-600: var(--wp--preset--color--pine-600);
    --pine-700: var(--wp--preset--color--pine-700);
    --pine-800: var(--wp--preset--color--pine-800);
    --pine-900: var(--wp--preset--color--pine-900);
    --pine-950: var(--wp--preset--color--pine-950);
    --soil: var(--wp--preset--color--soil);
    --soil-700: var(--wp--preset--color--soil-700);
    --soil-100: var(--wp--preset--color--soil-100);
    --radius-card: var(--wp--custom--radius--card);
    --ease: var(--wp--custom--ease--soft);
    --header-h: 4rem;
}

@media (width >= 48rem) {
    :root { --header-h: 4.5rem; }
}

/* ---------- Base ---------- */
html { scroll-padding-top: 6rem; -webkit-text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; overflow-x: clip; }
::selection { background: var(--soil); color: var(--pine-950); }
:focus-visible { outline: 2px solid var(--soil); outline-offset: 2px; }
img { height: auto; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks { padding: 0; }

.container-site {
    margin-inline: auto;
    width: 100%;
    max-width: 76rem;
    padding-inline: 1rem;
    box-sizing: border-box;
}
@media (width >= 48rem) { .container-site { padding-inline: 2rem; } }

.eyebrow,
.eyebrow a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--soil-700);
}
.eyebrow a { text-decoration: none; }
.eyebrow a:hover { text-decoration: underline; }
.eyebrow.wp-block-post-terms { display: block; }
.eyebrow.wp-block-post-terms a { display: inline; }

.page-title,
.section-title {
    margin: 0;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.04;
    letter-spacing: -0.03em;
    color: var(--pine-950);
    text-wrap: balance;
}
.section-title { font-size: 2.1rem; line-height: 1.06; }
@media (width >= 48rem) {
    .page-title { font-size: 3.75rem; }
    .section-title { font-size: 3.25rem; }
}
.page-lead { margin: 0; font-size: 1.125rem; line-height: 1.6; color: var(--muted); }
@media (width >= 48rem) { .page-lead { font-size: 1.25rem; } }

.section { padding-block: 4rem; }
@media (width >= 48rem) { .section { padding-block: 6rem; } }
.section--cream { background: var(--cream); }
.section--dark { background: var(--pine-950); color: #fff; }
.section--dark .section-title { color: #fff; }
.section--dark .eyebrow { color: var(--soil); }

.section-head { display: grid; gap: 1.5rem; margin-bottom: 2.5rem; }
.section-head > * { margin: 0; }
.section-head .eyebrow + .section-title { margin-top: 1rem; }
.section-head--split { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; }
.section-head__text { color: var(--muted); font-size: 1.0625rem; line-height: 1.6; }
.section--dark .section-head__text { color: rgb(255 255 255 / 0.7); }
@media (width >= 48rem) {
    .section-head { margin-bottom: 3.5rem; }
    .section-head__text { font-size: 1.125rem; }
}
@media (width >= 64rem) {
    .section-head:not(.section-head--split) { grid-template-columns: 7fr 5fr; align-items: end; gap: 3rem; }
}

.link-arrow { margin-top: 1rem; font-weight: 600; }
.link-arrow a { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--soil-700); text-decoration: none; }
.link-arrow a::after {
    content: "";
    width: 1.1em; height: 1.1em;
    background: currentColor;
    -webkit-mask: var(--icon-arrow-right) center / contain no-repeat;
    mask: var(--icon-arrow-right) center / contain no-repeat;
    transition: transform 250ms var(--ease);
}
.link-arrow a:hover::after { transform: translateX(4px); }
.section--dark .link-arrow a { color: var(--soil); }

/* ---------- Buttons ---------- */
.wp-block-buttons { gap: 0.75rem; }
.wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 2.75rem;
    padding: 0 1.25rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--soil);
    color: var(--pine-950);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 200ms, color 200ms, border-color 200ms, transform 200ms var(--ease);
}
.wp-block-button__link:hover { background: #ff8460; color: var(--pine-950); text-decoration: none; }
.wp-block-button__link:active { transform: scale(0.97); }
.wp-block-button:is([class^="icon-"], [class*=" icon-"]) .wp-block-button__link::before {
    content: "";
    width: 1.15em; height: 1.15em;
    background: currentColor;
    -webkit-mask: var(--ic) center / contain no-repeat;
    mask: var(--ic) center / contain no-repeat;
}
.wp-block-button.btn-lg .wp-block-button__link { min-height: 3.25rem; padding: 0 1.6rem; font-size: 1rem; }
.wp-block-button.is-style-outline .wp-block-button__link {
    border: 1px solid color-mix(in oklab, var(--ink) 20%, transparent);
    background: #fff;
    color: var(--ink);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--ink); background: #fff; }
.wp-block-button.is-style-dark .wp-block-button__link { background: var(--pine-900); color: #fff; }
.wp-block-button.is-style-dark .wp-block-button__link:hover { background: var(--pine-700); color: #fff; }
.wp-block-button.is-style-glass .wp-block-button__link {
    border-color: rgb(255 255 255 / 0.3);
    background: rgb(255 255 255 / 0.1);
    color: #fff;
    backdrop-filter: blur(10px);
}
.wp-block-button.is-style-glass .wp-block-button__link:hover { background: rgb(255 255 255 / 0.2); color: #fff; }
.wp-block-button.is-style-link .wp-block-button__link {
    min-height: 0;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    white-space: normal;
    text-align: left;
    justify-content: flex-start;
}
.wp-block-button.is-style-link .wp-block-button__link:hover { background: none; color: inherit; text-decoration: underline; }

.pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    height: 2rem;
    padding-inline: 0.85rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 500;
}
.pill-glass { border: 1px solid rgb(255 255 255 / 0.22); background: rgb(255 255 255 / 0.1); color: #fff; backdrop-filter: blur(10px); }
.pill::before { width: 1em; height: 1em; color: var(--soil); }

/* ---------- Block styles ---------- */
.is-style-card {
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: #fff;
}
.is-style-panel-dark { border-radius: var(--radius-card); background: var(--pine-900); color: #fff; }
.is-style-panel-dark :where(h1, h2, h3, h4) { color: #fff; }
.is-style-panel-soil { border-radius: var(--radius-card); background: var(--soil); color: var(--pine-950); }

/* ---------- Header ---------- */
.site-header {
    position: sticky;
    top: 0;
    z-index: 40;
    border-bottom: 1px solid var(--line);
    background: color-mix(in oklab, var(--milk) 90%, transparent);
    backdrop-filter: blur(12px);
    color: var(--ink);
    transition: background-color 300ms, border-color 300ms, color 300ms, box-shadow 300ms;
}
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.site-header a { color: inherit; }
.site-header.is-scrolled { box-shadow: 0 8px 30px -12px rgb(7 20 16 / 0.18); }
.site-header__bar { height: var(--header-h); gap: 1rem; }
.site-header__bar > * { margin: 0; }

.wordmark { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--pine-950); text-decoration: none; white-space: nowrap; }
.wordmark:hover { text-decoration: none; }
.wordmark__name { font-size: 1.45rem; font-weight: 700; line-height: 1; letter-spacing: -0.04em; }
.wordmark__dot { width: 0.5rem; height: 0.5rem; border-radius: 999px; background: var(--soil); }
.wordmark__sub { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.7; }
.wordmark--light, .site-footer .wordmark--light { color: #fff; }
.wordmark--light .wordmark__name { font-size: 1.5rem; }

.site-nav { margin-left: auto; }
.site-nav .wp-block-navigation__container { gap: 0.15rem; font-size: 0.925rem; font-weight: 500; }
.site-nav .wp-block-navigation-item__content { padding: 0.5rem 0.9rem; border-radius: 999px; text-decoration: none; transition: background-color 200ms; }
.site-nav .wp-block-navigation-item__content:hover,
.site-nav .wp-block-navigation-item__content[aria-current="page"] { background: color-mix(in oklab, currentColor 10%, transparent); }
.site-nav .wp-block-navigation__responsive-container-open { padding: 0; width: 2.75rem; height: 2.75rem; justify-content: center; border-radius: 999px; }
.site-nav .wp-block-navigation__responsive-container-open:hover { background: color-mix(in oklab, currentColor 10%, transparent); }

/* The hamburger menu stays until 1024px (core switches at 600px, too narrow for six links plus the phone button) */
@media (width >= 37.5rem) and (width < 64rem) {
    .site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
    .site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.site-nav .wp-block-navigation__responsive-container.is-menu-open {
    padding: 5rem 1.5rem 2rem;
    background: var(--milk);
    color: var(--pine-950);
}
.site-nav .is-menu-open .wp-block-navigation__container { gap: 0; align-items: stretch; width: 100%; }
.site-nav .is-menu-open .wp-block-navigation-item { width: 100%; }
.site-nav .is-menu-open .wp-block-navigation-item__content {
    display: block;
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: -0.01em;
}
.site-nav .is-menu-open .wp-block-navigation-item__content[aria-current="page"] { background: none; color: var(--soil-700); }
.site-nav .wp-block-navigation__responsive-container-close { top: 1rem; right: 1rem; }

.site-header__actions { gap: 0.25rem; }
.site-header__actions > * { margin: 0; }
.site-header .site-header__call { display: none; }
@media (width >= 40rem) { .site-header .site-header__call { display: flex; } }

.site-search { position: relative; width: 2.75rem; height: 2.75rem; margin: 0; }
.site-search .wp-block-search__inside-wrapper { position: absolute; top: 0; right: 0; z-index: 5; height: 2.75rem; border-radius: 999px; }
.site-search .wp-block-search__button {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: none;
    color: inherit;
    cursor: pointer;
}
.site-search .wp-block-search__button:hover { background: color-mix(in oklab, currentColor 10%, transparent); }
.site-search .wp-block-search__button svg { width: 1.5rem; height: 1.5rem; fill: currentColor; }
.site-search .wp-block-search__input { color: var(--ink); font-size: 0.95rem; }
.site-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper {
    width: min(22rem, calc(100vw - 2rem));
    padding-left: 1rem;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
    box-shadow: 0 12px 40px -16px rgb(7 20 16 / 0.35);
}
.site-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__input { border: 0; background: none; outline: 0; }
.site-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__button { color: var(--pine-950); }

.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* Home page: header floats transparently over the hero until the page is scrolled */
.js .home .site-header:not(.is-scrolled) { border-color: transparent; background: transparent; color: #fff; backdrop-filter: none; }
.js .home .site-header:not(.is-scrolled) .wordmark { color: #fff; }

/* ---------- Hero ---------- */
.hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: flex-end;
    min-height: 640px;
    overflow: hidden;
    background: var(--pine-950);
    color: #fff;
}
/* three classes of specificity: beats core's ".is-layout-flow > :first-child" margin reset */
.wp-site-blocks .hero.hero { margin-top: calc(var(--header-h) * -1); }
@media (width >= 48rem) { .hero { min-height: 720px; } }
@media (width >= 64rem) { .hero { height: 100svh; max-height: 920px; } }
.hero__media { position: absolute; inset: 0; z-index: -2; margin: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; }
.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(to top, var(--pine-950) 0%, rgb(7 20 16 / 0.55) 55%, rgb(7 20 16 / 0.35) 100%);
}
@media (width >= 48rem) {
    .hero::before { background: linear-gradient(to top right, rgb(7 20 16 / 0.95) 0%, rgb(7 20 16 / 0.45) 50%, rgb(7 20 16 / 0.1) 100%); }
}
.hero__inner { width: 100%; padding-top: 9rem; padding-bottom: 7rem; }
@media (width >= 48rem) { .hero__inner { padding-bottom: 6rem; } }
.hero__inner > * { margin: 0; }
.hero .hero__title {
    margin-top: 1.5rem;
    max-width: 14ch;
    font-size: clamp(3.25rem, 15vw, 8.25rem);
    line-height: 0.95;
    letter-spacing: -0.045em;
    color: #fff;
    text-wrap: balance;
}
.hero__text { margin-top: 1.5rem; max-width: 34rem; font-size: 1.125rem; line-height: 1.6; color: rgb(255 255 255 / 0.85); }
@media (width >= 48rem) { .hero__text { font-size: 1.25rem; } }
.hero__actions { margin-top: 2.25rem; }
.hero__legal { margin-top: 2.5rem; font-size: 0.875rem; color: rgb(255 255 255 / 0.65); }
.hero__credit { position: absolute; right: 1rem; bottom: 0.75rem; margin: 0; font-size: 0.6875rem; color: rgb(255 255 255 / 0.5); }
.scroll-cue { position: absolute; bottom: 1.5rem; left: 50%; display: none; translate: -50% 0; color: rgb(255 255 255 / 0.6); text-decoration: none; }
.scroll-cue::before { width: 1.75rem; height: 1.75rem; }
.scroll-cue:hover { color: #fff; }
@media (width >= 48rem) { .scroll-cue { display: block; } }

/* ---------- Stats ---------- */
.stats-strip { border-bottom: 1px solid var(--line); background: #fff; }
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 1rem; padding-block: 2.5rem; }
.stats > * { margin: 0; }
@media (width >= 48rem) { .stats { gap: 2rem 1.5rem; padding-block: 3.5rem; } }
@media (width >= 64rem) { .stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.stat > * { margin: 0; }
.stat__value {
    font-size: clamp(2.75rem, 7vw, 4.5rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.04em;
    font-variant-numeric: tabular-nums;
    color: var(--pine-950);
}
.stat__label { margin-top: 0.5rem; font-size: 0.875rem; color: var(--muted); }
.stat--address {
    grid-column: span 3;
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 1rem;
    align-items: center;
    padding: 1.25rem;
    border-radius: var(--radius-card);
    background: var(--cream);
}
.stat--address::before { grid-row: span 2; width: 1.75rem; height: 1.75rem; color: var(--soil-700); }
.stat--address .stat__label { margin: 0; }
.stat__address { font-size: 0.9rem; font-weight: 600; line-height: 1.4; }
@media (width >= 64rem) { .stat--address { grid-column: span 1; } }

/* ---------- Services: bento ---------- */
.bento-query { display: grid; gap: 0.75rem; grid-auto-rows: 17.5rem; }
@media (width >= 48rem) { .bento-query { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } }
@media (width >= 64rem) { .bento-query { grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 15.5rem; } }
.bento { display: contents; margin: 0; padding: 0; list-style: none; }
.bento > li { display: flex; margin: 0; min-width: 0; }
.bento > li:nth-child(1) { grid-row: span 2; }
@media (width >= 48rem) { .bento > li:nth-child(1) { grid-column: span 2; } }
@media (width >= 64rem) {
    .bento > li { grid-column: span 5; }
    .bento > li:nth-child(1), .bento > li:nth-child(4) { grid-column: span 7; }
}
.bento-cta { grid-column: auto; }
@media (width >= 64rem) { .bento-cta { grid-column: span 5; } }

.bento-tile {
    position: relative;
    isolation: isolate;
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    padding: 1.5rem;
    border-radius: var(--radius-card);
    background: var(--pine-800);
    color: #fff;
}
@media (width >= 48rem) { .bento-tile { padding: 1.75rem; } }
.bento-tile > * { margin: 0; }
.bento-tile__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; margin: 0; }
.bento-tile__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease); }
.bento-tile:hover .bento-tile__image img { transform: scale(1.06); }
.bento-tile::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(to top, rgb(7 20 16 / 0.92) 0%, rgb(7 20 16 / 0.45) 45%, rgb(7 20 16 / 0.05) 100%);
}
.bento-tile::after {
    content: "";
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 999px;
    background: rgb(255 255 255 / 0.14) var(--icon-arrow-up-right) center / 1.25rem no-repeat;
    backdrop-filter: blur(8px);
    transition: background-color 300ms, transform 400ms var(--ease);
}
.bento-tile:hover::after { background-color: var(--soil); transform: rotate(45deg); }
.bento-tile__title { margin-top: 0.5rem; max-width: 28rem; font-size: 1.5rem; line-height: 1.15; letter-spacing: -0.02em; }
@media (width >= 48rem) { .bento-tile__title { font-size: 1.75rem; } }
.bento-tile__title a { color: #fff; text-decoration: none; }
.bento-tile__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.bento { counter-reset: tile; }
.bento > li { counter-increment: tile; }
.bento-tile__title::before { content: "0" counter(tile); display: block; margin-bottom: 0.5rem; font-size: 0.875rem; font-weight: 600; letter-spacing: 0; color: var(--soil); }
.bento-tile__excerpt { margin-top: 0.5rem; max-width: 32rem; font-size: 0.9rem; line-height: 1.55; color: rgb(255 255 255 / 0.78); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bento-tile__excerpt p { margin: 0; }

.bento-cta {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.5rem;
    border-radius: var(--radius-card);
    background: var(--soil);
    color: var(--pine-950);
}
@media (width >= 48rem) { .bento-cta { padding: 1.75rem; } }
.bento-cta > * { margin: 0; }
.bento-cta h3 { font-size: 1.5rem; line-height: 1.15; color: var(--pine-950); }
@media (width >= 48rem) { .bento-cta h3 { font-size: 1.75rem; } }
.bento-cta p { margin-top: 0.5rem; max-width: 24rem; font-size: 0.95rem; line-height: 1.55; color: rgb(7 20 16 / 0.8); }
.bento-cta .wp-block-button.is-style-outline .wp-block-button__link { border-color: rgb(7 20 16 / 0.25); background: transparent; color: var(--pine-950); }
.bento-cta .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgb(7 20 16 / 0.1); }

/* ---------- Process (home): steps ---------- */
.steps-query { margin-top: 3.5rem; }
@media (width >= 48rem) { .steps-query { margin-top: 5rem; } }
.steps {
    --progress: 0;
    --n: 7;
    position: relative;
    display: grid;
    gap: 2rem;
    margin: 0;
    padding: 0 0 0 4.25rem;
    list-style: none;
    counter-reset: step;
}
@media (width >= 64rem) {
    .steps { grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 1.25rem; padding: 5rem 0 0; }
}
.steps::before, .steps::after {
    content: "";
    position: absolute;
    left: 1.6rem;
    top: 0.5rem;
    bottom: 0.5rem;
    width: 2px;
    border-radius: 2px;
    background: rgb(255 255 255 / 0.14);
}
.steps::after { background: var(--soil); transform-origin: top; transform: scaleY(var(--progress)); }
@media (width >= 64rem) {
    .steps::before, .steps::after {
        left: 1.75rem;
        right: calc((100% - (var(--n) - 1) * 1.25rem) / var(--n) - 1.75rem);
        top: 1.75rem;
        bottom: auto;
        width: auto;
        height: 2px;
    }
    .steps::after { transform-origin: left; transform: scaleX(var(--progress)); }
}
.steps > li { position: relative; margin: 0; counter-increment: step; }
.steps > li::before, .steps > li::after {
    content: "";
    position: absolute;
    left: -4.25rem;
    top: -0.25rem;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 999px;
}
.steps > li::before { border: 1px solid rgb(255 255 255 / 0.16); background: var(--pine-900); transition: background-color 400ms, border-color 400ms, transform 400ms var(--ease); }
.steps > li::after {
    background: var(--pine-200);
    -webkit-mask: var(--ic) center / 1.5rem no-repeat;
    mask: var(--ic) center / 1.5rem no-repeat;
    border-radius: 0;
    transition: background-color 400ms;
}
@media (width >= 64rem) {
    .steps > li::before, .steps > li::after { left: 0; top: -5rem; width: 3.5rem; height: 3.5rem; }
}
.steps > li.is-active::before { border-color: var(--soil); background: var(--soil); transform: scale(1.06); }
.steps > li.is-active::after { background: var(--pine-950); }
.steps > li > * { margin: 0; }
.step__title { font-size: 1.125rem; line-height: 1.3; letter-spacing: -0.01em; }
.step__title::before {
    content: "Bước " counter(step);
    display: block;
    margin-bottom: 0.375rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgb(255 255 255 / 0.5);
}
.step__title a { color: #fff; text-decoration: none; }
.step__title a:hover { color: var(--soil); }
.step__text { margin-top: 0.5rem; font-size: 0.875rem; line-height: 1.6; color: rgb(255 255 255 / 0.65); }
@media (width >= 64rem) { .step__text { font-size: 0.8rem; } }
.steps > li:nth-child(1), .timeline > li:nth-child(1) { --ic: var(--icon-clipboard-check); }
.steps > li:nth-child(2), .timeline > li:nth-child(2) { --ic: var(--icon-syringe); }
.steps > li:nth-child(3), .timeline > li:nth-child(3) { --ic: var(--icon-wheat); }
.steps > li:nth-child(4), .timeline > li:nth-child(4) { --ic: var(--icon-warehouse); }
.steps > li:nth-child(5), .timeline > li:nth-child(5) { --ic: var(--icon-baby); }
.steps > li:nth-child(6), .timeline > li:nth-child(6) { --ic: var(--icon-activity); }
.steps > li:nth-child(n+7), .timeline > li:nth-child(n+7) { --ic: var(--icon-stethoscope); }

/* ---------- Seasons ---------- */
.seasons__calendar { padding: 1.25rem; }
@media (width >= 48rem) { .seasons__calendar { padding: 1.75rem; } }
.seasons__calendar > * { margin: 0; }
.months { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.month { display: grid; gap: 0.4rem; justify-items: center; margin: 0; font-size: 0.7rem; font-weight: 600; color: var(--muted); }
.month > span:first-child { width: 100%; height: 0.6rem; border-radius: 999px; background: #f4dcae; }
.month-rain > span:first-child { background: var(--pine-600); }
.month.is-now { color: var(--soil-700); }
.month.is-now > span:first-child { outline: 2px solid var(--soil); outline-offset: 2px; }
.months-legend { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin: 1rem 0 0; font-size: 0.75rem; color: var(--muted); }
.months-legend span { display: inline-flex; align-items: center; gap: 0.5rem; }
.months-legend span::before { content: ""; width: 1.5rem; height: 0.5rem; border-radius: 999px; }
.months-legend__rain::before { background: var(--pine-600); }
.months-legend__dry::before { background: #f4dcae; }
.months-legend__now::before { outline: 2px solid var(--soil); outline-offset: 2px; }
.seasons__cards { display: grid; gap: 1rem; margin-top: 1rem; }
.seasons__cards > * { margin: 0; }
@media (width >= 48rem) { .seasons__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.season-card { position: relative; padding: 1.5rem; }
@media (width >= 48rem) { .season-card { padding: 2rem; } }
.season-card > * { margin: 0; }
.season-card::before { position: absolute; top: 1.75rem; right: 1.75rem; width: 2rem; height: 2rem; opacity: 0.7; }
@media (width >= 48rem) { .season-card::before { top: 2.25rem; right: 2.25rem; } }
.season-card--rain::before { color: var(--pine-200); }
.season-card--dry::before { color: var(--soil-700); }
.season-card h3 { font-size: 1.5rem; letter-spacing: -0.02em; }
.season-card--dry h3 { color: var(--pine-950); }
.season-card__time { margin-top: 0.25rem; font-size: 0.875rem; color: var(--pine-200); }
.season-card--dry .season-card__time { color: var(--muted); }
.season-list { display: grid; gap: 0.7rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.season-list li { position: relative; margin: 0; padding-left: 1.75rem; line-height: 1.55; }
.season-list li::before {
    content: "";
    position: absolute;
    left: 0; top: 0.3em;
    width: 1.1rem; height: 1.1rem;
    background: var(--soil);
    -webkit-mask: var(--icon-check) center / contain no-repeat;
    mask: var(--icon-check) center / contain no-repeat;
}
.season-card--dry .season-list li::before { background: var(--soil-700); }
.season-card--rain .season-list li { color: rgb(255 255 255 / 0.85); }

/* ---------- Posts: cards, grids, chips ---------- */
.chips { gap: 0.5rem; margin-block: 1.5rem; }
.chips > * { margin: 0; }
.chips__list, .chips__list ul { display: contents; margin: 0; padding: 0; list-style: none; }
.chips .wp-block-categories { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.chips .wp-block-categories li { margin: 0; }
.chips a, .chips__all a {
    display: inline-flex;
    align-items: center;
    height: 2.25rem;
    padding: 0 1rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--ink);
    font-size: 0.875rem;
    text-decoration: none;
    transition: border-color 200ms, background-color 200ms;
}
.chips a:hover { border-color: var(--ink); text-decoration: none; }
.chips a[aria-current], .chips li.current-cat > a { border-color: var(--pine-900); background: var(--pine-900); color: #fff; }

.post-grid { display: grid; gap: 3rem 2rem; margin: 0; padding: 0; list-style: none; }
.post-grid > li { margin: 0; }
@media (width >= 40rem) { .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (width >= 64rem) { .post-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.archive-feed { padding-bottom: 4rem; }
@media (width >= 48rem) { .archive-feed { padding-bottom: 6rem; } }

.post-card { position: relative; }
.post-card > * { margin: 0; }
.post-card__image { overflow: hidden; border-radius: var(--radius-card); background: var(--cream); }
.post-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease); }
.post-card:hover .post-card__image img { transform: scale(1.05); }
.post-card__body { margin-top: 1rem; }
.post-card__body > * { margin: 0; }
.post-card__title { margin-top: 0.5rem; font-size: 1.25rem; font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; text-wrap: pretty; }
.post-card__title a { color: var(--pine-950); text-decoration: none; transition: color 200ms; }
.post-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.post-card:hover .post-card__title a { color: var(--soil-700); }
.post-card__excerpt { margin-top: 0.6rem; font-size: 0.925rem; line-height: 1.6; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.post-card__excerpt p { margin: 0; }
.post-card__date { margin-top: 0.75rem; font-size: 0.75rem; color: var(--muted); }
.post-card .eyebrow { position: relative; z-index: 2; }

.magazine { display: grid; gap: 2.5rem; margin-top: 2.5rem; }
.magazine > * { margin: 0; }
@media (width >= 64rem) { .magazine { grid-template-columns: 7fr 5fr; gap: 3rem; } }
.post-lead, .post-list { margin: 0; padding: 0; list-style: none; }
.post-lead > li, .post-list > li { margin: 0; }
.post-card--lead .post-card__title { font-size: 1.75rem; font-weight: 700; letter-spacing: -0.025em; }
@media (width >= 48rem) { .post-card--lead .post-card__title { font-size: 2.4rem; line-height: 1.12; } }
.post-card--lead .post-card__excerpt { font-size: 1.05rem; }
.post-list { display: grid; align-content: start; }
.post-list > li { padding-block: 1.25rem; border-top: 1px solid var(--line); }
.post-list > li:first-child { padding-top: 0; border-top: 0; }
.post-card--row { display: grid; grid-template-columns: 6.5rem 1fr; gap: 1rem; align-items: center; }
@media (width >= 40rem) { .post-card--row { grid-template-columns: 8.5rem 1fr; gap: 1.25rem; } }
.post-card--row .post-card__image { border-radius: 0.75rem; }
.post-card--row .post-card__body { margin-top: 0; }
.post-card--row .post-card__title { margin-top: 0.3rem; font-size: 1.05rem; }

.pagination { margin-top: 3.5rem; gap: 0.5rem; font-size: 0.9rem; }
.pagination .page-numbers, .pagination a { padding: 0.5rem 0.9rem; border-radius: 999px; text-decoration: none; color: var(--ink); }
.pagination .page-numbers.current { background: var(--pine-900); color: #fff; }
.pagination a:hover { background: var(--cream); }

/* ---------- Page headers ---------- */
.page-header { padding-top: 2.5rem; padding-bottom: 2.5rem; }
@media (width >= 48rem) { .page-header { padding-top: 4rem; padding-bottom: 3rem; } }
.page-header > * { margin: 0; max-width: 46rem; }
.page-header .page-title, .page-header .page-lead { margin-top: 1rem; }
.page-header .chips { margin-top: 2rem; max-width: none; }
.page-header--center { text-align: center; }
.page-header--center > * { margin-inline: auto; }
.page-header--center .wp-block-buttons { justify-content: center; margin-top: 2rem; }
.page-header .wp-block-search { margin-top: 2rem; }
.page-main > .container-site > .page-title { padding-top: 2.5rem; margin-bottom: 2rem; }
@media (width >= 48rem) { .page-main > .container-site > .page-title { padding-top: 4rem; margin-bottom: 3rem; } }
.page-main { padding-bottom: 4rem; }
.single-main > .container-site:last-of-type { padding-bottom: 0; }
.single-main .article-cta { margin-bottom: 0; }
.archive-main { padding-bottom: 0; }

.search-page-form .wp-block-search__inside-wrapper { gap: 0.5rem; }
.search-page-form .wp-block-search__input,
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea, .wpcf7 select {
    box-sizing: border-box;
    width: 100%;
    min-height: 3rem;
    padding: 0.7rem 1.1rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-size: 1rem;
}
.search-page-form .wp-block-search__button { margin: 0; min-height: 3rem; padding: 0 1.5rem; border: 0; border-radius: 999px; background: var(--soil); color: var(--pine-950); font-weight: 600; cursor: pointer; }

/* ---------- Article ---------- */
.article-head { padding-top: 2rem; max-width: 52rem; }
@media (width >= 48rem) { .article-head { padding-top: 3rem; } }
.article-head > * { margin: 0; }
.breadcrumb { gap: 0.25rem; font-size: 0.875rem; color: var(--muted); }
.breadcrumb > * { margin: 0; }
.breadcrumb a { color: var(--muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--ink); }
.breadcrumb .wp-block-post-terms::before { content: "›"; margin-right: 0.25rem; }
.article-title { margin-top: 1.25rem; font-size: 2.25rem; line-height: 1.08; letter-spacing: -0.03em; text-wrap: balance; }
@media (width >= 48rem) { .article-title { font-size: 3rem; } }
.article-lead { margin-top: 1.25rem; font-size: 1.125rem; line-height: 1.6; color: var(--muted); }
@media (width >= 48rem) { .article-lead { font-size: 1.25rem; } }
.article-lead p { margin: 0; }
.article-meta { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--line); gap: 0.25rem 0.5rem; font-size: 0.875rem; color: var(--muted); }
.article-meta > * { margin: 0; }
.article-figure { margin-top: 2rem; max-width: 64rem; }
.article-figure > * { margin: 0; }
.article-figure__image img { width: 100%; border-radius: var(--radius-card); object-fit: cover; }
.figure-caption { margin-top: 0.6rem; font-size: 0.8rem; line-height: 1.5; color: var(--muted); }
.figure-caption:empty { display: none; }
.figure-caption a { color: inherit; text-decoration: underline; }

.prose { max-width: 46rem; margin-inline: auto; margin-top: 2.5rem; font-size: 1.0625rem; line-height: 1.75; color: var(--ink); }
@media (width >= 48rem) { .prose { font-size: 1.125rem; } }
.prose > * + * { margin-top: 1.25em; }
.prose :where(h2) { margin-top: 2em; font-size: 1.6em; line-height: 1.2; letter-spacing: -0.02em; }
.prose :where(h3) { margin-top: 1.75em; font-size: 1.3em; line-height: 1.3; letter-spacing: -0.015em; }
.prose :where(h2, h3) + * { margin-top: 0.75em; }
.prose :where(ul, ol) { padding-left: 1.4em; }
.prose :where(li) { margin-top: 0.4em; padding-left: 0.2em; }
.prose :where(ul > li)::marker { color: var(--soil); }
.prose :where(ol > li)::marker { color: var(--soil-700); font-weight: 600; }
.prose :where(a) { text-underline-offset: 0.2em; }
.prose :where(strong) { color: var(--ink); }
.prose :where(blockquote) { margin-inline: 0; padding: 0.25em 0 0.25em 1.25em; border-left: 3px solid var(--soil); font-family: var(--wp--preset--font-family--serif); font-size: 1.15em; color: var(--pine-900); }
.prose :where(blockquote p) { margin: 0; }
.prose :where(blockquote p + p) { margin-top: 0.75em; }
.prose :where(img) { border-radius: var(--radius-card); }
.prose :where(.wp-block-table) { overflow-x: auto; font-size: 0.875em; }
.prose :where(table) { width: 100%; border-collapse: collapse; }
.prose :where(th) { padding: 0.65em 0.9em; border-bottom: 2px solid var(--ink); text-align: left; font-weight: 600; }
.prose :where(td) { padding: 0.65em 0.9em; border-bottom: 1px solid var(--line); vertical-align: top; }
.prose :where(hr) { margin-block: 2.5em; border: 0; border-top: 1px solid var(--line); }

.article-cta { margin-top: 3rem; max-width: 44rem; margin-inline: auto; padding: 1.5rem; gap: 1rem 1.5rem; }
.article-cta > * { margin: 0; }
.article-cta__title { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.02em; color: var(--pine-900); }
.article-cta__text { margin-top: 0.25rem; font-size: 0.875rem; color: var(--muted); }
.related { margin-top: 4rem; padding-block: 3.5rem; border-top: 1px solid var(--line); background: #fff; }
@media (width >= 48rem) { .related { padding-block: 5rem; } }
.related .post-grid { margin-top: 2.5rem; }
.related .section-title { margin: 0; }

.service-layout { display: grid; gap: 3rem; }
.service-layout > * { margin: 0; }
.service-layout .prose { margin-top: 2.5rem; max-width: 44rem; }
@media (width >= 64rem) {
    .service-layout { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 4rem; }
    .service-layout .prose { margin-top: 2.5rem; }
}
.service-aside { align-self: start; margin-top: 0; }
@media (width >= 64rem) { .service-aside { position: sticky; top: 7rem; margin-top: 2.5rem; } }
.service-aside > * { margin: 0; }
.service-aside > * + * { margin-top: 1.5rem; }
.service-aside__cta { padding: 1.5rem; }
.service-aside__cta > * { margin: 0; }
.service-aside__title { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.02em; }
.service-aside__text { margin-top: 0.5rem !important; font-size: 0.875rem; color: rgb(255 255 255 / 0.7); }
.service-aside__cta .wp-block-buttons { margin-top: 1.25rem; align-items: stretch; }
.service-aside__cta .wp-block-button, .service-aside__cta .wp-block-button__link { width: 100%; }
.service-links { margin: 0.75rem 0 0; padding: 0; list-style: none; border-block: 1px solid var(--line); }
.service-links > li { margin: 0; }
.service-links > li + li { border-top: 1px solid var(--line); }
.service-links h3 { margin: 0; font-size: 1rem; font-weight: 500; letter-spacing: 0; }
.service-links a { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.85rem 0; color: var(--ink); text-decoration: none; }
.service-links a::after { content: ""; width: 1rem; height: 1rem; background: currentColor; -webkit-mask: var(--icon-arrow-right) center / contain no-repeat; mask: var(--icon-arrow-right) center / contain no-repeat; }
.service-links a:hover { color: var(--soil-700); }

/* ---------- Services page ---------- */
.service-rows { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); counter-reset: service; }
.service-rows > li { margin: 0; counter-increment: service; border-bottom: 1px solid var(--line); }
.service-row { display: grid; gap: 2rem; padding-block: 3rem; align-items: center; }
.service-row > * { margin: 0; }
.service-row__image img { width: 100%; border-radius: var(--radius-card); object-fit: cover; }
.service-row__body > * { margin: 0; }
.service-row__body::before { content: "0" counter(service); display: block; font-size: 0.875rem; font-weight: 600; color: var(--soil-700); }
.service-row__title { margin-top: 0.5rem; font-size: 1.9rem; line-height: 1.12; letter-spacing: -0.025em; }
.service-row__title a { color: var(--pine-950); text-decoration: none; }
.service-row__text { margin-top: 1rem; font-size: 1.125rem; line-height: 1.6; color: rgb(11 25 20 / 0.8); }
.service-row__text p { margin: 0; }
.service-row__more { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1.75rem; min-height: 2.75rem; padding: 0 1.25rem; border: 1px solid color-mix(in oklab, var(--ink) 20%, transparent); border-radius: 999px; background: #fff; color: var(--ink); font-size: 0.9rem; font-weight: 600; text-decoration: none; transition: border-color 200ms; }
.service-row__more:hover { border-color: var(--ink); }
.service-row__more::after { content: ""; width: 1rem; height: 1rem; background: currentColor; -webkit-mask: var(--icon-arrow-right) center / contain no-repeat; mask: var(--icon-arrow-right) center / contain no-repeat; }
@media (width >= 48rem) { .service-row { padding-block: 4rem; } .service-row__title { font-size: 2.4rem; } }
@media (width >= 64rem) {
    .service-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3.5rem; }
    .service-rows > li:nth-child(even) .service-row__image { order: 2; }
}

/* ---------- Process page ---------- */
.process-page { padding-bottom: 4rem; }
@media (width >= 48rem) { .process-page { padding-bottom: 6rem; } }
.step-chips { display: flex; gap: 0.5rem; margin: 0 0 2.5rem; padding: 0 0 0.5rem; overflow-x: auto; list-style: none; scrollbar-width: none; counter-reset: chip; }
.step-chips > li { flex-shrink: 0; margin: 0; counter-increment: chip; }
.step-chips h3 { margin: 0; font-size: 0.875rem; font-weight: 500; letter-spacing: 0; }
.step-chips a { display: inline-flex; align-items: center; gap: 0.5rem; height: 2.25rem; padding: 0 1rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); text-decoration: none; transition: border-color 200ms; }
.step-chips a:hover { border-color: var(--ink); }
.step-chips a::before { content: "0" counter(chip); font-size: 0.75rem; font-weight: 700; color: var(--soil-700); font-variant-numeric: tabular-nums; }

.timeline { --progress: 0; position: relative; display: grid; gap: 1.5rem; margin: 0; padding: 0 0 0 3.5rem; list-style: none; counter-reset: step; }
@media (width >= 48rem) { .timeline { gap: 2rem; padding-left: 5.5rem; } }
.timeline::before, .timeline::after { content: ""; position: absolute; left: 1.25rem; top: 1.5rem; bottom: 1.5rem; width: 2px; border-radius: 2px; background: var(--line); }
.timeline::after { background: var(--soil); transform-origin: top; transform: scaleY(var(--progress)); }
@media (width >= 48rem) { .timeline::before, .timeline::after { left: 2rem; } }
.timeline > li { position: relative; margin: 0; counter-increment: step; scroll-margin-top: 7rem; }
.timeline > li::before {
    content: counter(step, decimal-leading-zero);
    position: absolute;
    left: -3.5rem;
    top: 1.25rem;
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--milk);
    color: var(--muted);
    font-size: 0.8rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    transition: background-color 400ms, color 400ms, border-color 400ms;
}
@media (width >= 48rem) { .timeline > li::before { left: -5.5rem; width: 4rem; height: 4rem; font-size: 1rem; } }
.timeline > li.is-active::before { border-color: var(--soil); background: var(--soil); color: var(--pine-950); }

.step-card { display: grid; overflow: hidden; }
.step-card > * { margin: 0; }
@media (width >= 48rem) { .step-card { grid-template-columns: 7fr 5fr; } }
.step-card__content { padding: 1.5rem; }
@media (width >= 48rem) { .step-card__content { padding: 2.25rem; } }
.step-card__content > * { margin: 0; }
.step-card__head { display: flex; align-items: center; gap: 1rem; }
.step-card__head > * { margin: 0; }
.step-card__head::after { content: "Bước " counter(step); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.step-card__icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; flex-shrink: 0; border-radius: 0.875rem; background: var(--cream); color: var(--pine-700); }
.step-card__icon::before { content: ""; width: 1.6rem; height: 1.6rem; background: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.step-card__title { margin-top: 1.25rem; font-size: 1.5rem; line-height: 1.2; letter-spacing: -0.02em; }
@media (width >= 48rem) { .step-card__title { font-size: 2rem; } }
.step-card__title a { color: var(--pine-950); text-decoration: none; }
.step-card__lead { margin-top: 0.75rem; font-size: 1.125rem; font-weight: 500; line-height: 1.6; color: rgb(11 25 20 / 0.85); }
.step-card__lead p { margin: 0; }
.step-card__details { margin-top: 1rem; }
.step-card__details > * { margin: 0; }
.step-card__details p { line-height: 1.7; color: var(--muted); }
.step-card__details h3 { margin-top: 1.25rem; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--soil-700); }
.step-card__details ul { display: grid; gap: 0.5rem; margin: 0.75rem 0 0; padding: 0; list-style: none; }
.step-card__details li { position: relative; margin: 0; padding-left: 1.75rem; font-weight: 500; }
.step-card__details li::before { content: ""; position: absolute; left: 0; top: 0.2em; width: 1.15rem; height: 1.15rem; border-radius: 999px; background: var(--soil-100) var(--icon-check) center / 0.7rem no-repeat; }
.step-card__media { position: relative; min-height: 220px; overflow: hidden; background: var(--pine-900); }
.step-card__media > * { margin: 0; }
.step-card__image { position: absolute; inset: 0; }
.step-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease); }
.step-card:hover .step-card__image img { transform: scale(1.05); }
.step-card__caption { position: absolute; right: 0.75rem; bottom: 0.75rem; left: 0.75rem; padding: 0.375rem 0.75rem; border-radius: 999px; background: rgb(7 20 16 / 0.7); color: rgb(255 255 255 / 0.85); font-size: 0.6875rem; line-height: 1.4; backdrop-filter: blur(6px); }
.step-card__caption:empty { display: none; }
.step-card__caption a { color: inherit; text-decoration: underline; }
.step-card__media:not(:has(img))::before { content: counter(step, decimal-leading-zero); position: absolute; right: 1rem; bottom: -1.5rem; font-size: 9rem; font-weight: 700; line-height: 1; letter-spacing: -0.06em; color: rgb(255 255 255 / 0.06); }
.step-card__media:not(:has(img))::after { content: ""; position: absolute; inset: 0; margin: auto; width: 4.5rem; height: 4.5rem; background: var(--pine-200); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
@media (width < 48rem) { .step-card__media:not(:has(img)) { display: none; } }

/* ---------- Contact ---------- */
.contact-details { display: grid; gap: 2.5rem; padding-bottom: 3rem; }
.contact-details > * { margin: 0; }
@media (width >= 64rem) { .contact-details { grid-template-columns: 5fr 7fr; } }
.contact-details__list > * + * { margin-top: 1rem; }
.contact-phone { padding: 1.5rem; }
.contact-phone > * { margin: 0; }
.contact-phone::before { width: 1.1rem; height: 1.1rem; margin-bottom: 0.5rem; color: var(--soil); }
.contact-phone__label { font-size: 0.875rem; color: rgb(255 255 255 / 0.7); }
.contact-phone__number { margin-top: 0.5rem; }
.contact-phone__number .wp-block-button__link { font-size: 2.25rem; font-weight: 700; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: #fff; }
.contact-phone__number .wp-block-button__link:hover { color: var(--soil); text-decoration: none; }
.contact-list { overflow: hidden; }
.contact-list > * { margin: 0; }
.contact-item { position: relative; display: grid; grid-template-columns: 2.5rem 1fr; column-gap: 1rem; padding: 1rem 1.25rem; }
.contact-item + .contact-item { border-top: 1px solid var(--line); }
.contact-item > * { margin: 0; grid-column: 2; }
.contact-item::before { grid-column: 1; grid-row: 1 / span 3; width: 1.5rem; height: 1.5rem; margin: 0.1rem 0 0 0.35rem; color: var(--pine-700); }
.contact-item__label { font-size: 0.75rem; color: var(--muted); }
.contact-item__value .wp-block-button__link, .contact-item__text { margin-top: 0.1rem; font-weight: 600; color: var(--ink); word-break: break-word; }
.contact-item__value .wp-block-button__link::after { content: ""; position: absolute; inset: 0; }
.contact-item__sub { margin-top: 0.1rem; font-size: 0.875rem; color: var(--muted); }
.contact-details__map { overflow: hidden; min-height: 340px; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--cream); }
.contact-details__map > * { margin: 0; height: 100%; }
@media (width >= 48rem) { .contact-details__map { min-height: 520px; } }
.cc-map { display: block; width: 100%; height: 100%; min-height: inherit; border: 0; }
.contact-details__map .cc-map-editor { height: 100%; }

.contact-form-section { display: grid; gap: 2rem; padding-block: 3rem 5rem; }
.contact-form-section > * { margin: 0; }
.contact-form-section__intro > * { margin: 0; }
.contact-form-section__intro .section-title { margin-top: 1rem; }
.contact-form-section__intro .section-head__text { margin-top: 1rem; }
@media (width >= 64rem) { .contact-form-section { grid-template-columns: 5fr 7fr; gap: 4rem; align-items: start; } }
.contact-form-card { padding: 1.5rem; }
@media (width >= 48rem) { .contact-form-card { padding: 2.25rem; } }
.contact-form-card > * { margin: 0; }
.wpcf7 form { display: grid; gap: 1.1rem; }
.wpcf7 form > p, .wpcf7 form > div { margin: 0; }
.wpcf7 label { display: grid; gap: 0.4rem; font-size: 0.875rem; font-weight: 600; color: var(--pine-950); }
.wpcf7 textarea { min-height: 9rem; border-radius: 1rem; resize: vertical; }
.wpcf7 input:focus, .wpcf7 textarea:focus { outline: 2px solid var(--soil); outline-offset: 1px; border-color: var(--soil); }
.wpcf7 .form-row { display: grid; gap: 1.1rem; }
@media (width >= 40rem) { .wpcf7 .form-row { grid-template-columns: 1fr 1fr; } }
.wpcf7-submit { min-height: 3.25rem; padding: 0 2rem; border: 0; border-radius: 999px; background: var(--soil); color: var(--pine-950); font: inherit; font-size: 1rem; font-weight: 600; cursor: pointer; transition: background-color 200ms, transform 200ms var(--ease); }
.wpcf7-submit:hover { background: #ff8460; }
.wpcf7-submit:active { transform: scale(0.98); }
.wpcf7 .hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wpcf7-not-valid-tip { margin-top: 0.3rem; font-size: 0.8rem; font-weight: 500; color: #b3261e; }
.wpcf7 form .wpcf7-response-output { margin: 0; padding: 0.85rem 1.1rem; border: 1px solid var(--line); border-radius: 0.75rem; font-size: 0.9rem; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--pine-600); background: var(--cream); color: var(--pine-900); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: #b3261e; background: #fdecea; color: #7a1b15; }
.wpcf7-spinner { display: none; }
.wpcf7 form .wpcf7-response-output:empty, .wpcf7 form.init .wpcf7-response-output { display: none; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7 form.submitting .wpcf7-submit { opacity: 0.6; pointer-events: none; }
.wpcf7-list-item { margin: 0; }

.about-layout { display: grid; gap: 2.5rem; padding-bottom: 4rem; }
.about-layout > * { margin: 0; }
@media (width >= 64rem) { .about-layout { grid-template-columns: 7fr 5fr; gap: 4rem; } }
.about-layout .prose { margin-top: 0; }
.about-facts { padding: 1.5rem; }
.about-facts > * { margin: 0; }
.about-facts__title { font-size: 1.25rem; letter-spacing: -0.02em; color: var(--pine-900); }
.about-facts__label { margin-top: 1rem; font-size: 0.875rem; color: var(--muted); }
.about-facts__title + .about-facts__label { margin-top: 1.25rem; }
.about-facts__value { margin-top: 0.15rem; font-size: 0.9rem; font-weight: 600; word-break: break-word; }

.cta-card { padding: 1.5rem; gap: 1rem 2rem; }
.cta-card > * { margin: 0; }
.cta-card h3 { font-size: 1.5rem; }
.cta-card p { margin-top: 0.4rem; font-size: 0.95rem; color: rgb(255 255 255 / 0.75); }

.contact-band-wrap { padding-block: 1rem; }
@media (width >= 48rem) { .contact-band-wrap { padding-block: 2rem 4rem; } }
.contact-band { display: grid; overflow: hidden; border-radius: var(--radius-card); background: var(--pine-900); color: #fff; }
.contact-band > * { margin: 0; }
@media (width >= 64rem) { .contact-band { grid-template-columns: 7fr 5fr; } }
.contact-band__main { padding: 1.5rem; }
@media (width >= 40rem) { .contact-band__main { padding: 2.5rem; } }
@media (width >= 64rem) { .contact-band__main { padding: 3.5rem; } }
.contact-band__main > * { margin: 0; }
.contact-band .eyebrow { color: var(--soil); }
.contact-band__title { margin-top: 1rem; font-size: 2.1rem; line-height: 1.05; letter-spacing: -0.03em; color: #fff; text-wrap: balance; }
@media (width >= 48rem) { .contact-band__title { font-size: 3rem; } }
.contact-band__phone { margin-top: 2rem; }
.contact-band__phone .wp-block-button__link { font-size: 2.15rem; font-weight: 700; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: var(--soil); }
@media (width >= 40rem) { .contact-band__phone .wp-block-button__link { font-size: 3.75rem; } }
.contact-band__phone .wp-block-button__link:hover { text-decoration: none; color: #ff8460; }
.contact-band__main > .wp-block-buttons { margin-top: 1.5rem; }
.contact-band__facts { display: grid; gap: 1.25rem; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid rgb(255 255 255 / 0.1); font-size: 0.875rem; }
.contact-band__facts > * { margin: 0; }
@media (width >= 40rem) { .contact-band__facts { grid-template-columns: 1fr 1fr; } .contact-band__fact--wide { grid-column: span 2; } }
.contact-band__fact > * { margin: 0; }
.contact-band__fact .footer-label:not(:first-child) { margin-top: 1rem; }
.contact-band__map { position: relative; min-height: 300px; }
.contact-band__map > * { margin: 0; }
.contact-band__map .cc-map { position: absolute; inset: 0; filter: grayscale(35%); }

/* ---------- Footer ---------- */
.site-footer { margin-top: 0; background: var(--pine-950); color: rgb(255 255 255 / 0.7); font-size: 0.875rem; padding-bottom: 5.5rem; }
@media (width >= 48rem) { .site-footer { padding-bottom: 0; } }
.site-footer a { color: inherit; }
.site-footer__main { display: grid; gap: 2.5rem; padding-block: 3.5rem; }
.site-footer__main > * { margin: 0; }
@media (width >= 48rem) { .site-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (width >= 64rem) { .site-footer__main { grid-template-columns: 5fr 4fr 3fr; gap: 2rem; } }
.site-footer__main > div > * { margin: 0; }
.site-footer__about { margin-top: 1rem !important; max-width: 24rem; line-height: 1.6; }
.footer-label { margin: 0; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: rgb(255 255 255 / 0.6); }
.site-footer__brand .footer-label { margin-top: 1.25rem !important; }
.site-footer__brand .footer-label:first-of-type { margin-top: 1.75rem !important; }
.footer-value { margin: 0.15rem 0 0; color: #fff; }
.footer-value--strong { font-weight: 500; }
.footer-contact { margin-top: 0.9rem; gap: 0.9rem; }
.footer-contact .wp-block-button__link { min-height: 0; gap: 0.75rem; padding: 0; border: 0; background: none; color: #fff; font-size: 1rem; font-weight: 600; white-space: normal; text-align: left; }
.footer-contact .wp-block-button__link:hover { background: none; color: var(--soil); }
.footer-contact .wp-block-button__link::before { width: 1.35rem; height: 1.35rem; background-color: var(--soil); }
.footer-links { margin-top: 0.9rem; }
.footer-links .wp-block-navigation__container { gap: 0.6rem; }
.footer-links .wp-block-navigation-item__content { padding: 0; color: inherit; font-size: 0.95rem; text-decoration: none; }
.footer-links .wp-block-navigation-item__content:hover { color: #fff; text-decoration: underline; }
.site-footer__bottom { border-top: 1px solid rgb(255 255 255 / 0.1); }
.site-footer__bottom-inner { gap: 0.75rem 1.5rem; padding-block: 1.25rem; font-size: 0.75rem; color: rgb(255 255 255 / 0.6); }
.site-footer__bottom-inner > * { margin: 0; }
.footer-secondary .wp-block-navigation__container { gap: 0.4rem 1.25rem; }
.footer-secondary .wp-block-navigation-item__content { padding: 0; color: inherit; font-size: 0.75rem; }
.footer-secondary .wp-block-navigation-item__content:hover { color: #fff; }

/* ---------- Mobile call bar ---------- */
.wp-site-blocks .call-bar {
    position: fixed;
    inset: auto 0.75rem 0.75rem;
    z-index: 40;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.5rem;
    margin: 0;
    padding: 0.375rem;
    border-radius: 999px;
    background: rgb(7 20 16 / 0.95);
    box-shadow: 0 12px 40px -12px rgb(7 20 16 / 0.6);
    backdrop-filter: blur(10px);
    transition: transform 400ms var(--ease), opacity 300ms;
}
.call-bar .wp-block-button { margin: 0; }
.call-bar__call, .call-bar__call .wp-block-button__link { width: 100%; }
.wp-site-blocks .call-bar.is-hidden { opacity: 0; transform: translateY(150%); pointer-events: none; }
@media (width >= 48rem) { .wp-site-blocks .call-bar { display: none; } }

/* ---------- Motion ---------- */
@keyframes hero-zoom { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes rise-in { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes scroll-cue { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(6px); } }

@media (prefers-reduced-motion: no-preference) {
    .hero__media img { animation: hero-zoom 2.4s var(--ease) both; }
    .hero__inner > * { animation: rise-in 1s var(--ease) both; }
    .hero__inner > :nth-child(2) { animation-delay: 120ms; }
    .hero__inner > :nth-child(3) { animation-delay: 240ms; }
    .hero__inner > :nth-child(4) { animation-delay: 360ms; }
    .hero__inner > :nth-child(5) { animation-delay: 480ms; }
    .scroll-cue::before { animation: scroll-cue 1.8s ease-in-out infinite; }

    .js .reveal,
    .js .bento > li,
    .js .steps > li,
    .js .timeline > li,
    .js .post-grid > li,
    .js .post-list > li {
        opacity: 0;
        transform: translateY(32px);
        transition: opacity 900ms var(--ease), transform 900ms var(--ease);
        transition-delay: var(--reveal-delay, 0ms);
    }
    .js :is(.reveal, .bento > li, .steps > li, .timeline > li, .post-grid > li, .post-list > li).is-visible { opacity: 1; transform: none; }
    .steps::after, .timeline::after { transition: transform 150ms linear; }
}

@media (prefers-reduced-motion: reduce) {
    .steps, .timeline { --progress: 1 !important; }
    .call-bar { transition: none; }
}

/* Editor canvas: show hero/section content without front-end-only effects */
.editor-styles-wrapper .hero { margin-top: 0; }

/* Reading columns: article and plain pages share one centred column; composed pages and service pages stay left-aligned */
.article-head { max-width: 50rem; }
.article-head > * { max-width: none; }
.article-figure { max-width: 68rem; }
.page-main > .container-site { max-width: 50rem; }
.prose--left, .service-layout .prose, .about-layout .prose { margin-inline: 0; }
.prose .wp-block-post-content, .prose > .wp-block-group { max-width: none; }
.text-section { padding-bottom: 3rem; }
.text-section .prose { margin-top: 0; }

/* Cards show one topic only (the first); the full list is on the article page */
.post-card .wp-block-post-terms a:not(:first-of-type),
.post-card .wp-block-post-terms .wp-block-post-terms__separator { display: none; }

/* Phone/tablet header order: logo ... search, menu button */
@media (width < 64rem) {
    .site-header .site-nav { order: 3; margin-left: 0; }
    .site-header .site-header__actions { order: 2; margin-left: auto; }
}

.breadcrumb .wp-block-post-terms a:not(:first-of-type),
.breadcrumb .wp-block-post-terms .wp-block-post-terms__separator { display: none; }

.wpcf7 .hidden-fields-container { display: none; }
