/*
Theme Name: Continuum
Theme URI: https://continuum.ma/
Author: Continuum Solutions
Author URI: https://continuum.ma/
Description: Thème bloc sur mesure de Continuum Solutions — ERP métier, applications web et automatisation à Casablanca.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.0
License: Propriétaire
Text Domain: continuum
*/

:root {
	--cs-ink: var(--wp--preset--color--ink);
	--cs-brand: var(--wp--preset--color--brand);
	--cs-line: var(--wp--preset--color--line);
	--cs-slate: var(--wp--preset--color--slate);
	--cs-radius: var(--wp--custom--radius, 16px);
	--cs-shadow: var(--wp--custom--shadow);
	--cs-ease: cubic-bezier(.2, .7, .2, 1);
}

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
::selection { background: var(--cs-brand); color: var(--cs-ink); }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.wp-site-blocks { padding: 0; }
img { height: auto; }
a { text-underline-offset: .2em; text-decoration-thickness: 1px; }
:focus-visible { outline: 3px solid var(--cs-brand); outline-offset: 3px; border-radius: 4px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Brand helpers ---------- */
.hl { background: linear-gradient(transparent 62%, var(--cs-brand) 62%, var(--cs-brand) 92%, transparent 92%); padding: 0 .08em; }
.has-ink-background-color .hl, .is-dark .hl { background: none; color: var(--cs-brand); padding: 0; }
.is-style-eyebrow, p.eyebrow {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--xs) !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	display: inline-flex; align-items: center; gap: .6rem; color: var(--cs-slate);
}
.is-style-eyebrow::before { content: ""; width: 22px; height: 3px; border-radius: 3px; background: var(--cs-brand); }
.has-ink-background-color .is-style-eyebrow { color: #C7CCD8; }
.lead { font-size: var(--wp--preset--font-size--lg); color: var(--cs-slate); line-height: 1.65; }
.has-ink-background-color .lead { color: #B9C0CF; }
.muted { color: var(--cs-slate); }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.86); backdrop-filter: saturate(180%) blur(14px); -webkit-backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid transparent; transition: border-color .3s, box-shadow .3s; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-header.is-scrolled { border-bottom-color: var(--cs-line); box-shadow: 0 6px 24px rgba(11,15,25,.05); }
.site-header .wp-block-navigation__container { gap: 1.9rem; }
.site-header .wp-block-navigation-item__content { padding: .4rem 0; position: relative; }
.site-header .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px; background: var(--cs-brand); transition: right .25s var(--cs-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 .wp-block-navigation__submenu-container { border: 1px solid var(--cs-line) !important; border-radius: 14px; padding: .5rem !important; box-shadow: var(--cs-shadow); min-width: 260px !important; }
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem .8rem !important; border-radius: 8px; }
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { display: none; }
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--mist); }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1rem; font-size: 1.25rem; }
.header-cta .wp-block-button__link { padding: .7rem 1.2rem; }
@media (max-width: 900px) { .header-cta { display: none !important; } }

