/* Public website palette. Load after the component styles on every public page. */
:root {
  color-scheme: light;
  --bg: #fbfaf8;
  --panel: #fff;
  --text: #242d29;
  --muted: #606c65;
  --accent: #c54d2c;
  --border: #dfe3dd;
  --surface-soft: #f1f4ef;
  --surface-peach: #fff1e9;
  --shadow-soft: 0 12px 35px #27392c08;
}

/* Navigation and shared typography */
body { background: var(--bg); color: var(--text); }
::selection { background: #ffd5bd; color: #35281f; }
:focus-visible { outline-color: var(--accent); }
.site-header { background: #fffdfaf7; border-bottom: 1px solid var(--border); box-shadow: 0 4px 18px #263a2d04; backdrop-filter: blur(16px); }
.desktop-nav, .mobile-nav, .wordmark { color: var(--text); }
.desktop-nav a:hover, .mobile-nav a:hover { color: var(--accent); }
.header-cta { color: var(--text); border-color: #c8d0c6; background: #fff; }
.header-cta:hover { color: #fff; background: var(--accent); border-color: var(--accent); }
.menu-toggle { border-color: #cbd2c8; background: #fff; }
.mobile-nav:not([hidden]) { background: #fff; border: 1px solid var(--border); box-shadow: 0 16px 30px #263a2d14; }
.mobile-nav a { border-color: var(--border); }
.language-switch { border-color: #d3d9cf; background: #f1f3ee; }
.language-switch a { color: #586459; }
.language-switch a[aria-current="true"] { background: #fff; color: var(--accent); box-shadow: 0 1px 5px #22332314; }
.language-switch a:hover:not([aria-current="true"]) { color: var(--accent); background: #fff; }
.section-heading > p, .muted, .intro-topline .eyebrow, .edition { color: var(--muted); }
.button-orange { color: #fff; background: var(--accent); }
.button-orange:hover { background: #a93d21; }
.expertise-strip { background: #fff; border-color: var(--border); }
.strip-inner > span, .strip-inner > span:first-child, .strip-plus { color: var(--muted); }
.strip-inner p { color: #39463e; }

/* Two light hero compositions, with the original product imagery. */
.hero-slide { background: linear-gradient(115deg, #fff9f3, #fff0e5); border-color: #eddfd1; box-shadow: var(--shadow-soft); }
.home-page .hero-heading { color: var(--text); }
.home-page .hero-heading .hero-heading-accent { color: var(--accent); }
.hero-slide .eyebrow, .hero-slide-description, .hero-slide-note { color: var(--muted); }
.hero-capabilities > span { color: #64584c; border-color: #e6d6c6; background: #ffffffa6; }
.hero-primary { background: var(--accent); color: #fff; }
.hero-primary:hover { background: #a93d21; filter: none; }
.hero-text-link { color: #584336; }
.hero-slide-note > span:first-child { background: var(--accent); }
.hero-studio-art::before { border-color: #ca9a672e; }
.hero-sculpture { mix-blend-mode: normal; mask-image: none; inset: 12px -20px 28px; width: calc(100% + 40px); height: calc(100% - 40px); border-radius: 0; object-fit: contain; background: transparent; box-shadow: none; }
.hero-art-top, .hero-art-bottom { color: #736351; border-color: #dccbb9; }
.hero-art-top > span:last-child, .hero-art-bottom > span:last-child { color: var(--accent); }
.hero-art-label { border-color: #e8d8c8; background: #fffdfaf5; color: #4d3c2b; box-shadow: 0 10px 25px #51372012; }
.hero-art-label > span:first-child { color: var(--accent); }
.hero-slide--solutions { background: #f0f5ec; border-color: #d9e4d3; color: #233e30; }
.hero-slide--solutions::before { background: radial-gradient(ellipse at 79% 40%, #cfe3c49c, transparent 62%), linear-gradient(115deg, #fffdfb80, #eef4e800); }
.hero-slide--solutions::after { border-color: #7d9b6830; }
.home-page .hero-slide--solutions .software-launch-title { color: #253c2e; }
.home-page .hero-slide--solutions .hero-heading-accent { color: #35754c; }
.hero-slide--solutions .eyebrow, .hero-slide--solutions .hero-slide-description { color: #576b55; }
.hero-slide--solutions .hero-owned-dot { background: #397a51; box-shadow: 0 0 0 4px #397a5115; }
.hero-slide--solutions .hero-primary { background: #285f40; border-color: #285f40; color: #fff; box-shadow: none; }
.hero-slide--solutions .hero-primary:hover { background: #1d4a30; }
.hero-slide--solutions .hero-text-link { color: #36513c; }
.software-launch-terms, .software-launch-terms > div + div { border-color: #cedcc6; }
.software-launch-terms strong { color: #285f40; }
.software-launch-terms strong > span, .software-launch-terms p { color: #526b4d; }
.software-launch-stage::after { background: #44633330; }
.launch-stage-word { -webkit-text-stroke-color: #52723a33; }
.launch-stage-star { color: #649144; }
.launch-orbit { border-color: #5e824d24; }
.launch-box { filter: drop-shadow(12px 18px 14px #24341b2b); }
.launch-box:focus-visible { outline-color: #285f40; }
.hero-controls { border-color: #d1d8c9; background: #fffefaed; box-shadow: 0 5px 20px #263a2d0d; }
.hero-choice, .hero-choice[aria-pressed="true"] { color: #4c5e49; }
.hero-choice::before { background: #d8dfd2; }
.hero-choice[aria-pressed="true"]::before, .hero-choice::after { background: var(--accent); }
.hero-count, .hero-count b, .hero-arrow, .hero-play { color: #4c5e49; }
.hero-arrow, .hero-play { border-color: #d9e0d1; }
.hero-arrow:hover, .hero-play:hover { color: #fff; background: #345c3e; border-color: #345c3e; }

/* Image above, readable white content below: services and company strengths. */
.home-page .service-card, .why-card { padding: 0; min-height: 0; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-soft); }
.home-page .service-card::after, .why-card::after { display: none; }
.home-page .service-media, .why-media { position: relative; inset: auto; z-index: auto; width: 100%; max-width: 100%; height: auto; aspect-ratio: 1.9; object-position: center 38%; mask-image: none; }
/* The service artwork occupies the upper two-thirds of each square image. */
.home-page .service-media { aspect-ratio: 3 / 2; object-position: center top; flex-shrink: 0; }
.home-page .service-card:hover .service-media { transform: none; }
.home-page .service-copy, .why-copy { position: relative; padding: 30px; background: #fff; }
.home-page .service-copy { flex: 1; display: flex; flex-direction: column; }
.home-page .service-card h3, .why-card h3 { color: var(--text); }
.home-page .service-card p, .why-card p { color: var(--muted); }
.home-page .service-number { top: 20px; left: 20px; color: #fff; background: #17221a99; border-color: #ffffff5c; z-index: 1; backdrop-filter: blur(8px); }
.home-page .service-tags { border-color: var(--border); margin-top: auto; }
.home-page .service-tags > span { color: var(--card-ink); background: var(--step-tint); border-color: transparent; }
.home-page .service-card:hover, .why-card:hover, .why-card:focus-within { box-shadow: 0 18px 36px #27392c12; border-color: var(--card-accent); }
.why-media { aspect-ratio: 1.45; }
.why-copy { padding: 27px; }
.why-evidence { border-color: var(--border); color: var(--card-ink); }
.home-page .principles article, .home-page .principles article:first-child { background: #fff; border-color: var(--border); }
.home-page .principles h3 { color: var(--text); }
.home-page .principles p { color: var(--muted); }

/* Process, company introduction, and FAQ. */
.home-page .process-band, .faq-band { background: var(--surface-soft); color: var(--text); border-color: var(--border); }
.home-page .process .eyebrow, .home-page .process .section-heading > p { color: var(--muted); }
.process-viewport { background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow-soft); }
.process-slide { color: var(--text); background: #fff; }
.process-copy p, .process-slide-total { color: var(--muted); }
.process-slide-number, .process-copy .step-output { color: var(--card-ink); }
.process-copy .step-output { border-color: var(--border); }
.process-step-index { color: #596951; }
.studio-panel { background: #fff; border-color: var(--border); box-shadow: var(--shadow-soft); }
.studio-wordmark { color: var(--text); }
.studio-caption { background: #f2f5ef; border-color: var(--border); }
.studio-caption p { color: #374b3c; }
.studio-disciplines span { color: #576951; background: #fff; border-color: #d5dfce; }
.team-copy > p:not(.eyebrow), .team-experience > div { color: var(--muted); }
.team-copy > p.team-intro, .team-experience strong { color: var(--text); }
.team-experience { border-color: var(--border); }
.studio-work-link { color: var(--accent); border-color: #e0b49d; }
.studio-work-link:hover { color: #98391e; }
.faq-intro .eyebrow, .faq-intro p:not(.eyebrow), .faq-answer p { color: var(--muted); }
.faq-list, .faq-item { border-color: #d2dbce; }
.faq-number, .faq-toggle { color: #586d51; }

/* Portfolio artwork and its project descriptions remain unchanged. */
.portfolio-intro-copy p, .work-details > p { color: var(--muted); }
.portfolio-source { color: var(--accent); border-color: #e0b49d; }
.work-grid { gap: 30px; }
.work-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-soft); }
.work-cover { border-radius: 15px 15px 0 0; }
.work-details { padding: 27px 28px 30px; }
.work-tags li { color: #586851; background: #f3f6ef; border-color: #e0e6d9; }
.work-number { color: #64725b; }
.project-link { color: var(--accent); border-color: #e0b49d; }

/* Software catalog: keep the imagery and individual product colours. */
.intro-bottom > p, .solutions-note, .solution-steps li p, .card-description { color: var(--muted); }
.collection-heading > span { color: var(--muted); }
.purchase-terms { color: #35543b; background: #eff5eb; border-color: #d7e3cf; }
.purchase-terms li > span:first-child { color: #35543b; border-color: #c7d8bc; }
.solution-card { background: #fff; border-color: var(--border); box-shadow: var(--shadow-soft); }
.solution-card:hover { border-color: var(--product-ink); box-shadow: 0 16px 35px #26392c14; }
.product-kicker, .card-purchase, .solution-link { color: var(--product-ink); }
.solution-tags li { color: var(--product-ink); background: color-mix(in srgb, var(--product-wash) 40%, white); border-color: color-mix(in srgb, var(--product-ink) 15%, white); }
.solution-link, .solution-steps li { border-color: var(--border); }
.solutions-note > a { color: var(--accent); }
.solution-breadcrumb { color: var(--muted); }
.solution-breadcrumb [aria-current] { color: var(--product-ink); }
.other-solutions a { background: #fff; border-color: var(--border); }
.other-solutions small, .other-solutions .product-icon, .other-solutions a > span:last-child { color: var(--product-ink); }
.other-solutions a:hover { border-color: var(--product-ink); }

/* Product brochures and feature galleries. */
.brochure-nav { top: var(--site-header-height); background: #fffdfaf5; border-color: var(--border); }
.brochure-nav > div > a { color: #5c6c56; }
.brochure-nav > div > a:hover, .brochure-nav .product-icon, .brochure-nav .brochure-nav-cta { color: var(--product-ink); }
.brochure-nav .brochure-nav-cta { border-color: var(--border); }
.solution-detail .brochure-cover { background: #fff; border-color: #dbe2d5; box-shadow: var(--shadow-soft); }
.brochure-heading .eyebrow, .brochure-benefit-symbol, .flow-step, .role-index, .role-mark, .brochure-delivery-copy > .eyebrow, .brochure-delivery li > span { color: var(--product-ink); }
.brochure-heading h2 > span:last-child { color: #6b7d62; }
.brochure-benefit-grid p, .brochure-flow p, .brochure-role-list p, .brochure-delivery li p, .brochure-faq details > p { color: var(--muted); }
.brochure-benefit-grid article, .brochure-benefit-grid article:first-child, .brochure-benefit-grid article:last-child,
.brochure-role-list article, .brochure-role-list article:last-child, .brochure-delivery, .brochure-delivery li,
.brochure-faq details { border-color: var(--border); }
.brochure-benefit-symbol { background: var(--product-wash); border-color: transparent; }
.brochure-example { color: #637358; border-color: #d6dfd0; background: #f1f5ed; }
.brochure-flow { background: #fff; border-color: var(--border); }
.brochure-flow li, .brochure-flow li:nth-child(n+3) { border-color: var(--border); }
.brochure-faq summary { color: var(--text); }
.brochure-faq summary > span:last-child { color: var(--product-ink); }
.feature-showcase { background: #f1f5ed; border-color: #dce4d6; }
.showcase-panel-heading p, .showcase-rail-note, .showcase-pan-hint, .showcase-bottom p { color: #5b6b52; }

/* Project enquiry: pale peach surround and a white form. */
.enquiry-section { background: var(--surface-peach); border: 1px solid #f0ded0; border-radius: 20px; }
.enquiry-intro .eyebrow, .enquiry-direct a { color: #ae4426; }
.enquiry-intro > p:not(.eyebrow) { color: #725745; }
.enquiry-intro h2 { color: #382e27; }
.enquiry-panel { background: #fff; border: 1px solid #ede3d8; border-radius: 12px; box-shadow: 0 12px 28px #724c2308; }
.enquiry-submit { background: var(--accent); color: #fff; }
.enquiry-submit:hover { background: #a93d21; }

/* Informative footer, rebuilt in warm white. */
.site-footer { background: linear-gradient(180deg, #f6f5ef, #fffdf9); color: #5b675d; border-color: var(--border); }
.footer-intro, .footer-bottom, .site-footer .footer-ownership { border-color: #dce2d5; }
.site-footer .footer-kicker { color: var(--accent); }
.site-footer .footer-heading, .site-footer .wordmark { color: var(--text); }
.footer-heading > span:last-child { color: #718362; }
.footer-project-cta { color: #354230; border-color: #cdd6c5; background: #fff; }
.footer-project-cta:hover { border-color: var(--accent); background: #fff5ef; }
.footer-cta-arrow { background: var(--accent); color: #fff; }
.site-footer .footer-description { color: #657060; }
.footer-specialties { color: #4f6545; font-size: 11px; }
.site-footer .footer-column h3, .site-footer .footer-contact h3 { color: #33432d; font-size: 14px; }
.footer-column a { color: #53644c; font-size: 14px; }
.footer-column a:hover, .footer-solutions a:hover .footer-product-name { color: var(--accent); }
.footer-product-name { color: #344d2e; }
.footer-product-description { color: #5f7055; font-size: 12px; }
.site-footer .footer-ownership { color: #617256; font-size: 11px; }
.footer-contact { border-color: #ead5c2; background: #fff4e9; }
.footer-contact-icon { color: var(--accent); background: #fff; border-color: #ebd8c5; }
.footer-phone { color: #553723; }
.footer-phone:hover { color: var(--accent); }
.site-footer .footer-contact p { color: #755b47; }
.footer-enquiry { border-color: #e9d4c1; color: #b04425; font-size: 12px; }
.site-footer .footer-bottom p { color: #67745e; font-size: 11px; }
.footer-back-top { color: #4f6743; font-size: 11px; }
.footer-back-top > span[aria-hidden] { border-color: #cbd6c2; }
.footer-back-top:hover { color: var(--accent); }

@media (min-width: 601px) and (max-width: 1000px) {
  .why-card { display: grid; grid-template-columns: .8fr 1.2fr; padding: 0; }
  .why-media { width: 100%; height: 100%; object-fit: cover; }
  .why-copy { padding: 28px; }
}
@media (max-width: 760px) {
  .site-header { background: #fffdfafc; }
  .hero-slide { box-shadow: none; }
  .hero-sculpture { inset: 18px -14px 30px; width: calc(100% + 28px); height: calc(100% - 48px); }
  .hero-slide-description, .hero-slide--solutions .hero-slide-description { font-size: 15px; }
  .hero-slide-note, .hero-capabilities > span { font-size: 11px; }
  .software-launch-terms p { font-size: 11px; }
  .home-page .service-card, .why-card { padding: 0; }
  .home-page .service-copy { padding: 26px; }
  .why-copy { padding: 26px; }
  .why-media { aspect-ratio: 1.5; }
  .work-grid { gap: 25px; }
  .work-details { padding: 24px; }
  .solution-card .product-kicker, .card-purchase, .solution-tags li { font-size: 12px; }
  .enquiry-section { border-radius: 16px; }
  .enquiry-panel { padding-inline: 17px; }
  .footer-column ul { gap: 14px; }
  .footer-column a { min-height: 32px; }
}
@media (max-width: 600px) {
  .home-page .service-media, .why-media { left: auto; width: 100%; max-width: 100%; }
}
