/* Tailwind v4 site stylesheet. Single source of truth for design + custom CSS.
 *
 * At draft time, this is read inline into a <style type="text/tailwindcss"> block.
 * At publish time, the Tailwind CLI compiles this file (plus templates) into
 * dist/styles.css. Every directive works here: @theme, @layer, @utility,
 * @apply, @keyframes, plus plain CSS. Do NOT write <style> blocks in PHP
 * templates for theme CSS — put it here so it lands in the compiled bundle.
 *
 * functions.php also parses the @theme block at runtime to register the
 * palette + font sizes with Gutenberg via add_theme_support().
 *
 * Conventions:
 *   1. @theme: tokens only (--color-*, --font-*, --text-*, --radius-*). No
 *      selectors, no @apply. Tokens auto-generate matching utilities.
 *   2. Plain CSS: outside @theme, inside @layer. Prefer utility classes in
 *      templates first; only write CSS here when utilities cannot express it.
 *      @layer base { h1 { font-size: var(--text-2xl); } }
 *      @layer components { .card { padding: --spacing(6); } }
 *   3. New reusable utilities: prefer @utility over @apply.
 *      @utility content-auto { content-visibility: auto; }
 *   4. Custom web fonts: load via <link> in template-parts/head.php, then
 *      reference here via --font-*.
 *
 * Token naming (Tailwind v4):
 *   --color-{slug}        → bg-{slug}, text-{slug}, border-{slug}
 *   --color-{slug}-{NN}   → numeric shades (skipped in the Gutenberg palette)
 *   --font-{slug}         → font-{slug}
 *   --text-{slug}         → text-{slug}
 *   --radius-{slug}       → rounded-{slug}
 */

@theme {
	--color-primary: #c92532;
	--color-primary-50:  #fff1f2;
	--color-primary-100: #ffe4e6;
	--color-primary-500: #e74c5a;
	--color-primary-600: #c92532;
	--color-primary-700: #a91e2a;
	--color-primary-900: #63141b;

	--color-secondary: #475569;
	--color-secondary-50:  #f8fafc;
	--color-secondary-100: #f1f5f9;
	--color-secondary-200: #e2e8f0;
	--color-secondary-300: #cbd5e1;
	--color-secondary-500: #64748b;
	--color-secondary-600: #475569;
	--color-secondary-700: #334155;
	--color-secondary-900: #0f172a;

	--color-neutral: #171717;
	--color-background: #ffffff;

	--font-sans:  system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--font-serif: Georgia, "Times New Roman", serif;
	--font-mono:  ui-monospace, "SF Mono", Menlo, monospace;

	--text-sm:   0.875rem;
	--text-base: 1rem;
	--text-lg:   1.125rem;
	--text-xl:   1.25rem;
	--text-2xl:  1.5rem;
	--text-3xl:  1.875rem;
	--text-4xl:  2.25rem;
	--text-5xl:  3rem;
}

/* Element-level defaults. Reach for utility classes in templates first; put
 * a rule here only when the same styling needs to apply across every instance
 * of an element (e.g. body font features). Keep this layer small. */
@layer base {
	/* body { font-feature-settings: "ss01", "ss02"; } */
}

/* Reusable component classes. Use for compound patterns that recur and need
 * a name (e.g. .card, .hero-heading, .divider). Reference tokens via var();
 * @apply works but is finicky — prefer var() + utility classes in templates. */
@layer components {
	/* .hero-heading em { font-style: italic; color: var(--color-primary); } */
}