.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--cs-ink); line-height: 1; }
.brand svg { width: 52px; height: auto; flex: none; }
.brand-name { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.12rem; letter-spacing: .1em; display: flex; flex-direction: column; gap: .3rem; }
.brand-name b { color: inherit; font-weight: 800; background: linear-gradient(transparent 55%, var(--cs-brand) 55%); }
.brand-name small { font-size: .6rem; letter-spacing: .42em; font-weight: 600; color: var(--cs-slate); }
.is-dark .brand, .has-ink-background-color .brand { color: #fff; }
.has-ink-background-color .brand-name small { color: #9AA3B5; }
.has-ink-background-color .brand-name b { background: none; color: var(--cs-brand); }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: transform .2s var(--cs-ease), box-shadow .2s, background-color .2s, color .2s; display: inline-flex; align-items: center; gap: .55rem; }
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(253,236,0,.35); }
.wp-block-button:not(.is-style-ghost) .wp-block-button__link::after { content: "→"; font-weight: 700; transition: transform .2s var(--cs-ease); }
.wp-block-button__link:hover::after { transform: translateX(3px); }
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: currentColor; box-shadow: inset 0 0 0 1.5px currentColor; }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { background: var(--cs-ink); color: #fff; box-shadow: inset 0 0 0 1.5px var(--cs-ink); }
.has-ink-background-color .wp-block-button.is-style-ghost .wp-block-button__link { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.35); }
.has-ink-background-color .wp-block-button.is-style-ghost .wp-block-button__link:hover { background: #fff; color: var(--cs-ink); }
.has-brand-background-color .wp-block-button__link { background: var(--cs-ink); color: #fff; }
.has-brand-background-color .wp-block-button__link:hover { box-shadow: 0 10px 24px rgba(11,15,25,.25); }

/* ---------- Hero ---------- */
.hero { position: relative; overflow: hidden; isolation: isolate; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
	background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
	background-size: 56px 56px; mask-image: radial-gradient(ellipse 80% 70% at 70% 30%, #000 30%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse 80% 70% at 70% 30%, #000 30%, transparent 75%); }
.hero::after { content: ""; position: absolute; z-index: -1; width: 680px; height: 680px; right: -180px; top: -260px; border-radius: 50%; background: radial-gradient(circle, rgba(253,236,0,.22), transparent 62%); }
.hero h1 { letter-spacing: -0.035em; }
.hero-visual img { border-radius: 18px; box-shadow: 0 40px 80px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.08); }
.hero-visual { transform: perspective(1600px) rotateY(-6deg) rotateX(2deg); transition: transform .6s var(--cs-ease); }
.hero-visual:hover { transform: none; }
@media (max-width: 781px) { .hero-visual { transform: none; } }
.stack-row { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; color: #9AA3B5; font-size: var(--wp--preset--font-size--sm); }
.stack-row span { display: inline-flex; align-items: center; gap: .45rem; }
.stack-row span::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--cs-brand); }

/* ---------- Cards ---------- */
.is-style-card, .is-style-card-dark { border-radius: var(--cs-radius); transition: transform .3s var(--cs-ease), box-shadow .3s, border-color .3s; height: 100%; }
.is-style-card { background: #fff; border: 1px solid var(--cs-line); box-shadow: 0 1px 2px rgba(11,15,25,.04); }
.is-style-card:hover { transform: translateY(-4px); box-shadow: var(--cs-shadow); border-color: #D0D5DD; }
.is-style-card-dark { background: var(--wp--preset--color--ink-2); border: 1px solid rgba(255,255,255,.08); color: #fff; }
.is-style-card-dark:hover { border-color: rgba(253,236,0,.45); transform: translateY(-4px); }
.is-style-card-dark p { color: #B9C0CF; }
.wp-block-columns.is-cards > .wp-block-column { display: flex; flex-direction: column; }
.card-link a { font-family: var(--wp--preset--font-family--display); font-weight: 700; text-decoration: none; font-size: var(--wp--preset--font-size--sm); }
.card-link a::after { content: " →"; transition: margin .2s; }
.card-link a:hover::after { margin-left: 4px; }
.is-style-card .card-link { margin-top: auto !important; padding-top: .5rem; }

/* Icons (CSS masks so they stay crisp and recolourable) */
[class*="cs-ic-"]::before { content: ""; display: block; width: 52px; height: 52px; border-radius: 14px; margin-bottom: 1.4rem;
	background: var(--cs-ink) var(--ic) center / 26px no-repeat; }
.is-style-card-dark[class*="cs-ic-"]::before, .has-ink-background-color [class*="cs-ic-"]::before { background-color: var(--cs-brand); }
.cs-ic-erp { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1.5'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1.5'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1.5'/%3E%3Cpath d='M14 17.5h7M17.5 14v7'/%3E%3C/svg%3E"); }
.cs-ic-web { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M2 8h20M9 13l-2 2 2 2M15 13l2 2-2 2'/%3E%3C/svg%3E"); }
.cs-ic-shop { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/%3E%3Cpath d='M3 6h18M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E"); }
.cs-ic-growth { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 7l-8.5 8.5-5-5L2 17'/%3E%3Cpath d='M16 7h6v6'/%3E%3C/svg%3E"); }
.cs-ic-ai { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.8 4.7L18.5 9.5l-4.7 1.8L12 16l-1.8-4.7L5.5 9.5l4.7-1.8z'/%3E%3Cpath d='M19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z'/%3E%3C/svg%3E"); }
.cs-ic-home { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5L12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E"); }
.cs-ic-crane { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 21V3l14 4H6M10 21V7M3 21h10M18 7v5'/%3E%3Crect x='16' y='12' width='4' height='3'/%3E%3C/svg%3E"); }
.cs-ic-box { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 8l-9-5-9 5v8l9 5 9-5z'/%3E%3Cpath d='M3 8l9 5 9-5M12 13v8'/%3E%3C/svg%3E"); }
.cs-ic-doc { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E"); }
.cs-ic-shield { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.cs-ic-pin { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.cs-ic-key { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7.5' cy='15.5' r='4.5'/%3E%3Cpath d='M10.7 12.3L21 2M16 7l3 3M18 5l2 2'/%3E%3C/svg%3E"); }
.cs-ic-support { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14v-2a9 9 0 0 1 18 0v2'/%3E%3Cpath d='M21 15a2 2 0 0 1-2 2h-1v-5h1a2 2 0 0 1 2 2zM3 15a2 2 0 0 0 2 2h1v-5H5a2 2 0 0 0-2 2zM18 17v1a3 3 0 0 1-3 3h-3'/%3E%3C/svg%3E"); }
.cs-ic-chat { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3Cpath d='M8 9h8M8 13h5'/%3E%3C/svg%3E"); }
.cs-ic-alert { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9L1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E"); }
.cs-ic-sheet { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18M3 15h18M9 3v18'/%3E%3C/svg%3E"); }
.cs-ic-truck { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDEC00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 4h14v12H1zM15 9h4l3 3v4h-7'/%3E%3Ccircle cx='5.5' cy='18.5' r='2'/%3E%3Ccircle cx='18.5' cy='18.5' r='2'/%3E%3C/svg%3E"); }

/* ---------- Lists ---------- */
.is-style-checks { list-style: none; padding-left: 0 !important; }
.is-style-checks li { position: relative; padding-left: 1.9rem; margin-bottom: .55rem; }
.is-style-checks li::before { content: ""; position: absolute; left: 0; top: .32em; width: 1.15rem; height: 1.15rem; border-radius: 50%;
	background: var(--cs-brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0F19' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center / 62% no-repeat; }

/* ---------- Pain points ---------- */
.pain { border-left: 3px solid var(--cs-brand); padding-left: 1.25rem; }

/* ---------- Sector cards (image + overlay) ---------- */
.sector { border-radius: var(--cs-radius); overflow: hidden; height: 100%; background: var(--cs-ink); color: #fff; }
.sector .wp-block-image { margin: 0; overflow: hidden; }
.sector .wp-block-image img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; transition: transform .8s var(--cs-ease); }
.sector:hover .wp-block-image img { transform: scale(1.05); }
.sector .sector-body { padding: 1.75rem; }
.sector p { color: #B9C0CF; }
.sector .is-style-checks li { color: #E4E7EC; }

/* ---------- Process steps ---------- */
.steps { counter-reset: step; }
.step { counter-increment: step; position: relative; padding-top: 3.6rem !important; }
.step::before { content: counter(step, decimal-leading-zero); position: absolute; top: 0; left: 0; font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 2.4rem; line-height: 1; color: var(--cs-ink); -webkit-text-stroke: 0; }
.step::after { content: ""; position: absolute; top: 1.15rem; left: 3.6rem; right: -1rem; height: 2px; background: repeating-linear-gradient(90deg, var(--cs-line) 0 6px, transparent 6px 12px); }
.wp-block-column:last-child > .step::after, .step.last::after { display: none; }
.has-ink-background-color .step::before { color: var(--cs-brand); }
.has-ink-background-color .step::after { background: repeating-linear-gradient(90deg, rgba(255,255,255,.15) 0 6px, transparent 6px 12px); }
@media (max-width: 781px) { .step::after { display: none; } }

/* ---------- Stats ---------- */
.stat strong { display: block; font-family: var(--wp--preset--font-family--display); font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.1; }
.stat span { color: var(--cs-slate); font-size: var(--wp--preset--font-size--sm); }
.has-ink-background-color .stat span { color: #9AA3B5; }

/* ---------- Product cards ---------- */
.product { position: relative; }
.product .tag { display: inline-block; font-size: var(--wp--preset--font-size--xs); font-weight: 600; padding: .25rem .65rem; border-radius: 999px; background: var(--wp--preset--color--brand-soft); color: #6B5E00; }
.modules { display: flex; flex-wrap: wrap; gap: .5rem; }
.modules span { font-size: var(--wp--preset--font-size--xs); padding: .35rem .75rem; border: 1px solid var(--cs-line); border-radius: 999px; background: #fff; }

/* ---------- FAQ ---------- */
.wp-block-details { border-bottom: 1px solid var(--cs-line); padding: 1.35rem 0; }
.wp-block-details summary { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: var(--wp--preset--font-size--lg); cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; flex: none; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; background: var(--wp--preset--color--mist); font-size: 1.3rem; font-weight: 500; transition: transform .25s var(--cs-ease), background .2s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); background: var(--cs-brand); }
.wp-block-details > :not(summary) { color: var(--cs-slate); margin-top: .8rem; }

/* ---------- CTA band ---------- */
.cta-band { border-radius: 24px; position: relative; overflow: hidden; isolation: isolate; }
.cta-band::after { content: ""; position: absolute; z-index: -1; right: -60px; bottom: -120px; width: 360px; height: 360px; border-radius: 50%; border: 56px solid rgba(11,15,25,.06); }

/* ---------- Page hero (inner pages) ---------- */
.page-hero { position: relative; overflow: hidden; isolation: isolate; }
.page-hero::after { content: ""; position: absolute; z-index: -1; width: 520px; height: 520px; right: -160px; top: -220px; border-radius: 50%; background: radial-gradient(circle, rgba(253,236,0,.2), transparent 62%); }
.breadcrumbs { font-size: var(--wp--preset--font-size--xs); color: #9AA3B5; }
.breadcrumbs a { color: inherit; text-decoration: none; }
.breadcrumbs a:hover { color: #fff; }

/* ---------- Images ---------- */
.is-style-framed img { border-radius: var(--cs-radius); box-shadow: var(--cs-shadow); }

/* ---------- Blog ---------- */
.post-card { height: 100%; border: 1px solid var(--cs-line); border-radius: var(--cs-radius); overflow: hidden; transition: transform .3s var(--cs-ease), box-shadow .3s; background: #fff; }
.post-card:hover { transform: translateY(-4px); box-shadow: var(--cs-shadow); }
.post-card .wp-block-post-featured-image { margin: 0; }
.post-card .wp-block-post-featured-image img { aspect-ratio: 16/9; object-fit: cover; }
.post-card .wp-block-post-title a { text-decoration: none; }
.prose > * + * { margin-top: 1.25em; }
.prose h2 { font-size: var(--wp--preset--font-size--2-xl); margin-top: 2em; }
.prose h3 { margin-top: 1.6em; }
.wp-block-post-terms a { text-decoration: none; font-size: var(--wp--preset--font-size--xs); font-weight: 600; text-transform: uppercase; letter-spacing: .1em; }

/* ---------- Contact form ---------- */
.cs-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.1rem; }
.cs-form .full { grid-column: 1 / -1; }
.cs-form label { display: block; font-size: var(--wp--preset--font-size--sm); font-weight: 600; margin-bottom: .4rem; }
.cs-form label .opt { font-weight: 400; color: var(--cs-slate); }
.cs-form input, .cs-form select, .cs-form textarea { width: 100%; font: inherit; font-size: 1rem; padding: .85rem 1rem; border: 1px solid #D0D5DD; border-radius: 10px; background: #fff; color: var(--cs-ink); transition: border-color .2s, box-shadow .2s; }
.cs-form select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5468' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right .9rem center / 18px no-repeat; padding-right: 2.5rem; }
.cs-form input:focus, .cs-form select:focus, .cs-form textarea:focus { outline: none; border-color: var(--cs-ink); box-shadow: 0 0 0 4px rgba(253,236,0,.55); }
.cs-form textarea { min-height: 140px; resize: vertical; }
.cs-form .consent { display: flex; gap: .7rem; align-items: flex-start; font-size: var(--wp--preset--font-size--xs); color: var(--cs-slate); font-weight: 400; }
.cs-form .consent input { width: 1.1rem; height: 1.1rem; margin-top: .15rem; flex: none; accent-color: var(--cs-ink); }
.cs-form button { justify-self: start; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1rem; border: 0; border-radius: 999px; padding: 1rem 1.8rem; background: var(--cs-brand); color: var(--cs-ink); cursor: pointer; transition: transform .2s var(--cs-ease), box-shadow .2s; }
.cs-form button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(253,236,0,.4); }
.cs-form .hp { position: absolute; left: -9999px; }
.cs-notice { grid-column: 1 / -1; padding: 1rem 1.2rem; border-radius: 12px; font-weight: 500; }
.cs-notice.ok { background: #ECFDF3; color: #05603A; border: 1px solid #A6F4C5; }
.cs-notice.err { background: #FEF3F2; color: #912018; border: 1px solid #FECDCA; }
@media (max-width: 640px) { .cs-form { grid-template-columns: 1fr; } }
.contact-line { display: flex; gap: 1rem; align-items: flex-start; }
.contact-line::before { margin-bottom: 0 !important; width: 44px !important; height: 44px !important; border-radius: 12px !important; background-size: 22px !important; flex: none; }
.contact-line p { margin: 0; }
.map-embed iframe { width: 100%; height: 320px; border: 0; border-radius: var(--cs-radius); display: block; filter: grayscale(.25); }

/* ---------- Footer ---------- */
.site-footer a { color: #C7CCD8; text-decoration: none; }
.site-footer a:hover { color: var(--cs-brand); }
.site-footer .footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; font-size: var(--wp--preset--font-size--sm); }
.site-footer h2 { font-size: var(--wp--preset--font-size--xs) !important; letter-spacing: .14em; text-transform: uppercase; color: #fff; font-weight: 700; }
.site-footer .fine { color: #8590A6; font-size: var(--wp--preset--font-size--xs); }

/* ---------- WhatsApp floating button ---------- */
.cs-wa { position: fixed; right: 20px; bottom: 20px; z-index: 90; width: 58px; height: 58px; border-radius: 50%; background: #25D366; display: grid; place-items: center; box-shadow: 0 10px 30px rgba(37,211,102,.45); transition: transform .25s var(--cs-ease); }
.cs-wa:hover { transform: scale(1.08); }
.cs-wa svg { width: 30px; height: 30px; fill: #fff; }
.cs-wa::after { content: attr(data-label); position: absolute; right: 70px; white-space: nowrap; background: var(--cs-ink); color: #fff; font-size: .85rem; padding: .45rem .8rem; border-radius: 8px; opacity: 0; transform: translateX(6px); transition: .25s; pointer-events: none; }
.cs-wa:hover::after { opacity: 1; transform: none; }

/* ---------- Reveal on scroll ---------- */
.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--cs-ease), transform .8s var(--cs-ease); }
.js .reveal.is-in { opacity: 1; transform: none; }
.js .reveal-group > * { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--cs-ease), transform .7s var(--cs-ease); }
.js .reveal-group.is-in > * { opacity: 1; transform: none; }
.js .reveal-group.is-in > *:nth-child(2) { transition-delay: .08s; }
.js .reveal-group.is-in > *:nth-child(3) { transition-delay: .16s; }
.js .reveal-group.is-in > *:nth-child(4) { transition-delay: .24s; }
.js .reveal-group.is-in > *:nth-child(5) { transition-delay: .32s; }
.js .reveal-group.is-in > *:nth-child(6) { transition-delay: .4s; }
@media (prefers-reduced-motion: reduce) { .js .reveal, .js .reveal-group > * { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } }
.editor-styles-wrapper .reveal, .editor-styles-wrapper .reveal-group > * { opacity: 1 !important; transform: none !important; }

/* Columns stack nicely on tablets */
@media (max-width: 1000px) and (min-width: 782px) {
	.wp-block-columns.is-cards.cols-3 { flex-wrap: wrap !important; }
	.wp-block-columns.is-cards.cols-3 > .wp-block-column { flex-basis: calc(50% - 1rem) !important; }
}

/* ---------- Fixes ---------- */
.is-style-eyebrow.has-text-align-center { display: flex; justify-content: center; }
[class*="cs-ic-"].is-layout-flex::before { margin-bottom: .35rem; }
.brand-name > span { white-space: nowrap; }
.site-footer h2 { margin-bottom: 1.1rem; }
.site-footer .brand + p { margin-top: 1.4rem; }
.site-footer .wp-block-column > .wp-block-html:last-child { margin-top: 1.2rem; }
.cs-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.cs-form > * { min-width: 0; }
@media (max-width: 640px) { .cs-form { grid-template-columns: minmax(0, 1fr); } }
.is-style-crosses { list-style: none; padding-left: 0 !important; }
.is-style-crosses li { position: relative; padding-left: 1.9rem; margin-bottom: .55rem; color: var(--cs-slate); }
.is-style-crosses li::before { content: ""; position: absolute; left: 0; top: .32em; width: 1.15rem; height: 1.15rem; border-radius: 50%;
	background: #FEE4E2 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B42318' stroke-width='3.2' stroke-linecap='round'%3E%3Cpath d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E") center / 55% no-repeat; }
.cs-form *, .cs-form *::before, .cs-form *::after { box-sizing: border-box; }

/* Sticky header: WordPress wraps the part in <header class="wp-block-template-part">, so stick the wrapper */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; } }
.wp-site-blocks > header.wp-block-template-part .site-header { position: static; }

/* Hamburger menu up to 1000px (core switches only at 600px) */
@media (min-width: 600px) and (max-width: 1000px) {
	.site-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.site-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
