/* Public website presentation; the admin keeps its own stylesheet. */
:root {
    --brand-primary:#b85216; --brand-primary-dark:#923d0d; --brand-primary-light:#efa56f; --brand-accent:#b85216;
    --bg-base:#fff; --bg-soft:#f3f5f6; --bg-dark:#142d3e; --bg-dark-soft:#233e50;
    --text-main:#142d3e; --text-muted:#596b77; --text-on-dark:#fff; --text-on-dark-muted:#c5d2da;
    --radius-sm:6px; --radius-md:10px; --radius-lg:12px; --radius-xl:16px;
    --shadow-sm:0 1px 2px rgb(20 45 62 / 4%); --shadow-md:0 3px 12px rgb(20 45 62 / 5%);
    --header-height:88px; --container-width:1200px;
}
body { font-family:system-ui,-apple-system,"Segoe UI",sans-serif; }
h1,h2,h3,h4,.font-heading { font-family:'Outfit',system-ui,sans-serif; text-wrap:balance; }
h1 { font-size:clamp(2.4rem,5vw,3.8rem); line-height:1.08; }
h2 { font-size:clamp(1.8rem,3.4vw,2.65rem); line-height:1.15; }
h3 { font-size:1.25rem; }
p { text-wrap:pretty; }
#main-content { padding-top:var(--header-height); }
.section { padding:76px 0; }
.site-header,.site-header.is-scrolled { height:var(--header-height); background:#fff; border-bottom:1px solid #e4e9ec; box-shadow:none; }
.site-header::before,.site-header.is-scrolled::before { background:#fff; backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:none; border:0; }
.site-header .brand-logo { width:138px; height:auto; max-height:66px; object-fit:contain; }
.site-nav a:not(.btn),.site-header.is-scrolled .site-nav a:not(.btn) { color:#334c5c; text-shadow:none; font-family:inherit; font-weight:500; }
.site-nav a.is-active:not(.btn),.site-nav a:not(.btn):hover { color:var(--brand-primary-dark); }
.site-nav a.is-active::after { background:var(--brand-primary); height:2px; }
.nav-toggle { color:#183748; border-color:#d5dfe5; background:#fff; }
.nav-toggle-bars span { background:currentColor; }
.nav-toggle-text { color:#183748; }
.btn { min-height:46px; padding:.75rem 1.2rem; border-radius:6px; font-family:inherit; font-size:.88rem; font-weight:600; box-shadow:none; gap:.65rem; }
.btn svg { width:17px; height:17px; }
.btn-primary { background:var(--brand-primary); color:#fff; border:1px solid var(--brand-primary); }
.btn-primary:hover { background:var(--brand-primary-dark); color:#fff; box-shadow:none; transform:none; }
.btn-outline { border:1px solid #b9c7d0; color:var(--text-main); background:transparent; }
.btn-outline:hover { border-color:var(--text-main); background:#eef2f4; color:var(--text-main); transform:none; }
.hero { min-height:440px; padding:76px 0; background:#142d3e; isolation:isolate; }
.hero-bg { z-index:-2; }
.hero-overlay { z-index:-1; }
.hero-eyebrow { color:var(--brand-primary); font-size:.74rem; font-weight:650; letter-spacing:.09em; text-transform:uppercase; margin-bottom:1rem; }
.hero:not(.home-hero) .hero-eyebrow { color:#f1ba94; }
.hero .font-heading { font-family:inherit; font-size:1.08rem !important; line-height:1.65; max-width:58ch; }
.hero-actions { gap:.75rem; margin-top:1.75rem; }
.home-hero { background:#faf9f6; min-height:0; padding:54px 0 60px; }
.home-hero-layout { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); gap:4rem; align-items:stretch; }
.home-hero .hero-content { max-width:620px; color:var(--text-main); }
.home-hero h1 { font-size:clamp(2.6rem,4.4vw,3.85rem); margin:0 0 1.4rem; font-weight:650; letter-spacing:-.035em; }
.home-hero .hero-lead { font-family:inherit; font-size:1.06rem; line-height:1.8; color:#506471; margin:0; max-width:49ch; }
.home-hero .btn-outline { color:#223f50; background:transparent; border:1px solid #bbc8ce; }
.home-hero .btn-outline:hover { background:#eef1f2; }
.home-hero-note { font-size:.76rem; color:#637785; margin-top:1.1rem; }
.home-hero .home-hero-photo { position:relative; inset:auto; z-index:auto; display:flex; flex-direction:column; min-height:440px; border-radius:12px; overflow:hidden; }
.home-hero-photo img { flex:1 1 0; min-height:0; width:100%; height:0; object-fit:cover; object-position:56% center; }
.home-photo-caption { flex:none; display:flex; align-items:center; justify-content:space-between; gap:1rem; color:#fff; background:#142d3e; padding:1rem 1.2rem; font-size:.7rem; }
.home-photo-caption span:last-child { color:#f0bd98; font-weight:600; }
.home-service-strip { border-bottom:1px solid #e4e9ec; background:#fff; }
.home-service-strip .container { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:1.3rem; padding-bottom:1.3rem; }
.home-service-strip span { display:flex; align-items:center; gap:.7rem; color:#4d6472; font-size:.8rem; }
.home-service-strip svg { width:18px; height:18px; color:var(--brand-primary); }
.site-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:2.5rem; }
.site-section-heading h2 { margin:0; }
.site-section-heading > p { margin:0 0 .2rem; max-width:36ch; font-size:.94rem; color:var(--text-muted); line-height:1.75; }
.site-text-link { font-size:.86rem; font-weight:600; white-space:nowrap; }
.site-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #dce4e9; }
.site-service { padding:1.8rem 1.6rem 0 0; }
.site-service + .site-service { border-left:1px solid #e1e7eb; padding-left:1.8rem; }
.site-service-number { color:#a0afb8; font-size:.76rem; font-variant-numeric:tabular-nums; }
.site-service h3 { font-size:1.4rem; margin:1rem 0 .8rem; }
.site-service p { color:var(--text-muted); font-size:.91rem; line-height:1.75; max-width:32ch; min-height:4.8em; }
.site-service a { display:inline-flex; gap:1rem; font-size:.83rem; font-weight:600; margin-top:.5rem; }
.home-employer-section { background:#f3f5f6; }
.home-employer-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:center; gap:5rem; }
.home-employer-photo,.site-feature-media { width:100%; height:430px; min-width:0; border-radius:10px; overflow:hidden; background:#e4e9ec; }
.home-employer-photo img,.site-feature-media img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.home-employer-content h2 { margin-bottom:1.25rem; }
.home-employer-content > p { color:var(--text-muted); font-size:.95rem; line-height:1.8; }
.site-check-list { list-style:none; padding:0; margin:1.5rem 0 2rem; }
.site-check-list li { display:flex; align-items:flex-start; gap:.6rem; font-size:.88rem; margin:.85rem 0; }
.site-check-list svg { width:17px; height:17px; flex-shrink:0; color:var(--brand-primary); margin-top:.2rem; }
.site-vacancy-list { border-top:1px solid #dce4e9; }
.site-vacancy { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.5rem 0; border-bottom:1px solid #dce4e9; color:var(--text-main); }
.site-vacancy h3 { margin:.4rem 0; font-size:1.35rem; }
.site-vacancy p { margin:0; color:var(--text-muted); font-size:.83rem; }
.site-vacancy-category { font-size:.7rem; color:var(--brand-primary-dark); font-weight:600; }
.site-vacancy-action { font-size:.83rem; font-weight:600; white-space:nowrap; }
.site-jobs-empty { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; background:#f7f8f9; border:1px solid #e1e7eb; border-radius:8px; padding:2rem; }
.site-jobs-empty h3 { margin:0 0 .5rem; font-size:1.2rem; }
.site-jobs-empty p { color:var(--text-muted); font-size:.9rem; margin:0; }
.home-industries { padding-top:0; }
.site-sector-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.site-sector { display:grid; grid-template-rows:auto 1fr; min-width:0; color:var(--text-main); border-bottom:1px solid #dce4e9; padding-bottom:.5rem; }
.site-sector img { display:block; width:100%; height:auto; aspect-ratio:8/5; object-fit:cover; border-radius:8px; }
.site-sector > div { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1rem 0; }
.site-sector h3 { font-size:1.05rem; margin:0; }
.site-sector:hover { color:var(--brand-primary-dark); }
.site-contact-band { background:#142d3e; color:#fff; padding:64px 0; }
.site-contact-band > .container { display:flex; justify-content:space-between; align-items:center; gap:2rem; }
.site-contact-band h2 { margin:0 0 1rem; color:#fff; }
.site-contact-band p { color:#c4d1d9; font-size:.94rem; margin:0; }
.site-contact-band .hero-eyebrow { color:#edb28b; }
.site-contact-band .btn-outline { color:#fff; border-color:#8499a7; }
.site-contact-band .btn-outline:hover { background:#254354; }
.glass { background:#fff; backdrop-filter:none; -webkit-backdrop-filter:none; border:1px solid #e0e7ec; box-shadow:var(--shadow-sm); }
.glass-dark { background:#1a3547; backdrop-filter:none; border:1px solid #365161; box-shadow:none; }
.glass-card { border-radius:10px; }
.glass-card:hover,.pathway-card:hover,.pathway-card:focus-visible { transform:none; box-shadow:var(--shadow-sm); }
.section-cta-glow { display:none; }
.feature-icon,.pathway-card-icon { background:#f8eee6; color:var(--brand-primary); box-shadow:none; }
.js-reveal .reveal,.reveal { opacity:1; transform:none; transition:none; }
input:not([type=checkbox]):not([type=radio]),select,textarea { border-radius:6px; border-color:#c7d2da; font-family:inherit; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid #b85216; outline-offset:2px; }
.site-footer { background:#f2f5f6; color:#334c5b; padding-top:60px; }
.footer-grid { gap:2.5rem; }
.site-footer .brand-logo { width:148px; height:auto; max-height:86px; }
.footer-brand p { color:#596d7a; font-size:.87rem; max-width:29ch; margin-top:1.3rem; }
.footer-heading { color:#183748; font:600 .9rem system-ui,sans-serif; margin-bottom:1.3rem; }
.footer-links a { color:#526976; font-size:.83rem; overflow-wrap:anywhere; }
.footer-links a:hover { color:var(--brand-primary-dark); }
.footer-links li { margin-bottom:.65rem; }
.footer-bottom { border-top:1px solid #d7e0e5; color:#637986; font-size:.75rem; padding-top:1.4rem; padding-bottom:1.4rem; margin-top:3rem; }
.social-links a { background:#fff; border:1px solid #d9e2e8; color:#34556a; }
@media (min-width:1024px) { .site-nav a:not(.btn) { font-size:.82rem; padding:.5rem 0; } .site-nav { gap:1.2rem; } .header-actions .btn { min-height:42px; font-size:.8rem; } }
@media (max-width:1023px) {
    .site-nav { padding:106px 1.75rem 2rem; gap:1.2rem; background:#fff; }
    .site-nav a:not(.btn) { font-size:1.15rem; }
    .home-hero-layout { gap:2rem; }
    .home-hero h1 { font-size:2.9rem; }
    .home-photo-caption span:first-child { max-width:18ch; }
    .home-employer-grid { gap:2.5rem; }
}
@media (max-width:767px) {
    :root { --header-height:76px; }
    .container { padding-left:1.25rem; padding-right:1.25rem; }
    .section { padding:52px 0; }
    .site-header .brand-logo { width:120px; max-height:56px; }
    .hero { padding:52px 0; }
    .home-hero { padding:36px 0; }
    .home-hero-layout,.home-employer-grid { grid-template-columns:minmax(0,1fr); gap:2rem; }
    .home-hero h1 { font-size:clamp(2.35rem,9.5vw,3.1rem); }
    .home-hero .hero-lead { font-size:.96rem; }
    .home-hero .home-hero-photo { height:270px; }
    .home-service-strip .container { flex-wrap:wrap; justify-content:flex-start; gap:1rem 1.5rem; }
    .home-service-strip span { font-size:.72rem; }
    .site-section-heading { align-items:flex-start; flex-direction:column; gap:1rem; margin-bottom:1.8rem; }
    .site-service-grid,.site-sector-grid { grid-template-columns:minmax(0,1fr); }
    .site-service,.site-service + .site-service { padding:1.5rem 0; border:0; border-bottom:1px solid #e1e7eb; }
    .site-service h3 { margin:.6rem 0; }
    .site-service p { min-height:0; max-width:none; }
    .home-employer-photo { height:320px; }
    .site-jobs-empty { flex-direction:column; align-items:flex-start; padding:1.5rem; }
    .site-sector-grid { gap:1.75rem; }
    .home-industries { padding-top:0; }
    .site-contact-band { padding:48px 0; }
    .site-contact-band > .container { flex-direction:column; align-items:flex-start; }
    .site-contact-band .hero-actions { margin-top:0; }
    .footer-grid { gap:2rem; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; } }

@media (min-width:1024px) { .footer-grid { grid-template-columns:1.25fr 1.2fr .75fr 1.1fr; gap:2rem; } }
@media (min-width:768px) and (max-width:1023px) { .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.footer-links a:hover { padding-left:0; }

/* Business registration details stay distinct and readable on small screens. */
.footer-registration { margin:.65rem 0 0; line-height:1.7; }
.labour-registration-number { white-space:nowrap; font-weight:600; }
.company-registrations { margin:1.5rem 0; padding:1.2rem 1.4rem; border:1px solid #dce4e9; border-radius:8px; background:#f7f9fa; display:grid; gap:1rem; }
.company-registrations dt { color:var(--text-muted); font-size:.78rem; margin-bottom:.2rem; }
.company-registrations dd { margin:0; color:var(--text-main); font-size:.95rem; font-weight:600; overflow-wrap:anywhere; }

.footer-document-links { display:flex; flex-wrap:wrap; justify-content:center; gap:.65rem 1.5rem; margin-top:1rem; }
.footer-document-links a { color:#435e70; font-size:.76rem; text-decoration:underline; text-underline-offset:3px; }
.footer-document-links a:hover { color:var(--brand-primary-dark); }
.footer-document-links span { color:var(--text-muted); }
.company-documents { margin:1.5rem 0 2rem; }
.company-documents h3 { font-size:1.1rem; margin:0 0 .5rem; }
.company-documents > p { color:var(--text-muted); font-size:.86rem; margin:0 0 1rem; }
.company-documents ul { list-style:none; margin:0; padding:0; border-top:1px solid #dce4e9; }
.company-documents li { border-bottom:1px solid #dce4e9; }
.company-documents li a { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 0; color:var(--text-main); font-size:.86rem; }
.company-documents li a:hover { color:var(--brand-primary-dark); }
.company-document-format { color:var(--brand-primary-dark); white-space:nowrap; font-size:.74rem; font-weight:600; }
@media (max-width:480px) { .company-documents li a { align-items:flex-start; flex-direction:column; gap:.35rem; } }

/* Media and grid items may shrink without pushing their columns outside the viewport. */
#main-content :where(.grid,.home-hero-layout,.home-employer-grid,.site-sector-grid,.industries-overview-grid,.industry-gallery) > * { min-width:0; }
#main-content :where(h1,h2,h3,p,a,label) { overflow-wrap:break-word; }
#main-content :where(input,select,textarea) { max-width:100%; min-width:0; }
.industries-overview-card { display:flex; flex-direction:column; }
.industries-overview-card-media { flex:none; width:100%; }
.industries-overview-card h3 { padding-inline:.75rem; min-height:2.6em; display:grid; place-items:center; }
.industries-overview-card > p:last-child { margin-top:auto !important; }
.industry-gallery { grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.industry-gallery-item { min-width:0; }
@media (min-width:768px) { .grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); } .grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:1023px) {
    .home-hero-layout,.home-employer-grid { grid-template-columns:minmax(0,1fr); gap:2rem; }
    .home-hero .hero-content { max-width:760px; }
    .home-hero .home-hero-photo { min-height:0; height:auto; aspect-ratio:4/3; max-height:560px; }
    .home-employer-photo,.site-feature-media { height:360px; }
    .home-employer-photo { height:auto; aspect-ratio:4/3; }
    .home-photo-caption span:first-child { max-width:none; }
}
@media (max-width:767px) {
    .home-employer-photo,.site-feature-media { height:auto; aspect-ratio:4/3; }
    .industries-overview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
    .industries-overview-card h3 { font-size:.95rem !important; }
    .hero h1 { font-size:clamp(2rem,8vw,3rem); }
}
@media (max-width:479px) {
    .industries-overview-grid { grid-template-columns:minmax(0,1fr); }
    .hero-actions { display:grid; grid-template-columns:minmax(0,1fr); width:100%; }
    .hero-actions .btn { width:100%; justify-content:center; }
    .home-photo-caption { flex-wrap:wrap; gap:.3rem 1rem; padding:.85rem 1rem; }
}