/* ALP service guides, distinct home photographs and client portal. */
/* Imported styles contain unlayered resets; component declarations must take precedence. */
@layer components {
  .alp-home-services,.alp-service-guide { max-width:1200px !important; margin:80px auto !important; padding:0 28px !important; color:#17212b !important; }
  .alp-section-intro { max-width:760px !important; margin-bottom:32px !important; }
  .alp-eyebrow { font-size:12px !important; font-weight:700 !important; letter-spacing:.14em !important; color:#c92532 !important; margin:0 0 16px !important; }
  .alp-section-intro h2,.alp-client-panel h2,.alp-service-guide h2 { font-size:clamp(30px,3.4vw,48px) !important; line-height:1.1 !important; font-weight:600 !important; letter-spacing:-.04em !important; margin:0 0 24px !important; }
  .alp-section-intro>p:last-child,.alp-service-guide>p { font-size:17px !important; line-height:1.7 !important; color:#4b5563 !important; }
  .alp-home-service-grid { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:24px !important; }
  .alp-home-service { display:flex !important; flex-direction:column !important; border:1px solid #e5e7eb !important; border-radius:20px !important; background:white !important; overflow:hidden !important; color:inherit !important; text-decoration:none !important; transition:box-shadow .2s,transform .2s !important; }
  .alp-home-service:hover { transform:translateY(-4px) !important; box-shadow:0 14px 30px #17212b14 !important; }
  .alp-home-service img { width:100% !important; height:auto !important; aspect-ratio:3/2 !important; object-fit:cover !important; display:block !important; }
  .alp-home-service>div { display:flex !important; flex-direction:column !important; flex:1 !important; padding:22px !important; }
  .alp-home-service h3 { font-size:21px !important; line-height:1.2 !important; letter-spacing:-.025em !important; margin:0 0 12px !important; font-weight:600 !important; }
  .alp-home-service p { color:#4b5563 !important; font-size:15px !important; line-height:1.6 !important; margin:0 0 22px !important; }
  .alp-home-service>div>span { display:flex !important; justify-content:space-between !important; align-items:center !important; margin-top:auto !important; font-size:14px !important; color:#c92532 !important; font-weight:600 !important; }
  .alp-trade-directory { margin-top:40px !important; padding:30px !important; border-radius:20px !important; background:#f5f5f7 !important; }
  .alp-trade-directory h3,.alp-guide-checklist h3,.alp-guide-faq h3,.alp-guide-related h3 { font-size:23px !important; font-weight:600 !important; line-height:1.3 !important; margin:0 0 12px !important; letter-spacing:-.025em !important; }
  .alp-trade-directory>p { font-size:15px !important; color:#4b5563 !important; margin:0 0 24px !important; }
  .alp-trade-groups { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; column-gap:30px !important; }
  .alp-trade-groups details { border-top:1px solid #d8dce1 !important; padding:16px 0 !important; }
  .alp-trade-groups summary,.alp-guide-faq summary { cursor:pointer !important; font-size:16px !important; line-height:1.5 !important; font-weight:600 !important; }
  .alp-trade-groups ul { list-style:none !important; margin:16px 0 0 !important; padding:0 !important; display:flex !important; flex-wrap:wrap !important; gap:10px 16px !important; }
  .alp-trade-groups a { font-size:14px !important; line-height:1.5 !important; text-decoration:underline !important; text-underline-offset:4px !important; }
  .alp-home-area-note { font-size:15px !important; line-height:1.8 !important; margin-top:28px !important; color:#4b5563 !important; }
  .alp-home-area-note a { text-decoration:underline !important; text-underline-offset:3px !important; }
  .alp-client-panel { max-width:1200px !important; margin:80px auto !important; padding:48px !important; display:grid !important; grid-template-columns:1.3fr 1fr !important; gap:64px !important; border-radius:24px !important; background:#17212b !important; color:white !important; }
  .alp-client-panel .alp-eyebrow { color:#ff8d95 !important; }
  .alp-client-panel p { line-height:1.7 !important; color:#dce1e7 !important; font-size:16px !important; margin-bottom:24px !important; }
  .alp-client-cta,.alp-guide-cta { display:inline-flex !important; justify-content:center !important; align-items:center !important; gap:20px !important; background:#c92532 !important; color:white !important; border-radius:999px !important; padding:15px 24px !important; font-size:15px !important; font-weight:600 !important; text-decoration:none !important; }
  .alp-client-new { border-left:1px solid #52606d !important; padding-left:40px !important; align-self:center !important; }
  .alp-client-new h3 { font-size:26px !important; font-weight:500 !important; line-height:1.3 !important; margin-bottom:20px !important; }
  .alp-client-new>a { display:block !important; color:white !important; text-decoration:underline !important; text-underline-offset:5px !important; margin-top:18px !important; font-size:15px !important; }
  .alp-client-mobile { display:inline-flex !important; align-items:center !important; gap:6px !important; border:1px solid #d4d7dc !important; border-radius:999px !important; padding:8px 12px !important; color:#17212b !important; background:white !important; font-size:12px !important; font-weight:600 !important; white-space:nowrap !important; margin-left:auto !important; }
  .alp-client-menu { display:inline-flex !important; border-radius:999px !important; color:white !important; background:#17212b !important; padding:12px 20px !important; font-size:16px !important; margin-bottom:20px !important; }
  .alp-client-footer { display:inline-flex !important; color:white !important; background:#c92532 !important; border-radius:999px !important; padding:10px 18px !important; font-size:14px !important; text-decoration:none !important; }
  .alp-service-guide { max-width:1100px !important; }
  .alp-guide-checklist { border-left:3px solid #c92532 !important; padding:22px 26px !important; background:#f5f5f7 !important; border-radius:0 16px 16px 0 !important; margin:28px 0 !important; }
  .alp-guide-checklist ul { list-style:disc !important; margin:16px 0 0 !important; padding-left:20px !important; font-size:16px !important; line-height:1.7 !important; }
  .alp-guide-faq { margin:32px 0 !important; }
  .alp-guide-faq details { border-bottom:1px solid #e5e7eb !important; padding:20px 0 !important; }
  .alp-guide-faq p { color:#4b5563 !important; line-height:1.8 !important; font-size:16px !important; margin:18px 0 0 !important; max-width:900px !important; }
  .alp-guide-related { margin:32px 0 !important; }
  .alp-guide-related>div { display:flex !important; gap:12px !important; flex-wrap:wrap !important; }
  .alp-guide-related a { border:1px solid #d4d7dc !important; border-radius:999px !important; padding:10px 16px !important; font-size:14px !important; text-decoration:none !important; }
  .alp-video-wrap video { width:100% !important; height:100% !important; inset:0 !important; object-fit:cover !important; }
  .alp-video-wrap [data-alp-video-control] { width:auto !important; min-width:42px !important; padding:10px 14px !important; gap:8px !important; background:#ffffffeb !important; border:1px solid #ffffff55 !important; color:#17212b !important; }
  .alp-video-label { font-size:12px !important; white-space:nowrap !important; }
  .alp-copy a:focus-visible,.alp-copy summary:focus-visible { outline:3px solid #c92532 !important; outline-offset:5px !important; }
  .admin-bar .alp-desktop-header { top:32px !important; }
  .admin-bar nav[aria-label="Navigation mobile"] { top:32px !important; }
  .admin-bar #alp-mobile-menu { top:32px !important; }
  @media(max-width:1023px) {
    .alp-home-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
    .alp-client-panel { margin:60px 24px !important; padding:36px !important; gap:36px !important; }
    .alp-client-new { padding-left:28px !important; }
  }
  @media(max-width:782px) {
    .admin-bar nav[aria-label="Navigation mobile"] { top:46px !important; }
  .admin-bar #alp-mobile-menu { top:46px !important; }
    .alp-client-panel { grid-template-columns:1fr !important; padding:30px !important; gap:28px !important; }
    .alp-client-new { border-left:0 !important; border-top:1px solid #52606d !important; padding:26px 0 0 !important; }
  }
  @media(max-width:640px) {
    .alp-home-services,.alp-service-guide { margin:48px auto !important; padding:0 18px !important; }
    .alp-home-service-grid { grid-template-columns:1fr !important; gap:20px !important; }
    .alp-home-service>div { padding:20px !important; }
    .alp-trade-directory { padding:22px !important; }
    .alp-trade-groups { grid-template-columns:1fr !important; }
    .alp-client-panel { margin:48px 18px !important; padding:28px 22px !important; }
    .alp-client-panel h2 { font-size:32px !important; }
    .alp-client-mobile { padding:8px 10px !important; gap:4px !important; font-size:11px !important; }
    .alp-guide-checklist { padding:20px !important; }
    .alp-video-wrap [data-alp-video-control] { margin-right:-16px !important; }
  }
  @media(prefers-reduced-motion:reduce) { .alp-home-service { transition:none !important; } .alp-home-service:hover { transform:none !important; } }
}



/* ALP trade redesign. Merged into the single theme.css source. */
@layer components {
  .alp-trade-body #alp-main { padding-top:49px !important; }
  .alp-trade-body .alp-footer { margin-top:0 !important; }
  .alp-trade-page { --td-ink:#202421; --td-muted:#555d56; --td-red:#b71e2b; --td-paper:#f5f4ef; color:var(--td-ink) !important; background:#fff !important; width:100% !important; margin:0 !important; font-size:17px !important; line-height:1.7 !important; }
  .alp-trade-page *, .alp-trade-page *::before, .alp-trade-page *::after { box-sizing:border-box !important; }
  .alp-trade-page p { margin:0 0 20px !important; line-height:1.7 !important; color:var(--td-muted) !important; }
  .alp-trade-page h1,.alp-trade-page h2,.alp-trade-page h3 { color:var(--td-ink) !important; font-weight:700 !important; text-wrap:balance !important; }
  .alp-trade-page h2 { font-size:clamp(30px,3.2vw,47px) !important; line-height:1.15 !important; letter-spacing:-1.4px !important; margin:0 0 24px !important; }
  .alp-trade-page h3 { font-size:21px !important; line-height:1.35 !important; letter-spacing:-.4px !important; margin:0 0 12px !important; }
  .alp-trade-page a { text-decoration:none !important; color:inherit !important; }
  .alp-trade-page a:focus-visible,.alp-trade-page summary:focus-visible { outline:3px solid #b71e2b !important; outline-offset:5px !important; }
  .alp-trade-page figure { margin:0 !important; }
  .alp-trade-page figcaption { color:var(--td-muted) !important; font-size:12px !important; line-height:1.55 !important; padding:12px 0 0 !important; }
  .alp-trade-page .alp-td-photo { display:block !important; width:100% !important; height:100% !important; object-fit:cover !important; object-position:center !important; border-radius:0 !important; }
  .alp-trade-page .alp-td-kicker { color:var(--td-red) !important; font-size:11px !important; font-weight:700 !important; letter-spacing:2.4px !important; line-height:1.5 !important; text-transform:uppercase !important; margin:0 0 18px !important; }
  .alp-trade-page .alp-td-hero { display:grid !important; grid-template-columns:1fr 1.05fr !important; min-height:610px !important; background:var(--td-paper) !important; }
  .alp-trade-page .alp-td-hero-copy { padding:48px max(32px,calc((100vw - 1230px)/2)) 48px !important; padding-right:48px !important; display:flex !important; flex-direction:column !important; justify-content:center !important; min-width:0 !important; }
  .alp-trade-page .alp-td-breadcrumb,.alp-trade-page .alp-breadcrumb { display:flex !important; flex-wrap:wrap !important; gap:7px !important; color:#666d65 !important; font-size:11px !important; line-height:1.7 !important; margin:0 0 37px !important; max-width:100% !important; }
  .alp-trade-page .alp-td-breadcrumb a:hover,.alp-trade-page .alp-breadcrumb a:hover { color:var(--td-red) !important; text-decoration:underline !important; }
  .alp-trade-page h1 { font-size:clamp(42px,4.65vw,70px) !important; line-height:1.04 !important; letter-spacing:-2.3px !important; margin:0 0 28px !important; max-width:650px !important; }
  .alp-trade-page h1 span { display:block !important; font-size:.53em !important; line-height:1.28 !important; letter-spacing:-.5px !important; margin-top:18px !important; color:var(--td-red) !important; }
  .alp-trade-page .alp-td-lead { font-size:18px !important; line-height:1.7 !important; max-width:530px !important; }
  .alp-trade-page .alp-td-actions { display:flex !important; flex-wrap:wrap !important; gap:22px !important; align-items:center !important; margin:12px 0 20px !important; }
  .alp-trade-page .alp-td-button { display:inline-flex !important; align-items:center !important; justify-content:space-between !important; gap:25px !important; padding:17px 24px !important; background:var(--td-red) !important; color:#fff !important; font-size:14px !important; font-weight:600 !important; line-height:1.5 !important; min-height:55px !important; transition:background .2s !important; }
  .alp-trade-page .alp-td-button:hover { background:#8f1520 !important; }
  .alp-trade-page .alp-td-button span { font-size:23px !important; line-height:1 !important; }
  .alp-trade-page .alp-td-phone { font-size:14px !important; font-weight:600 !important; border-bottom:1px solid #abb0a7 !important; }
  .alp-trade-page .alp-td-hero-note { font-size:12px !important; margin-bottom:0 !important; }
  .alp-trade-page .alp-td-hero-figure { position:relative !important; min-height:580px !important; overflow:hidden !important; background:#283129 !important; }
  .alp-trade-page .alp-td-hero-figure .alp-td-photo { position:absolute !important; inset:0 !important; }
  .alp-trade-page .alp-td-hero-figure::after { content:"" !important; position:absolute !important; inset:60% 0 0 !important; background:linear-gradient(transparent,rgba(15,25,18,.84)) !important; pointer-events:none !important; }
  .alp-trade-page .alp-td-hero-figure figcaption { position:absolute !important; bottom:32px !important; left:32px !important; right:32px !important; color:#fff !important; z-index:1 !important; padding:0 !important; font-size:15px !important; }
  .alp-trade-page .alp-td-hero-figure figcaption span { display:block !important; font-size:10px !important; letter-spacing:2px !important; margin-bottom:6px !important; }
  .alp-trade-page .alp-td-jumps { display:flex !important; align-items:center !important; justify-content:center !important; flex-wrap:wrap !important; gap:14px 32px !important; padding:20px 24px !important; border-bottom:1px solid #e4e6df !important; font-size:12px !important; line-height:1.6 !important; }
  .alp-trade-page .alp-td-jumps>span { color:#6a7267 !important; text-transform:uppercase !important; letter-spacing:1.4px !important; font-size:10px !important; }
  .alp-trade-page .alp-td-jumps a { padding:6px 0 !important; }
  .alp-trade-page .alp-td-jumps a:hover { color:var(--td-red) !important; }
  .alp-trade-page .alp-td-metrics { display:grid !important; grid-template-columns:1.4fr 1fr 1fr !important; background:#202721 !important; color:#fff !important; padding:38px max(28px,calc((100vw - 1230px)/2)) !important; gap:34px !important; }
  .alp-trade-page .alp-td-metrics>div { padding:0 0 0 30px !important; border-left:1px solid #526054 !important; min-width:0 !important; }
  .alp-trade-page .alp-td-metrics>div:first-child { padding-left:0 !important; border:0 !important; }
  .alp-trade-page .alp-td-number { font-size:clamp(52px,5.5vw,78px) !important; line-height:1 !important; letter-spacing:-3px !important; font-weight:600 !important; color:#fff !important; margin:0 0 14px !important; white-space:nowrap !important; }
  .alp-trade-page .alp-td-number span { color:#e76b62 !important; font-size:.62em !important; vertical-align:top !important; padding-left:7px !important; }
  .alp-trade-page .alp-td-metrics h2 { font-size:17px !important; line-height:1.4 !important; letter-spacing:0 !important; margin:0 0 7px !important; color:#fff !important; }
  .alp-trade-page .alp-td-metrics p:not(.alp-td-number) { color:#c8d1c8 !important; font-size:12px !important; line-height:1.6 !important; margin:0 !important; }
  .alp-trade-page .alp-td-section { max-width:1230px !important; padding:82px 0 !important; margin:0 auto !important; scroll-margin-top:125px !important; }
  .alp-trade-page .alp-td-section-heading { display:grid !important; grid-template-columns:1.2fr 1fr !important; align-items:end !important; gap:50px !important; margin-bottom:35px !important; }
  .alp-trade-page .alp-td-section-heading h2 { margin-bottom:0 !important; }
  .alp-trade-page .alp-td-section-heading>p { margin:0 !important; max-width:480px !important; }
  .alp-trade-page .alp-td-offers { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:20px !important; }
  .alp-trade-page .alp-td-offers article { border-top:2px solid #26362b !important; background:var(--td-paper) !important; padding:28px 24px 32px !important; min-height:172px !important; }
  .alp-trade-page .alp-td-index { display:block !important; color:var(--td-red) !important; font-size:12px !important; letter-spacing:1px !important; font-weight:600 !important; margin-bottom:26px !important; }
  .alp-trade-page .alp-td-offers h3 { font-size:21px !important; margin:0 !important; }
  .alp-trade-page .alp-td-preparation,.alp-trade-page .alp-td-budget { display:grid !important; grid-template-columns:1fr 1fr !important; gap:70px !important; align-items:center !important; border-top:1px solid #e6e8e1 !important; }
  .alp-trade-page .alp-td-preparation figure .alp-td-photo { height:520px !important; }
  .alp-trade-page .alp-td-preparation h3 { font-size:17px !important; margin:28px 0 14px !important; }
  .alp-trade-page .alp-td-checklist { list-style:none !important; padding:0 !important; margin:0 !important; }
  .alp-trade-page .alp-td-checklist li { border-top:1px solid #e0e4db !important; padding:11px 0 11px 28px !important; position:relative !important; font-size:15px !important; color:#374338 !important; }
  .alp-trade-page .alp-td-checklist li::before { content:"✓" !important; color:var(--td-red) !important; position:absolute !important; left:0 !important; font-size:15px !important; font-weight:700 !important; }
  .alp-trade-page .alp-td-expertise { border-top:1px solid #e0e4db !important; }
  .alp-trade-page .alp-td-expertise>div { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:35px !important; margin-top:35px !important; }
  .alp-trade-page .alp-td-expertise h3 { font-size:23px !important; }
  .alp-trade-page .alp-td-method { padding:76px max(28px,calc((100vw - 1230px)/2)) !important; background:var(--td-paper) !important; scroll-margin-top:125px !important; }
  .alp-trade-page .alp-td-method ol { list-style:none !important; padding:0 !important; margin:44px 0 0 !important; display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:35px !important; }
  .alp-trade-page .alp-td-method li { border-top:1px solid #9da79a !important; padding-top:22px !important; }
  .alp-trade-page .alp-td-method li>span { display:block !important; font-size:12px !important; letter-spacing:1px !important; color:var(--td-red) !important; margin-bottom:28px !important; }
  .alp-trade-page .alp-td-method h3 { font-size:20px !important; }
  .alp-trade-page .alp-td-method li p { font-size:15px !important; margin:0 !important; }
  .alp-trade-page .alp-td-budget { border:0 !important; }
  .alp-trade-page .alp-td-budget figure .alp-td-photo { height:430px !important; }
  .alp-trade-page .alp-td-text-link { display:inline-flex !important; gap:20px !important; align-items:center !important; color:var(--td-red) !important; font-weight:600 !important; font-size:14px !important; border-bottom:1px solid currentColor !important; padding:6px 0 !important; }
  .alp-trade-page .alp-td-faq { display:grid !important; grid-template-columns:.8fr 1.2fr !important; gap:80px !important; border-top:1px solid #e2e6dd !important; }
  .alp-trade-page .alp-td-faq details { border-top:1px solid #ccd2c6 !important; padding:20px 0 !important; }
  .alp-trade-page .alp-td-faq details:last-child { border-bottom:1px solid #ccd2c6 !important; }
  .alp-trade-page .alp-td-faq summary { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:20px !important; font-size:17px !important; font-weight:600 !important; line-height:1.5 !important; cursor:pointer !important; list-style:none !important; }
  .alp-trade-page .alp-td-faq summary::-webkit-details-marker { display:none !important; }
  .alp-trade-page .alp-td-faq summary span { color:var(--td-red) !important; font-size:24px !important; flex-shrink:0 !important; transition:transform .2s !important; }
  .alp-trade-page .alp-td-faq details[open] summary span { transform:rotate(45deg) !important; }
  .alp-trade-page .alp-td-faq details p { font-size:15px !important; margin:16px 28px 0 0 !important; }
  .alp-trade-page .alp-td-related { border-top:1px solid #e2e6dd !important; }
  .alp-trade-page .alp-td-related>.alp-td-section-heading { align-items:center !important; }
  .alp-trade-page .alp-td-related>.alp-td-section-heading>a { justify-self:end !important; }
  .alp-trade-page .alp-td-related>div:last-child { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:24px !important; }
  .alp-trade-page .alp-td-related>div:last-child>a { position:relative !important; background:var(--td-paper) !important; border:1px solid #e0e4da !important; padding:30px 28px 60px !important; transition:border-color .2s !important; }
  .alp-trade-page .alp-td-related>div:last-child>a:hover { border-color:var(--td-red) !important; }
  .alp-trade-page .alp-td-related h3 { font-size:23px !important; }
  .alp-trade-page .alp-td-related>div:last-child>a p { margin:0 !important; font-size:15px !important; }
  .alp-trade-page .alp-td-related>div:last-child>a>span { position:absolute !important; bottom:20px !important; right:25px !important; color:var(--td-red) !important; font-size:25px !important; }
  .alp-trade-page .alp-td-areas { display:grid !important; grid-template-columns:1fr 1fr !important; gap:70px !important; border-top:1px solid #e2e6dd !important; }
  .alp-trade-page .alp-td-area-links { display:grid !important; grid-template-columns:1fr 1fr !important; gap:26px !important; }
  .alp-trade-page .alp-td-area-name { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:10px !important; font-size:16px !important; font-weight:600 !important; border-bottom:1px solid #bdc6b9 !important; padding:0 0 10px !important; }
  .alp-trade-page .alp-td-area-name span:last-child { color:var(--td-red) !important; font-size:12px !important; }
  .alp-trade-page .alp-td-area-links>div>div { display:flex !important; gap:4px 10px !important; flex-wrap:wrap !important; font-size:12px !important; margin-top:9px !important; }
  .alp-trade-page .alp-td-area-links>div>div a:hover { color:var(--td-red) !important; text-decoration:underline !important; }
  .alp-trade-page .alp-td-contact { display:grid !important; grid-template-columns:1.2fr 1fr !important; align-items:center !important; gap:65px !important; padding:72px max(28px,calc((100vw - 1230px)/2)) !important; background:#202721 !important; }
  .alp-trade-page .alp-td-contact h2 { color:#fff !important; }
  .alp-trade-page .alp-td-contact p { color:#c9d1c8 !important; max-width:500px !important; margin-bottom:0 !important; }
  .alp-trade-page .alp-td-contact .alp-td-kicker { color:#f18b82 !important; margin-bottom:18px !important; }
  .alp-trade-page .alp-td-contact>div:last-child { display:flex !important; flex-direction:column !important; align-items:flex-start !important; gap:18px !important; justify-self:end !important; }
  .alp-trade-page .alp-td-client { color:#d3dbcf !important; font-size:12px !important; padding:5px 0 !important; }
  .alp-footer .alp-holding { display:flex !important; flex-wrap:wrap !important; align-items:center !important; justify-content:space-between !important; gap:30px !important; padding:36px 0 !important; margin-top:25px !important; border-top:1px solid #586058 !important; border-bottom:1px solid #586058 !important; }
  .alp-footer .alp-holding>div>p { font-size:9px !important; letter-spacing:2px !important; color:#aeb8ad !important; margin:0 0 12px !important; }
  .alp-footer .alp-holding-name { font-size:44px !important; font-weight:700 !important; line-height:1.1 !important; letter-spacing:1px !important; color:#fff !important; }
  .alp-footer .alp-holding-name span { font-size:19px !important; font-weight:400 !important; letter-spacing:1px !important; margin-left:8px !important; color:#ec8b83 !important; }
  .alp-footer .alp-holding>p { font-size:17px !important; color:#d7ded4 !important; line-height:1.55 !important; margin:0 !important; }
  @media(max-width:1300px) {
    .alp-trade-page .alp-td-section { margin-left:32px !important; margin-right:32px !important; }
    .alp-trade-page .alp-td-hero-copy { padding-left:32px !important; }
  }
  @media(max-width:1023px) { .alp-trade-body #alp-main { padding-top:74px !important; } }
  @media(max-width:1000px) {
    .alp-trade-page .alp-td-hero-copy { padding-right:30px !important; }
    .alp-trade-page h1 { font-size:46px !important; }
    .alp-trade-page .alp-td-preparation,.alp-trade-page .alp-td-budget,.alp-trade-page .alp-td-areas,.alp-trade-page .alp-td-faq { gap:35px !important; }
    .alp-trade-page .alp-td-offers { grid-template-columns:1fr 1fr !important; }
    .alp-trade-page .alp-td-method ol { grid-template-columns:1fr 1fr !important; }
  }
  @media(max-width:850px) {
    .alp-trade-page .alp-td-hero { grid-template-columns:1fr !important; }
    .alp-trade-page .alp-td-hero-copy { padding:40px 28px !important; }
    .alp-trade-page h1 { font-size:clamp(42px,7vw,62px) !important; max-width:700px !important; }
    .alp-trade-page .alp-td-lead { max-width:650px !important; }
    .alp-trade-page .alp-td-hero-figure { min-height:400px !important; }
    .alp-trade-page .alp-td-breadcrumb,.alp-trade-page .alp-breadcrumb { margin-bottom:28px !important; }
    .alp-trade-page .alp-td-metrics { gap:22px !important; padding:32px 28px !important; grid-template-columns:1.3fr 1fr 1fr !important; }
    .alp-trade-page .alp-td-metrics>div { padding-left:22px !important; }
    .alp-trade-page .alp-td-number { font-size:50px !important; letter-spacing:-2px !important; }
    .alp-trade-page .alp-td-metrics h2 { font-size:14px !important; }
    .alp-trade-page .alp-td-section { padding:60px 0 !important; margin-left:28px !important; margin-right:28px !important; }
    .alp-trade-page .alp-td-section-heading { gap:30px !important; }
    .alp-trade-page .alp-td-preparation,.alp-trade-page .alp-td-budget,.alp-trade-page .alp-td-faq,.alp-trade-page .alp-td-areas { grid-template-columns:1fr !important; gap:35px !important; }
    .alp-trade-page .alp-td-preparation figure .alp-td-photo,.alp-trade-page .alp-td-budget figure .alp-td-photo { height:420px !important; }
    .alp-trade-page .alp-td-preparation figure { order:2 !important; }
    .alp-trade-page .alp-td-expertise>div { grid-template-columns:1fr !important; gap:20px !important; }
    .alp-trade-page .alp-td-contact { gap:30px !important; padding:56px 28px !important; grid-template-columns:1fr !important; }
    .alp-trade-page .alp-td-contact>div:last-child { justify-self:start !important; }
  }
  @media(max-width:600px) {
    .alp-trade-page { font-size:16px !important; }
    .alp-trade-page .alp-td-hero-copy { padding:30px 20px 36px !important; }
    .alp-trade-page h1 { font-size:42px !important; letter-spacing:-1.5px !important; }
    .alp-trade-page h2 { font-size:32px !important; letter-spacing:-1px !important; }
    .alp-trade-page .alp-td-lead { font-size:16px !important; }
    .alp-trade-page .alp-td-kicker { font-size:10px !important; letter-spacing:1.8px !important; }
    .alp-trade-page .alp-td-actions { align-items:flex-start !important; flex-direction:column !important; gap:18px !important; }
    .alp-trade-page .alp-td-hero-figure { min-height:330px !important; }
    .alp-trade-page .alp-td-hero-figure figcaption { bottom:22px !important; left:22px !important; right:22px !important; }
    .alp-trade-page .alp-td-jumps { justify-content:flex-start !important; gap:6px 22px !important; padding:16px 20px !important; }
    .alp-trade-page .alp-td-jumps>span { display:none !important; }
    .alp-trade-page .alp-td-metrics { grid-template-columns:1fr 1fr !important; gap:28px 22px !important; padding:35px 20px !important; }
    .alp-trade-page .alp-td-metrics>div:first-child { grid-column:1 / -1 !important; border-bottom:1px solid #526054 !important; padding-bottom:26px !important; }
    .alp-trade-page .alp-td-metrics>div:nth-child(2) { border-left:0 !important; padding-left:0 !important; }
    .alp-trade-page .alp-td-metrics>div:first-child .alp-td-number { font-size:74px !important; }
    .alp-trade-page .alp-td-number { font-size:48px !important; margin-bottom:10px !important; }
    .alp-trade-page .alp-td-metrics>div { padding-left:20px !important; }
    .alp-trade-page .alp-td-section { margin-left:20px !important; margin-right:20px !important; padding:46px 0 !important; scroll-margin-top:100px !important; }
    .alp-trade-page .alp-td-section-heading { grid-template-columns:1fr !important; gap:20px !important; margin-bottom:26px !important; }
    .alp-trade-page .alp-td-offers { gap:12px !important; }
    .alp-trade-page .alp-td-offers article { padding:20px 16px 24px !important; min-height:145px !important; }
    .alp-trade-page .alp-td-offers h3 { font-size:17px !important; }
    .alp-trade-page .alp-td-index { margin-bottom:20px !important; }
    .alp-trade-page .alp-td-preparation figure .alp-td-photo,.alp-trade-page .alp-td-budget figure .alp-td-photo { height:320px !important; }
    .alp-trade-page .alp-td-method { padding:46px 20px !important; scroll-margin-top:100px !important; }
    .alp-trade-page .alp-td-method ol { grid-template-columns:1fr !important; gap:27px !important; margin-top:30px !important; }
    .alp-trade-page .alp-td-method li>span { margin-bottom:13px !important; }
    .alp-trade-page .alp-td-faq summary { font-size:16px !important; gap:16px !important; }
    .alp-trade-page .alp-td-related>.alp-td-section-heading>a { justify-self:start !important; }
    .alp-trade-page .alp-td-related>div:last-child { grid-template-columns:1fr !important; gap:14px !important; }
    .alp-trade-page .alp-td-related>div:last-child>a { padding:25px 22px 55px !important; }
    .alp-trade-page .alp-td-area-links { gap:22px 20px !important; }
    .alp-trade-page .alp-td-area-name { font-size:14px !important; }
    .alp-trade-page .alp-td-contact { padding:46px 20px !important; }
    .alp-trade-page .alp-td-contact .alp-td-button { gap:15px !important; font-size:13px !important; padding:16px 20px !important; }
    .alp-footer .alp-holding-name { font-size:36px !important; }
    .alp-footer .alp-holding-name span { font-size:17px !important; margin-left:5px !important; }
    .alp-footer .alp-holding>p { font-size:16px !important; }
  }
  @media(prefers-reduced-motion:reduce) { .alp-trade-page a,.alp-trade-page summary span { transition:none !important; } }
}

/* Official group identity and helpful, accessible content. Existing counter styles stay intact. */
@layer components {
  .alp-knowledge { max-width:1230px !important; margin:76px auto !important; padding:0 !important; color:#202421 !important; scroll-margin-top:135px !important; }
  .alp-knowledge * { box-sizing:border-box !important; }
  .alp-knowledge h2 { font-size:clamp(34px,4vw,52px) !important; line-height:1.08 !important; letter-spacing:-1.8px !important; font-weight:650 !important; margin:0 0 23px !important; }
  .alp-knowledge h3 { font-size:24px !important; line-height:1.2 !important; letter-spacing:-.7px !important; font-weight:650 !important; margin:0 0 18px !important; }
  .alp-knowledge p { font-size:16px !important; line-height:1.75 !important; margin:0 0 20px !important; color:#515951 !important; }
  .alp-knowledge .alp-knowledge-kicker { font-size:10px !important; letter-spacing:2.4px !important; color:#a61927 !important; font-weight:700 !important; margin:0 0 20px !important; }
  .alp-knowledge-intro { display:grid !important; grid-template-columns:1.15fr 1fr !important; gap:70px !important; align-items:end !important; margin-bottom:35px !important; }
  .alp-knowledge-intro h2 { margin-bottom:0 !important; }
  .alp-knowledge-intro>p { max-width:480px !important; margin:0 !important; }
  .alp-advice-grid { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:20px !important; }
  .alp-advice-grid article { padding:30px 28px !important; background:#f5f4ef !important; border:1px solid #e3e3da !important; }
  .alp-advice-index { display:block !important; color:#a61927 !important; font-size:13px !important; font-weight:650 !important; margin:0 0 28px !important; }
  .alp-advice-grid details { border-top:1px solid #d0d5ca !important; padding:15px 0 !important; margin-top:20px !important; }
  .alp-advice-grid summary { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:18px !important; list-style:none !important; cursor:pointer !important; font-size:14px !important; font-weight:600 !important; }
  .alp-advice-grid summary::-webkit-details-marker,.alp-home-faq summary::-webkit-details-marker { display:none !important; }
  .alp-advice-grid summary>span,.alp-home-faq summary>span { color:#a61927 !important; font-size:24px !important; flex-shrink:0 !important; transition:transform .2s !important; }
  .alp-advice-grid details[open] summary>span,.alp-home-faq details[open] summary>span { transform:rotate(45deg) !important; }
  .alp-advice-grid details p { margin:18px 0 5px !important; font-size:15px !important; }
  .alp-advice-grid article>a,.alp-knowledge-link { display:inline-flex !important; align-items:center !important; justify-content:space-between !important; gap:15px !important; color:#a61927 !important; font-size:14px !important; font-weight:650 !important; text-decoration:none !important; line-height:1.5 !important; }
  .alp-advice-grid article>a:hover,.alp-knowledge-link:hover { text-decoration:underline !important; text-underline-offset:4px !important; }
  .alp-home-faq { display:grid !important; grid-template-columns:.8fr 1.2fr !important; gap:80px !important; border-top:1px solid #d4d8ce !important; padding-top:76px !important; }
  .alp-home-faq details { padding:22px 0 !important; border-top:1px solid #cdd4c7 !important; }
  .alp-home-faq details:last-child { border-bottom:1px solid #cdd4c7 !important; }
  .alp-home-faq summary { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:25px !important; list-style:none !important; cursor:pointer !important; font-size:17px !important; line-height:1.5 !important; font-weight:600 !important; }
  .alp-home-faq details p { font-size:15px !important; margin:16px 26px 0 0 !important; }
  .alp-review-grid { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:20px !important; }
  .alp-review-card { margin:0 !important; padding:28px !important; background:#f5f4ef !important; border-top:3px solid #b59a62 !important; display:flex !important; flex-direction:column !important; align-items:flex-start !important; }
  .alp-review-stars { display:block !important; width:110px !important; height:22px !important; color:#99712d !important; margin:0 0 24px !important; }
  .alp-review-card blockquote { margin:0 0 24px !important; padding:0 !important; border:0 !important; font-style:normal !important; flex:1 !important; }
  .alp-review-card blockquote p { margin:0 !important; color:#2e342e !important; }
  .alp-review-card figcaption { display:flex !important; flex-direction:column !important; gap:7px !important; margin:0 0 22px !important; }
  .alp-review-card figcaption strong { font-size:14px !important; font-weight:650 !important; }
  .alp-review-card figcaption span { font-size:12px !important; color:#626962 !important; }
  .alp-review-card>a,.alp-review-actions>a { color:#991925 !important; font-size:13px !important; text-decoration:none !important; font-weight:600 !important; }
  .alp-review-card>a:hover,.alp-review-actions>a:hover { text-decoration:underline !important; text-underline-offset:4px !important; }
  .alp-review-actions { display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:18px 30px !important; padding-top:24px !important; }
  .alp-td-practical { border-top:1px solid #ccd2c6 !important; margin-top:30px !important; padding-top:28px !important; }
  .alp-trade-page .alp-td-practical h3 { font-size:20px !important; margin:0 0 18px !important; }
  .alp-td-practical ul { margin:0 0 24px !important; padding-left:18px !important; list-style:disc !important; }
  .alp-td-practical li { font-size:15px !important; line-height:1.7 !important; margin-bottom:13px !important; padding-left:3px !important; color:#4d554d !important; }
  .alp-group { scroll-margin-top:130px !important; }
  .alp-footer .alp-holding { border-bottom:0 !important; margin-bottom:12px !important; padding-bottom:20px !important; }
  .alp-footer .alp-holding-logo { display:block !important; width:320px !important; height:auto !important; max-width:100% !important; object-fit:contain !important; background:#fff !important; padding:18px !important; border-radius:8px !important; filter:none !important; }
  .alp-footer .alp-holding>p { max-width:330px !important; font-size:21px !important; line-height:1.5 !important; }
  .alp-group-heading { display:flex !important; flex-wrap:wrap !important; justify-content:space-between !important; align-items:baseline !important; gap:15px 30px !important; margin:0 0 25px !important; }
  .alp-footer .alp-group-heading h2 { font-size:24px !important; margin:0 !important; color:#fff !important; line-height:1.35 !important; }
  .alp-footer .alp-group-heading p { color:#bac7d8 !important; font-size:13px !important; margin:0 !important; }
  .alp-group-sites { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:13px !important; }
  .alp-footer .alp-group-sites>a { display:flex !important; flex-direction:column !important; gap:11px !important; padding:22px !important; border:1px solid #3e5068 !important; background:#172c48 !important; border-radius:8px !important; text-decoration:none !important; transition:background .18s,border-color .18s !important; }
  .alp-footer .alp-group-sites>a:hover { background:#213a5b !important; border-color:#a8986f !important; }
  .alp-group-site-name { display:flex !important; justify-content:space-between !important; align-items:start !important; gap:12px !important; font-size:16px !important; font-weight:600 !important; line-height:1.5 !important; color:#fff !important; }
  .alp-group-site-name>span { color:#d7bb83 !important; font-weight:400 !important; }
  .alp-group-site-purpose { font-size:12px !important; line-height:1.5 !important; color:#c8d1df !important; }
  .alp-group-domain { font-size:11px !important; color:#b8c7da !important; overflow-wrap:anywhere !important; line-height:1.5 !important; margin-top:auto !important; }
  .alp-group-upcoming { margin-top:32px !important; }
  .alp-footer .alp-group-upcoming h3 { font-size:15px !important; color:#f6f4ee !important; margin:0 0 6px !important; }
  .alp-footer .alp-group-upcoming>p { font-size:12px !important; color:#b9c7d8 !important; margin:0 0 17px !important; }
  .alp-group-upcoming nav { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:13px !important; }
  .alp-footer .alp-group-upcoming a { display:flex !important; flex-direction:column !important; gap:7px !important; padding:18px !important; border:1px dashed #52647d !important; border-radius:8px !important; text-decoration:none !important; }
  .alp-footer .alp-group-upcoming a:hover { border-color:#d7bb83 !important; }
  .alp-group-upcoming strong { display:flex !important; justify-content:space-between !important; gap:12px !important; font-size:13px !important; color:#f6f4ee !important; font-weight:600 !important; }
  .alp-group-upcoming a>span { font-size:11px !important; color:#b9c7d8 !important; overflow-wrap:anywhere !important; }
  .alp-group-upcoming small { font-size:10px !important; color:#ddc595 !important; margin-top:4px !important; }
  .alp-footer .alp-group-alp-links { font-size:12px !important; color:#c1cee0 !important; margin:25px 0 !important; line-height:1.8 !important; }
  .alp-footer .alp-group-alp-links a { color:#e1e9f4 !important; text-decoration:underline !important; text-underline-offset:4px !important; overflow-wrap:anywhere !important; }
  .alp-footer-review-links { display:flex !important; flex-wrap:wrap !important; gap:15px 24px !important; align-items:center !important; border-top:1px solid #475971 !important; border-bottom:1px solid #475971 !important; padding:23px 0 !important; }
  .alp-footer .alp-footer-review-links>span { font-size:12px !important; color:#c1cee0 !important; font-weight:600 !important; }
  .alp-footer .alp-footer-review-links>a { font-size:12px !important; color:#f3f6fb !important; }
  .alp-knowledge a:focus-visible,.alp-knowledge summary:focus-visible,.alp-group a:focus-visible { outline:3px solid #d9ab59 !important; outline-offset:5px !important; }
  @media(max-width:1300px) {
    .alp-knowledge { margin-left:32px !important; margin-right:32px !important; }
  }
  @media(max-width:900px) {
    .alp-advice-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
    .alp-knowledge-intro { gap:35px !important; }
    .alp-home-faq { grid-template-columns:1fr !important; gap:35px !important; }
    .alp-review-grid { grid-template-columns:1fr !important; }
    .alp-group-sites { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
    .alp-group-upcoming nav { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
    .alp-footer .alp-holding>p { max-width:280px !important; font-size:18px !important; }
  }
  @media(max-width:600px) {
    .alp-knowledge { margin:50px 20px !important; scroll-margin-top:115px !important; }
    .alp-knowledge h2 { font-size:35px !important; letter-spacing:-1.2px !important; }
    .alp-knowledge h3 { font-size:23px !important; }
    .alp-knowledge-intro { grid-template-columns:1fr !important; gap:22px !important; margin-bottom:25px !important; }
    .alp-advice-grid { grid-template-columns:1fr !important; gap:14px !important; }
    .alp-advice-grid article { padding:26px 23px !important; }
    .alp-advice-index { margin-bottom:20px !important; }
    .alp-home-faq { padding-top:46px !important; }
    .alp-home-faq summary { font-size:16px !important; }
    .alp-review-card { padding:25px 23px !important; }
    .alp-footer .alp-holding { gap:25px !important; padding-top:30px !important; }
    .alp-footer .alp-holding-logo { width:280px !important; padding:14px !important; }
    .alp-footer .alp-holding>p { max-width:none !important; }
    .alp-footer .alp-group-heading h2 { font-size:22px !important; }
    .alp-group-sites { grid-template-columns:1fr !important; gap:11px !important; }
    .alp-group-upcoming nav { grid-template-columns:1fr 1fr !important; gap:10px !important; }
    .alp-footer .alp-group-upcoming a { padding:15px 12px !important; }
    .alp-group-upcoming strong { font-size:12px !important; }
    .alp-footer-review-links { flex-direction:column !important; align-items:flex-start !important; }
  }
  @media(prefers-reduced-motion:reduce) {
    .alp-advice-grid summary>span,.alp-home-faq summary>span,.alp-footer .alp-group-sites>a { transition:none !important; }
  }
}








/* Complete trade catalogue and local project preparation, preserving the ALP palette. */
@layer components {
  .alp-complete-catalogue { margin: 28px 0 !important; }
  .alp-complete-catalogue label { display:block !important; font-size:16px !important; font-weight:650 !important; margin-bottom:10px !important; }
  .alp-complete-catalogue input { width:100% !important; max-width:760px !important; min-height:52px !important; padding:14px 16px !important; border:1px solid #bdb4a8 !important; border-radius:5px !important; background:#fff !important; color:#24211e !important; font:inherit !important; }
  .alp-complete-catalogue input:focus { outline:2px solid #ac3028 !important; outline-offset:3px !important; }
  .alp-complete-catalogue .alp-trade-groups { margin-top:20px !important; }
  .alp-complete-catalogue .alp-trade-groups details { margin:0 !important; padding:0 !important; }
  .alp-complete-catalogue .alp-trade-groups summary { line-height:1.4 !important; padding:20px !important; overflow-wrap:anywhere !important; }
  .alp-complete-catalogue .alp-trade-groups li { margin:0 !important; }
  .alp-complete-catalogue .alp-trade-groups ul { padding:0 20px 22px !important; margin:0 !important; }
  .alp-complete-catalogue [hidden] { display:none !important; }
  .alp-city-project-grid { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:20px !important; margin:24px 0 !important; }
  .alp-city-project-grid article { min-width:0 !important; padding:25px !important; background:#faf8f2 !important; border:1px solid #ded8ce !important; border-radius:6px !important; }
  .alp-city-project-grid h3 { margin:0 0 12px !important; font-size:23px !important; font-weight:650 !important; line-height:1.2 !important; }
  .alp-city-project-grid p { font-size:16px !important; line-height:1.7 !important; margin:0 0 16px !important; }
  .alp-city-project-grid a { color:#9f2c26 !important; font-weight:650 !important; }
  .alp-seo-local-guide > h3 { margin-top:32px !important; font-size:25px !important; }
  .alp-seo-local-guide .alp-service-links { display:flex !important; flex-wrap:wrap !important; gap:10px !important; margin:18px 0 !important; }
  .alp-seo-local-guide .alp-service-links a { padding:10px 14px !important; border:1px solid #ded8ce !important; border-radius:4px !important; text-decoration:none !important; color:#892c27 !important; }
  .alp-home-specialties { margin:28px 0 44px !important; padding:28px !important; border:1px solid #d8d1c7 !important; background:#f7f4ed !important; }
  .alp-home-specialties h3 { font-size:25px !important; font-weight:650 !important; margin-bottom:12px !important; }
  .alp-home-specialties .alp-service-links { display:flex !important; flex-wrap:wrap !important; gap:12px !important; margin-top:20px !important; }
  .alp-home-specialties .alp-service-links a { display:block !important; border-bottom:1px solid #9f2c26 !important; padding:8px 0 !important; color:#9f2c26 !important; font-weight:650 !important; }
  @media(max-width:900px) { .alp-city-project-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
  @media(max-width:600px) { .alp-city-project-grid { grid-template-columns:minmax(0,1fr) !important; gap:14px !important; } .alp-home-specialties { padding:22px !important; } .alp-complete-catalogue .alp-trade-groups summary { padding:18px !important; } }
}

/* Visible contact actions, inline quote forms and continuous supplier rows. */
@layer components {
  /* Coordinated contact actions with a clear primary quote button. */
  body.alp-copy .alp-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:18px; flex-shrink:0; }
  body.alp-copy .alp-header-actions a { text-decoration:none; transition:background-color .18s,color .18s,box-shadow .18s; }
  body.alp-copy .alp-header-desktop-phone { display:inline-flex; align-items:center; gap:10px; padding:0; color:#202820; background:transparent!important; border:0; border-radius:0; white-space:nowrap; }
  body.alp-copy .alp-header-phone-icon { display:grid; place-items:center; width:40px; height:40px; border:1px solid #e0e4df; border-radius:50%; color:#b7192b; background:#fff; }
  body.alp-copy .alp-header-desktop-phone small { display:block; font-size:10px; font-weight:600; letter-spacing:.75px; text-transform:uppercase; color:#626963; line-height:1.5; }
  body.alp-copy .alp-header-desktop-phone strong { display:block; font-size:16px; font-weight:750; letter-spacing:.15px; line-height:1.45; }
  body.alp-copy .alp-header-callback { display:inline-flex; align-items:center; justify-content:center; min-height:44px; font-size:12px; font-weight:600; color:#535b57; white-space:nowrap; }
  body.alp-copy .alp-header-callback:hover { color:#a61928; text-decoration:underline; text-underline-offset:4px; }
  body.alp-copy .alp-header-devis { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:46px; padding:12px 18px; border:1px solid #b7192b; border-radius:8px; background:#b7192b!important; color:#fff!important; font-size:13px; line-height:1.4; font-weight:650; white-space:nowrap; box-shadow:0 3px 9px #87132312; }
  body.alp-copy .alp-header-devis:hover,body.alp-copy .alp-header-quote:hover { background:#971423!important; box-shadow:0 4px 12px #87132324; }
  body.alp-copy .alp-header-actions a:focus-visible,body.alp-copy .alp-header-contact a:focus-visible { outline:3px solid #202820; outline-offset:4px; }
  body.alp-copy .alp-header-contact { gap:5px; }
  body.alp-copy .alp-header-phone { gap:6px; font-size:13px; font-weight:700; letter-spacing:.1px; }
  body.alp-copy .alp-header-phone svg { width:14px; height:14px; color:#a61928; }
  body.alp-copy .alp-header-quote { border:1px solid #b7192b; border-radius:7px; padding:8px 13px; min-height:36px; background:#b7192b!important; color:#fff!important; font-size:12px; font-weight:650; box-shadow:0 2px 6px #87132314; }
  body.alp-copy nav[aria-label="Navigation mobile"] button[aria-controls="alp-mobile-menu"] svg { display:block; width:24px; height:24px; stroke:#202820; stroke-width:2; stroke-linecap:round; flex-shrink:0; }
  @media(min-width:1024px) and (max-width:1199px) {
    body.alp-copy .alp-header-actions { gap:12px; }
    body.alp-copy .alp-header-callback { display:none; }
    body.alp-copy .alp-header-devis { gap:10px; padding:12px 14px; }
  }
  @media(max-width:360px) {
    body.alp-copy .alp-header-phone { font-size:12px; gap:4px; }
    body.alp-copy .alp-header-quote { font-size:11px; padding:8px 10px; }
  }

  .alp-copy .alp-header-contact { margin-left:auto; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; flex-shrink:0; }
  .alp-copy .alp-header-phone { display:inline-flex; align-items:center; justify-content:center; color:#202721; font-size:14px; font-weight:750; letter-spacing:.2px; white-space:nowrap; min-height:26px; text-decoration:none; }
  .alp-copy .alp-header-quote { display:inline-flex; align-items:center; justify-content:center; background:#b7192b; color:#fff; border-radius:5px; padding:8px 11px; min-height:36px; font-size:12px; font-weight:700; line-height:1.2; text-decoration:none; white-space:nowrap; }
  .alp-copy .alp-header-desktop-phone { font-weight:700; letter-spacing:.2px; }
  .alp-trade-page #demander-un-devis { scroll-margin-top:145px; }
  .alp-trade-page .alp-td-quote { display:grid; grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr); gap:clamp(30px,5vw,80px); padding:64px max(28px,calc((100vw - 1230px)/2)); background:#f7f5ef; border-top:1px solid #dedfd8; }
  .alp-trade-page .alp-td-quote-intro { align-self:start; }
  .alp-trade-page .alp-td-quote h2 { font-size:clamp(28px,3vw,42px)!important; line-height:1.15!important; margin:0 0 20px!important; }
  .alp-trade-page .alp-td-quote-intro>p:not(.alp-td-kicker) { font-size:17px!important; line-height:1.65!important; color:#535b57; margin-bottom:22px!important; }
  .alp-trade-page .alp-td-quote-form { min-width:0; padding:28px; border:1px solid #dedfd8; border-radius:12px; background:#fff; }
  .alp-copy .alp-form-result[data-state=warning] { background:#fff7e3; border-color:#d7b661; color:#654810; }
  .alp-copy .alp-partners-wrap { width:100%; max-width:100%; min-width:0; overflow:hidden; }
  .alp-copy #sponsors { position:relative; width:100%; max-width:100%; min-width:0; overflow:hidden; }
  .alp-copy #sponsors .alp-partners-row { display:block!important; width:100%!important; max-width:100%!important; overflow:visible!important; white-space:normal!important; animation:none!important; transform:none!important; }
  .alp-copy #sponsors .alp-partners-track { display:flex!important; width:max-content!important; max-width:none!important; will-change:transform; animation:alp-partners-scroll 120s linear infinite!important; animation-play-state:running!important; }
  .alp-copy #sponsors .alp-partners-row.marquee--right .alp-partners-track { animation-direction:reverse!important; }
  .alp-copy #sponsors .alp-partners-set { display:flex!important; align-items:center; gap:32px; padding-right:32px; flex:0 0 auto; width:max-content; }
  .alp-copy #sponsors .alp-partners-set .marquee__item { flex:0 0 128px; margin:0!important; width:128px; }
  .alp-copy #sponsors .alp-partners-set img { width:128px; height:96px; object-fit:contain; }
  .alp-copy #sponsors[data-alp-partners-paused=true] .alp-partners-track { animation-play-state:paused!important; }
  .alp-copy .alp-partners-controls { display:flex; justify-content:flex-end; margin-top:14px; position:relative; z-index:1; }
  .alp-copy .alp-partners-pause { min-height:36px; padding:7px 12px; border:1px solid #d6d9d2; border-radius:5px; color:#535b57; background:#fff; font-family:inherit; font-size:12px; font-weight:600; line-height:1.4; cursor:pointer; }
  @keyframes alp-partners-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
  @media(max-width:1023px) {
    .alp-copy nav[aria-label="Navigation mobile"] header { height:82px!important; padding:0 16px!important; gap:12px!important; }
    .alp-copy nav[aria-label="Navigation mobile"] header>a { width:100px!important; height:70px!important; flex-shrink:0; }
    .alp-copy nav[aria-label="Navigation mobile"] header>a img { width:100px!important; height:auto!important; max-height:62px!important; }
    .alp-copy nav[aria-label="Navigation mobile"] header>button { width:44px!important; flex:0 0 44px; }
    .alp-trade-page #demander-un-devis { scroll-margin-top:96px; }
  }
  @media(max-width:850px) {
    .alp-trade-page .alp-td-quote { grid-template-columns:1fr; gap:24px; padding:40px 20px; }
    .alp-trade-page .alp-td-quote-form { padding:22px 18px; }
  }
  @media(max-width:360px) {
    .alp-copy nav[aria-label="Navigation mobile"] header { padding:0 12px!important; gap:8px!important; }
    .alp-copy nav[aria-label="Navigation mobile"] header>a,.alp-copy nav[aria-label="Navigation mobile"] header>a img { width:82px!important; }
    .alp-copy .alp-header-phone { font-size:13px; }
    .alp-copy .alp-header-quote { padding:8px; font-size:11px; }
    .alp-trade-page .alp-td-quote { padding:32px 16px; }
    .alp-trade-page .alp-td-quote-form { padding:18px 14px; }
  }
  /* Keep the phone and quote on one row with matching typography. */
  body.alp-copy .alp-header-desktop-phone strong,
  body.alp-copy .alp-header-devis { font-family:inherit!important; font-size:16px!important; font-weight:750!important; letter-spacing:.15px!important; line-height:1.4!important; }
  body.alp-copy .alp-header-contact { flex-direction:row; gap:12px; }
  body.alp-copy .alp-header-phone,
  body.alp-copy .alp-header-quote { font-family:inherit!important; font-size:14px!important; font-weight:700!important; letter-spacing:.1px!important; line-height:1.2!important; min-height:44px; }
  @media(min-width:1024px) and (max-width:1199px) {
    body.alp-copy .alp-header-desktop-phone strong,
    body.alp-copy .alp-header-devis { font-size:14px!important; }
  }
  @media(max-width:599px) {
    body.alp-copy nav[aria-label="Navigation mobile"] header { display:grid!important; grid-template-columns:minmax(0,1fr) 44px!important; grid-template-areas:"brand menu" "contact contact"!important; height:auto!important; padding:6px 16px 10px!important; gap:4px 12px!important; }
    body.alp-copy nav[aria-label="Navigation mobile"] header>a { grid-area:brand; height:48px!important; width:100px!important; }
    body.alp-copy nav[aria-label="Navigation mobile"] header>a img { width:100px!important; max-height:46px!important; }
    body.alp-copy nav[aria-label="Navigation mobile"] header>button { grid-area:menu; justify-self:end; height:44px!important; }
    body.alp-copy .alp-header-contact { grid-area:contact; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; margin:0; gap:8px; }
    body.alp-copy .alp-header-phone,
    body.alp-copy .alp-header-quote { width:100%; padding:10px 8px!important; font-size:13px!important; border-radius:7px; }
    body.alp-copy .alp-header-phone { border:1px solid #e1e4e1!important; background:#fff; color:#202820!important; }
    body.alp-copy .alp-header-phone svg { width:16px; height:16px; }
    body.alp-copy.home #alp-main,
    body.alp-copy.alp-trade-body #alp-main { padding-top:112px!important; }
    body.alp-copy .alp-page-start { padding-top:136px!important; }
    body.alp-copy [id],
    body.alp-copy .alp-trade-page #demander-un-devis { scroll-margin-top:132px; }
  }
  @media(prefers-reduced-motion:reduce) {
    /* Keep the requested automatic display gentle and its pause control available. */
    .alp-copy #sponsors .alp-partners-track { animation-duration:240s!important; }
  }
}

@layer base {
  .alp-copy .alp-story { width:100%; color:#202820; background:#fff; }
  .alp-copy .alp-story-kicker { margin:0 0 18px!important; color:#b7192b; font-size:11px!important; font-weight:750; letter-spacing:.16em; text-transform:uppercase; line-height:1.5; }
  .alp-copy .alp-story-hero { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:clamp(36px,6vw,92px); align-items:center; padding:172px max(28px,calc((100vw - 1230px)/2)) 76px; background:#f5f3ed; }
  .alp-copy .alp-story-hero-copy { min-width:0; }
  .alp-copy .alp-story-hero .alp-breadcrumb { margin-bottom:38px!important; font-size:12px!important; }
  .alp-copy .alp-story h1 { margin:0 0 28px!important; max-width:800px; font-size:clamp(42px,4.7vw,72px)!important; font-weight:650!important; letter-spacing:-.052em!important; line-height:1.04!important; color:#202820!important; }
  .alp-copy .alp-story h1 span { color:#b7192b; }
  .alp-copy .alp-story-hero-copy>p { font-size:16px; line-height:1.85; color:#5d635d; max-width:630px; }
  .alp-copy .alp-story-hero-copy .alp-story-lead { font-size:20px; line-height:1.65; color:#30392f; margin-bottom:18px; }
  .alp-copy .alp-story-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px 26px; margin-top:30px; }
  .alp-copy .alp-story-text-link { display:inline-flex; align-items:center; gap:14px; font-size:14px; font-weight:700; color:inherit; text-decoration:none; min-height:44px; }
  .alp-copy .alp-story-text-link span { color:#b7192b; }
  .alp-copy .alp-story-signature { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:40px; padding-top:22px; border-top:1px solid #d8d9d1; font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:#686e64; }
  .alp-copy .alp-story-hero-figure { margin:0; }
  .alp-copy .alp-story-hero-photo { display:block; width:100%; aspect-ratio:4/5; height:auto; max-height:600px; object-fit:cover; border-radius:2px; }
  .alp-copy .alp-story-hero-figure figcaption { margin:13px 0 0; font-size:11px; line-height:1.7; color:#697066; }
  .alp-copy .alp-story-chapter { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(36px,7vw,110px); max-width:1286px; margin:0 auto; padding:92px 28px; border-bottom:1px solid #e1e4dc; }
  .alp-copy .alp-story-number { display:block; margin-bottom:28px; font-size:13px; letter-spacing:.05em; color:#9caa96; }
  .alp-copy .alp-story h2,.alp-copy .alp-brand-section h2 { font-size:clamp(30px,3.2vw,48px)!important; font-weight:600!important; line-height:1.12!important; letter-spacing:-.035em!important; color:#263026; margin:0 0 24px!important; }
  .alp-copy .alp-story-prose p { margin:0 0 22px; font-size:16px; line-height:1.9; color:#5c645b; }
  .alp-copy .alp-story-prose .alp-story-large { font-size:23px; line-height:1.6; color:#273126; margin-bottom:26px; }
  .alp-copy .alp-story-milestones { padding:72px max(28px,calc((100vw - 1230px)/2)) 82px; background:#f7f7f2; }
  .alp-copy .alp-story-section-intro { max-width:770px; margin-bottom:38px; }
  .alp-copy .alp-story-timeline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px 28px; }
  .alp-copy .alp-story-date { min-width:0; }
  .alp-copy .alp-story-date-image { width:100%; height:190px; overflow:hidden; margin-bottom:20px; }
  .alp-copy .alp-story-date-image img { width:100%; height:100%; object-fit:cover; }
  .alp-copy .alp-story-date time { color:#b7192b; font-size:31px; letter-spacing:-.04em; font-weight:600; line-height:1.3; }
  .alp-copy .alp-story-date h3 { margin:9px 0 10px!important; font-size:18px!important; line-height:1.4; font-weight:650; color:#293529; }
  .alp-copy .alp-story-date p { font-size:14px; line-height:1.8; color:#5c655a; margin:0; }
  .alp-copy .alp-story-ground { padding:76px max(28px,calc((100vw - 1230px)/2)); background:#202b23; color:#fff; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:70px; align-items:center; }
  .alp-copy .alp-story-ground h2 { color:#fff; }
  .alp-copy .alp-story-ground .alp-story-kicker { color:#d9b5a2; }
  .alp-copy .alp-story-ground-copy>p:not(.alp-story-kicker) { color:#d0d7ce; font-size:16px; line-height:1.9; }
  .alp-copy .alp-story-ground .alp-story-text-link { margin-top:18px; color:#fff; }
  .alp-copy .alp-story-ground .alp-story-text-link span { color:#e4b4a9; }
  .alp-copy .alp-story-ground-images { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
  .alp-copy .alp-story-ground-images figure { margin:0; }
  .alp-copy .alp-story-ground-images figure:last-child { margin-top:54px; }
  .alp-copy .alp-story-ground-images img { display:block; width:100%; height:260px; object-fit:cover; }
  .alp-copy .alp-story-ground-images figcaption { color:#d9e0d5; font-size:11px; line-height:1.6; margin-top:12px; }
  .alp-copy .alp-story-chapter-last { border-bottom:0; }
  .alp-copy .alp-brand-section { width:100%; padding:76px max(28px,calc((100vw - 1230px)/2)); background:#f5f3ed; border-top:1px solid #e4e4da; border-bottom:1px solid #e4e4da; }
  .alp-copy .alp-brand-section-heading { display:flex; justify-content:space-between; align-items:center; gap:36px; margin-bottom:18px; }
  .alp-copy .alp-brand-section-heading>div:first-child { max-width:760px; }
  .alp-copy .alp-brand-holding { max-width:240px; flex:0 0 230px; }
  .alp-copy .alp-brand-holding img { width:210px; height:70px; object-fit:contain; background:#fff; display:block; }
  .alp-copy .alp-brand-holding p { margin:12px 0 0; font-size:12px; line-height:1.7; color:#62685d; }
  .alp-copy .alp-brand-intro { max-width:880px; font-size:16px; line-height:1.9; color:#5c6458; margin:0 0 36px; }
  .alp-copy .alp-brand-grid { display:grid!important; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
  .alp-copy .alp-brand-card { display:flex!important; flex-direction:column; min-width:0; padding:18px 16px 17px; background:#fff; border:1px solid #dfdfd5; color:#2a3529; text-decoration:none; border-radius:3px; transition:border-color .18s ease,box-shadow .18s ease; }
  .alp-copy .alp-brand-card:hover { border-color:#b7192b; box-shadow:0 6px 18px #20301f0b; }
  .alp-copy .alp-brand-image { display:flex; align-items:center; justify-content:center; width:100%; height:96px; margin-bottom:16px; background:#fff; }
  .alp-copy .alp-brand-logo { display:block!important; width:100%!important; height:100%!important; max-height:96px!important; object-fit:contain!important; margin:0!important; border-radius:0!important; box-shadow:none!important; }
  .alp-copy .alp-brand-card>strong { font-size:13px; line-height:1.5; font-weight:750; margin-bottom:7px; }
  .alp-copy .alp-brand-purpose { display:block; font-size:11px; color:#72786d; line-height:1.6; margin-bottom:19px; }
  .alp-copy .alp-brand-visit { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:auto; font-size:10px; font-weight:650; color:#8d1e2a; line-height:1.5; border-top:1px solid #edeee8; padding-top:12px; }
  .alp-copy .alp-brand-card:focus-visible,.alp-copy .alp-story-text-link:focus-visible { outline:3px solid #b7192b; outline-offset:4px; }
  .alp-copy .alp-footer .alp-group-image { display:flex!important; justify-content:center; align-items:center; width:100%; height:108px; padding:14px; background:#fff; border-radius:4px; }
  .alp-copy .alp-footer .alp-group-image .alp-brand-logo { width:100%!important; max-width:280px!important; height:80px!important; }
  .alp-copy .alp-story-close { text-align:center; padding:86px 24px 94px; background:#fff; }
  .alp-copy .alp-story-close>p:not(.alp-story-kicker) { max-width:630px; margin:0 auto; color:#62695f; font-size:17px; line-height:1.85; }
  .alp-copy .alp-story-close .alp-story-actions { justify-content:center; }
  @media(max-width:1199px) {
    .alp-copy .alp-brand-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .alp-copy .alp-story-hero { gap:36px; }
  }
  @media(max-width:899px) {
    .alp-copy .alp-story-hero { grid-template-columns:1fr; padding-top:150px; gap:36px; }
    .alp-copy .alp-story h1 { font-size:56px!important; }
    .alp-copy .alp-story-hero-photo { aspect-ratio:3/2; height:auto; max-height:480px; object-position:center 38%; }
    .alp-copy .alp-story-chapter { grid-template-columns:1fr; gap:20px; padding:60px 28px; }
    .alp-copy .alp-story-number { margin-bottom:15px; }
    .alp-copy .alp-story-timeline { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .alp-copy .alp-story-ground { grid-template-columns:1fr; gap:35px; padding-top:60px; padding-bottom:60px; }
    .alp-copy .alp-story-ground-images img { height:290px; }
    .alp-copy .alp-brand-section-heading { align-items:flex-start; }
  }
  @media(max-width:599px) {
    .alp-copy .alp-story-hero { padding:151px 20px 38px; }
    .alp-copy .alp-story-hero .alp-breadcrumb { margin-bottom:28px!important; }
    .alp-copy .alp-story h1 { font-size:43px!important; letter-spacing:-.05em!important; }
    .alp-copy .alp-story-hero-copy .alp-story-lead { font-size:18px; line-height:1.7; }
    .alp-copy .alp-story-hero-copy>p { font-size:15px; }
    .alp-copy .alp-story-actions { gap:12px 20px; margin-top:25px; }
    .alp-copy .alp-story-actions .alp-cta { width:100%; text-align:center; justify-content:center; }
    .alp-copy .alp-story-signature { margin-top:24px; gap:12px; font-size:9px; }
    .alp-copy .alp-story h2,.alp-copy .alp-brand-section h2 { font-size:32px!important; }
    .alp-copy .alp-story-chapter { padding:48px 20px; }
    .alp-copy .alp-story-prose .alp-story-large { font-size:20px; }
    .alp-copy .alp-story-prose p { font-size:15px; line-height:1.85; }
    .alp-copy .alp-story-milestones { padding:48px 20px; }
    .alp-copy .alp-story-timeline { gap:30px 15px; }
    .alp-copy .alp-story-date-image { height:125px; margin-bottom:14px; }
    .alp-copy .alp-story-date time { font-size:28px; }
    .alp-copy .alp-story-date h3 { font-size:16px!important; }
    .alp-copy .alp-story-date p { font-size:13px; line-height:1.75; }
    .alp-copy .alp-story-ground { padding:48px 20px; }
    .alp-copy .alp-story-ground-images { gap:14px; }
    .alp-copy .alp-story-ground-images img { height:210px; }
    .alp-copy .alp-brand-section { padding:48px 20px; }
    .alp-copy .alp-brand-section-heading { flex-direction:column; gap:12px; margin-bottom:24px; }
    .alp-copy .alp-brand-holding { max-width:none; flex:0 0 auto; display:flex; gap:15px; align-items:center; }
    .alp-copy .alp-brand-holding img { width:135px; height:48px; }
    .alp-copy .alp-brand-holding p { margin:0; font-size:10px; line-height:1.6; }
    .alp-copy .alp-brand-intro { font-size:15px; line-height:1.8; margin-bottom:25px; }
    .alp-copy .alp-brand-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .alp-copy .alp-brand-card { padding:13px 12px; }
    .alp-copy .alp-brand-image { height:72px; margin-bottom:13px; }
    .alp-copy .alp-brand-card>strong { font-size:12px; }
    .alp-copy .alp-brand-purpose { font-size:10px; margin-bottom:13px; }
    .alp-copy .alp-brand-visit { font-size:9px; gap:5px; padding-top:10px; }
    .alp-copy .alp-story-close { padding:54px 20px; }
  }
  @media(prefers-reduced-motion:reduce) { .alp-copy .alp-brand-card { transition:none; } }
}

@layer base {
  .alp-copy .alp-territory-section { width:100%; min-width:0; padding:74px max(24px,calc((100vw - 1230px)/2)); background:#f9f9f4; border-top:1px solid #e2e5db; }
  .alp-copy .alp-territory-intro { max-width:1000px; margin-bottom:38px; }
  .alp-copy .alp-territory-intro h2 { font-size:clamp(30px,3.1vw,46px)!important; line-height:1.15!important; letter-spacing:-.035em; color:#273226; margin:0 0 22px!important; }
  .alp-copy .alp-territory-intro>p:not(.alp-story-kicker) { max-width:900px; font-size:16px; line-height:1.85; color:#626b5d; }
  .alp-copy .alp-territory-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:24px; }
  .alp-copy .alp-territory-panel { min-width:0; padding:28px; background:#fff; border:1px solid #e1e4db; border-radius:4px; }
  .alp-copy .alp-territory-panel h3 { font-size:24px!important; line-height:1.3; font-weight:650; letter-spacing:-.025em; margin:0 0 15px; color:#293629; }
  .alp-copy .alp-territory-panel .alp-story-kicker { font-size:9px!important; margin-bottom:12px!important; }
  .alp-copy .alp-territory-panel figure { margin:0 0 25px; }
  .alp-copy .alp-territory-map { display:block; width:100%; height:auto; max-width:600px; margin:0 auto; overflow:visible; }
  .alp-copy .alp-territory-map a path { fill:#e0ccc8; stroke:#fff; stroke-width:1.5; transition:fill .15s; }
  .alp-copy .alp-territory-map a.is-idf path { fill:#b5767a; }
  .alp-copy .alp-territory-map a.is-loiret path { fill:#c12838; }
  .alp-copy .alp-territory-map a:hover path,.alp-copy .alp-territory-map a:focus path { fill:#8f192b; stroke:#551522; stroke-width:2.5; }
  .alp-copy .alp-territory-map a:focus-visible { outline:none; }
  .alp-copy .alp-territory-map text { fill:#3e242a; font-size:18px; font-weight:750; font-family:inherit; paint-order:stroke; stroke:#fff; stroke-width:3px; stroke-linejoin:round; pointer-events:none; }
  .alp-copy .alp-territory-map line { stroke:#51343c; stroke-width:1; }
  .alp-copy .alp-territory-map circle { fill:#51343c; }
  .alp-copy .alp-territory-panel figcaption { text-align:center; font-size:11px; color:#71766b; margin-top:8px; line-height:1.7; }
  .alp-copy .alp-territory-dot { display:inline-block; width:9px; height:9px; margin-right:5px; background:#c12838; border-radius:50%; }
  .alp-copy .alp-territory-links { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; width:100%; }
  .alp-copy .alp-territory-links>a { display:flex!important; align-items:center; gap:10px; min-width:0; padding:12px 10px; border:1px solid #e2e5dc; background:#fff; text-decoration:none; border-radius:3px; color:#293529; }
  .alp-copy .alp-territory-links>a:hover { border-color:#a61928; background:#fcf8f5; }
  .alp-copy .alp-territory-links>a:focus-visible { outline:3px solid #a61928; outline-offset:3px; }
  .alp-copy .alp-territory-code { display:flex; flex:0 0 34px; align-items:center; justify-content:center; min-height:34px; color:#a61928; background:#f7efed; font-size:15px; font-weight:750; }
  .alp-copy .alp-territory-links>a>span:nth-child(2) { min-width:0; }
  .alp-copy .alp-territory-links strong { display:block; font-size:12px; font-weight:700; line-height:1.45; overflow-wrap:anywhere; }
  .alp-copy .alp-territory-links small { display:block; font-size:10px; color:#7c8375; margin-top:4px; line-height:1.45; }
  .alp-copy .alp-territory-links>a>span:last-child { margin-left:auto; flex:0 0 auto; color:#a61928; font-size:13px; }
  .alp-copy .alp-territory-idf>.alp-story-text-link { margin-top:20px; }
  .alp-copy .alp-territory-note { font-size:12px; color:#777f6f; line-height:1.8; margin:26px 0 24px; max-width:950px; }
  .alp-copy .alp-idf-page .alp-territory-map { max-width:580px; margin:25px auto; }
  .alp-copy .alp-idf-page .alp-territory-links { grid-template-columns:repeat(4,minmax(0,1fr)); margin:28px 0; }
  @media(max-width:1023px) {
    .alp-copy .alp-territory-panel { padding:20px; }
    .alp-copy .alp-territory-links { grid-template-columns:1fr; }
    .alp-copy .alp-idf-page .alp-territory-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  }
  @media(max-width:699px) {
    .alp-copy .alp-territory-section { padding:48px 20px; }
    .alp-copy .alp-territory-layout { grid-template-columns:1fr; gap:18px; }
    .alp-copy .alp-territory-intro h2 { font-size:32px!important; }
    .alp-copy .alp-territory-intro>p:not(.alp-story-kicker) { font-size:15px; }
    .alp-copy .alp-territory-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .alp-copy .alp-territory-panel { padding:18px 14px; }
    .alp-copy .alp-territory-links>a { padding:10px 7px; gap:7px; }
    .alp-copy .alp-territory-code { flex-basis:29px; min-height:31px; font-size:13px; }
    .alp-copy .alp-territory-links strong { font-size:11px; }
    .alp-copy .alp-territory-links small { font-size:9px; }
    .alp-copy .alp-territory-links>a>span:last-child { display:none; }
    .alp-copy .alp-territory-note { font-size:11px; }
  }
  @media(prefers-reduced-motion:reduce) { .alp-copy .alp-territory-map a path { transition:none; } }
}


