/*
Theme Name: DW UK Theme
Theme URI: https://dwrailgroup.co.uk/
Author: DW Rail Group
Description: A bespoke rail recruitment and workforce solutions theme for DW Rail Group.
Version: 1.3.2
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: dw-uk-theme
*/

:root { --navy:#1f2555; --ink:#10131e; --blue:#1059d4; --yellow:#ffc21c; --paper:#f5f7fa; --line:#dfe4ed; --muted:#667080; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:#fff; color:var(--ink); font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.55; margin:0; }
a { color:inherit; text-decoration:none; } button,input,select,textarea { font:inherit; } button { cursor:pointer; }
.wrap { margin:0 auto; width:min(1180px,calc(100% - 48px)); } h1,h2,h3,p { margin-top:0; } h1,h2,h3 { letter-spacing:0; line-height:1; } h1 { font-size:clamp(42px,6vw,88px); } h2 { font-size:clamp(32px,4vw,58px); } h3 { font-size:21px; } p { color:var(--muted); }
.eyebrow { color:var(--blue); font-size:11px; font-weight:800; letter-spacing:1.7px; margin-bottom:16px; text-transform:uppercase; }.eyebrow.light { color:var(--yellow); }
.button { align-items:center; border:1px solid transparent; display:inline-flex; font-size:12px; font-weight:800; gap:25px; justify-content:space-between; letter-spacing:.7px; min-height:52px; padding:0 18px 0 21px; text-transform:uppercase; transition:transform .2s ease,box-shadow .2s ease; }.button:hover { transform:translateY(-3px); }.button.primary { background:var(--yellow); color:var(--navy); }.button.primary:hover { box-shadow:5px 6px 0 var(--navy); }.button.dark { background:var(--navy); color:#fff; }.button.dark:hover { box-shadow:5px 6px 0 var(--yellow); }.button.ghost { border-color:rgba(255,255,255,.72); color:#fff; }.button.ghost:hover { background:#fff; color:var(--navy); }

.site-header { align-items:center; display:flex; height:88px; justify-content:space-between; left:0; padding:0 max(24px,calc((100vw - 1280px)/2)); position:absolute; right:0; top:0; z-index:10; }.brand { display:block; height:64px; margin-top:7px; overflow:hidden; position:relative; width:142px; }.brand img { height:133px; left:50%; max-width:none; position:absolute; top:50%; transform:translate(-50%,-50%); width:133px; }.main-nav { align-items:center; display:flex; gap:20px; }.main-nav a { color:#fff; font-size:11px; font-weight:800; letter-spacing:.4px; padding:10px 0; position:relative; text-transform:uppercase; white-space:nowrap; }.main-nav a:not(.nav-cta)::after { background:var(--yellow); bottom:2px; content:""; height:2px; left:0; position:absolute; transform:scaleX(0); transform-origin:left; transition:transform .2s ease; width:100%; }.main-nav a:hover::after,.main-nav .current::after { transform:scaleX(1); }.main-nav .nav-cta { background:var(--yellow); color:var(--navy); margin-left:6px; padding:13px 15px; }.menu-button { background:transparent; border:0; display:none; height:42px; padding:10px; width:42px; }.menu-button i { background:#fff; display:block; height:2px; margin:5px 0; width:22px; }

.home-hero,.page-hero { background-color:var(--navy); background-position:center; background-size:cover; color:#fff; overflow:hidden; position:relative; }.home-hero { min-height:760px; padding-top:88px; }.home-hero::before,.page-hero::before { background:linear-gradient(90deg,rgba(17,25,69,.96),rgba(20,29,70,.75) 53%,rgba(31,37,85,.22)); content:""; inset:0; position:absolute; }.home-hero-content,.page-hero-content { position:relative; z-index:1; }.home-hero-content { padding:135px 0 140px; }.hero-stamp { align-items:center; display:flex; font-size:11px; font-weight:800; gap:10px; letter-spacing:1.5px; margin-bottom:26px; }.hero-stamp i { background:var(--yellow); height:10px; width:10px; }.home-hero h1,.page-hero h1 { color:#fff; margin-bottom:22px; max-width:850px; }.home-hero h1 em { color:var(--yellow); font-family:Georgia,serif; font-weight:400; }.home-hero-content > p,.hero-copy { color:#e1e7fb; font-size:20px; max-width:620px; }.hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }.hero-meta { bottom:29px; display:flex; font-size:10px; font-weight:800; gap:32px; left:max(24px,calc((100vw - 1180px)/2)); letter-spacing:1.1px; position:absolute; z-index:1; }.hero-meta b { color:var(--yellow); padding:0 7px; }.page-hero { min-height:555px; padding:210px 0 82px; }.page-hero h1 { max-width:880px; }.hero-facts { color:#fff; display:flex; font-size:11px; font-weight:800; gap:14px; letter-spacing:1px; margin-top:24px; text-transform:uppercase; }.hero-facts b { background:var(--yellow); color:var(--navy); padding:4px 10px; }
.trust-strip { align-items:center; background:var(--yellow); color:var(--navy); display:flex; font-size:11px; font-weight:800; justify-content:center; letter-spacing:.7px; min-height:66px; padding:12px 30px; text-align:center; text-transform:uppercase; }.trust-strip i { background:var(--navy); border-radius:50%; height:5px; margin:0 24px; min-width:5px; }

.grid-2 { display:grid; grid-template-columns:1fr 1fr; }.intro-section,.content-section { gap:80px; padding:96px 0; }.section-heading h2 { max-width:650px; }.section-heading > p:not(.eyebrow),.intro-copy p,.body-copy { font-size:18px; max-width:640px; }.intro-copy { max-width:540px; }.intro-copy p { margin-bottom:20px; }.discipline-section,.service-section,.controls-section { background:var(--paper); padding:92px 0; position:relative; }.discipline-section::before { background:var(--yellow); content:""; height:4px; left:0; position:absolute; right:0; top:0; }.discipline-grid,.controls-grid { display:grid; gap:1px; grid-template-columns:repeat(3,1fr); margin-top:48px; }.discipline-card,.control-card { background:#fff; min-height:238px; padding:29px; transition:background .2s ease,transform .2s ease; }.discipline-card:hover,.control-card:hover { background:var(--navy); color:#fff; transform:translateY(-5px); }.discipline-card:hover p,.control-card:hover p { color:#dce3f8; }.discipline-card span,.control-card span { color:var(--blue); font-size:11px; font-weight:800; letter-spacing:1px; }.discipline-card h3,.control-card h3 { margin:23px 0 10px; }.discipline-card p,.control-card p { font-size:14px; }.discipline-card a { color:var(--navy); font-size:11px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; }.discipline-card:hover a { color:var(--yellow); }
.standard-section { align-items:stretch; display:grid; gap:44px; grid-template-columns:164px minmax(0,1.2fr) minmax(240px,.7fr); padding:96px 0; }.standard-mark { align-self:center; border:1px solid #cad2df; display:flex; flex-direction:column; gap:10px; justify-content:center; min-height:170px; padding:24px; }.standard-mark span { color:var(--navy); font-size:18px; font-weight:800; letter-spacing:2.4px; }.standard-mark b { color:var(--blue); font-size:10px; letter-spacing:1px; }.standard-copy { align-self:center; }.standard-copy h2 { margin-bottom:18px; }.standard-copy > p:not(.eyebrow) { font-size:17px; }.deployment-rule { align-self:center; background:#f4f6fb; border-top:4px solid var(--yellow); display:flex; flex-direction:column; gap:10px; justify-content:center; min-height:176px; padding:25px; }.deployment-rule > span { color:var(--blue); font-size:10px; font-weight:800; letter-spacing:1.1px; text-transform:uppercase; }.deployment-rule strong { color:var(--navy); font-size:22px; line-height:1.12; }.deployment-rule p { font-size:13px; margin:0; }
.choice-section { display:grid; grid-template-columns:1fr 1fr; }.choice { min-height:420px; padding:80px max(36px,calc((100vw - 1180px)/2)); }.choice h2 { margin-bottom:18px; }.choice p:not(.eyebrow) { font-size:18px; max-width:480px; }.choice.client { background:var(--navy); color:#fff; }.choice.client p:not(.eyebrow) { color:#dae1f6; }.choice.candidate { background:var(--yellow); color:var(--navy); }.choice.candidate p:not(.eyebrow) { color:#404666; }
.services-table { border-top:1px solid var(--line); margin-top:42px; }.service-row { align-items:center; border-bottom:1px solid var(--line); display:grid; gap:24px; grid-template-columns:72px 1fr 1.3fr; min-height:94px; padding:16px 0; }.service-row b { color:var(--blue); font-size:12px; }.service-row h3,.service-row p { margin:0; }.service-row h3 { font-size:18px; }.service-row p { font-size:14px; }.process-section { padding:96px 0; }.process-grid { display:grid; grid-template-columns:repeat(5,1fr); margin-top:45px; }.process-grid article { border-left:1px solid var(--line); min-height:205px; padding:5px 20px; }.process-grid article:first-child { border-left:0; padding-left:0; }.process-grid span { color:var(--blue); font-size:11px; font-weight:800; }.process-grid h3 { font-size:20px; margin:24px 0 10px; }.process-grid p { font-size:14px; }.cta-band { background:var(--navy); color:#fff; padding:84px 0; }.cta-band h2 { max-width:720px; }
.values-section { background:var(--navy); color:#fff; padding:92px 0; }.values-section .section-heading p:not(.eyebrow) { color:#dce2f5; }.values-grid { display:grid; grid-template-columns:repeat(5,1fr); margin-top:45px; }.values-grid article { border-left:1px solid rgba(255,255,255,.22); padding:0 18px; }.values-grid article:first-child { border:0; padding-left:0; }.values-grid span { color:var(--yellow); font-size:11px; font-weight:800; }.values-grid h3 { font-size:19px; margin:22px 0 10px; }.values-grid p { color:#d5dcf3; font-size:14px; }.approach-section { align-items:center; display:grid; gap:80px; grid-template-columns:280px 1fr; padding:96px 0; }.approach-number { color:var(--yellow); font-size:190px; font-weight:800; line-height:.8; text-shadow:7px 8px 0 var(--navy); }.approach-number span { font-size:78px; }
.promise-band,.speak-section { background:var(--yellow); color:var(--navy); padding:72px 0; }.promise-band p:not(.eyebrow),.speak-section p { color:#3e4565; }.requirements-list { border-top:1px solid var(--line); }.requirements-list > div { border-bottom:1px solid var(--line); display:grid; gap:24px; grid-template-columns:180px 1fr; padding:17px 0; }.requirements-list h3,.requirements-list p { margin:0; }.requirements-list p { font-size:14px; }.form-section { background:var(--navy); color:#fff; padding:88px 0; }.form-layout { align-items:start; display:grid; gap:78px; grid-template-columns:.85fr 1.15fr; }.form-layout > div > p:not(.eyebrow) { color:#d9e0f4; font-size:17px; }.form-panel { background:#fff; color:var(--ink); display:flex; flex-direction:column; gap:15px; padding:32px; }.field-row { display:grid; gap:15px; grid-template-columns:1fr 1fr; }.field { display:flex; flex-direction:column; gap:6px; }.field span { font-size:11px; font-weight:800; letter-spacing:.6px; text-transform:uppercase; }.field input,.field select,.field textarea { border:1px solid #cdd3df; border-radius:0; min-height:44px; padding:10px; width:100%; }.field textarea { resize:vertical; }.checkbox { align-items:start; color:var(--muted); display:flex; font-size:12px; gap:9px; }.checkbox input { margin-top:4px; }.form-message { background:#dff6e6; color:#17622d; display:none; font-weight:700; padding:14px; }.form-message.show { display:block; }.vacancy-section { padding:94px 0; }.vacancy-head { align-items:end; display:grid; gap:60px; grid-template-columns:1fr 1fr; }.vacancy-head > p { font-size:17px; }.no-vacancies { align-items:center; background:var(--paper); display:grid; gap:26px; grid-template-columns:34px 1fr 52px; margin-top:42px; padding:34px; }.status-dot { background:var(--yellow); border:9px solid #ffe9ab; border-radius:50%; height:27px; width:27px; }.no-vacancies h3 { margin:0 0 8px; }.no-vacancies p { margin:0; }.no-vacancies > a { align-items:center; background:var(--navy); color:#fff; display:flex; font-size:24px; height:48px; justify-content:center; width:48px; }.speak-section .wrap { align-items:center; display:grid; gap:60px; grid-template-columns:1fr 1fr; }.contact-pills { display:flex; flex-direction:column; }.contact-pills a { border-top:1px solid rgba(31,37,85,.35); display:flex; flex-direction:column; font-size:18px; font-weight:800; padding:13px 0; }.contact-pills small { font-size:10px; letter-spacing:1px; }
.contact-page { display:grid; gap:70px; grid-template-columns:1fr 1fr; padding:94px 0; }.contact-details { border-top:1px solid var(--line); margin-top:36px; }.contact-details > * { border-bottom:1px solid var(--line); display:flex; flex-direction:column; padding:14px 0; }.contact-details span { color:var(--blue); font-size:10px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }.contact-details b { font-size:17px; }.contact-form-wrap { background:var(--paper); padding:32px; }.contact-form-wrap .form-panel { padding:0; }.routes-section { background:var(--navy); padding:60px 0; }.routes-section .wrap { display:grid; grid-template-columns:1fr 1fr; }.routes-section a { color:#fff; padding:14px 45px 18px 0; position:relative; }.routes-section a + a { border-left:1px solid rgba(255,255,255,.25); padding-left:45px; }.routes-section span { color:var(--yellow); font-size:10px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }.routes-section h3 { margin:14px 0 7px; }.routes-section p { color:#d6ddf0; font-size:14px; }

.rain-train { background:linear-gradient(180deg,#293269 0%,#202856 72%,#111737 72%); border-top:4px solid var(--yellow); color:#fff; min-height:456px; overflow:hidden; position:relative; }.rain { animation:rainfall 1.35s linear infinite; background-image:radial-gradient(circle at 11px 9px,rgba(220,230,255,.52) 0 1px,transparent 1.45px),radial-gradient(circle at 25px 22px,rgba(220,230,255,.28) 0 .7px,transparent 1.1px); background-size:31px 39px,47px 57px; height:calc(100% - 142px); inset:0 0 auto; mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.82) 76%,transparent 100%); opacity:.68; position:absolute; }.footer-intro { left:max(24px,calc((100vw - 1180px)/2)); position:absolute; top:31px; z-index:2; }.footer-logo-frame { height:88px; margin-bottom:8px; overflow:hidden; position:relative; width:164px; }.footer-logo { height:182px; left:50%; max-width:none; position:absolute; top:50%; transform:translate(-50%,-50%); width:182px; }.footer-kicker { color:var(--yellow); font-size:11px; font-weight:800; letter-spacing:1.6px; margin:0 0 7px; text-transform:uppercase; }.footer-intro > p:last-child { color:#e4e9fa; font-size:16px; margin:0; }.footer-contact { align-items:flex-start; border-left:3px solid var(--yellow); display:flex; flex-direction:column; gap:8px; min-width:248px; padding:4px 0 5px 17px; position:absolute; right:max(24px,calc((100vw - 1180px)/2)); top:37px; z-index:2; }.footer-contact > b { color:var(--yellow); font-size:11px; letter-spacing:1.4px; text-transform:uppercase; }.footer-contact a,.footer-contact p { color:#fff; display:flex; font-size:15px; font-weight:800; gap:10px; line-height:1.25; margin:0; }.footer-contact a span,.footer-contact p span { display:flex; flex-direction:column; }.footer-contact small { color:#c9d3f4; font-size:9px; letter-spacing:1px; margin-bottom:2px; text-transform:uppercase; }.footer-contact-icon { color:var(--yellow); fill:none; flex:0 0 24px; height:24px; margin-top:1px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.9; width:24px; }.railway-bed { bottom:80px; height:104px; left:0; position:absolute; right:0; z-index:1; }.rail { background:var(--yellow); box-shadow:0 0 16px rgba(255,194,28,.38); display:block; height:5px; left:0; position:absolute; right:0; top:62px; }.train-loop { bottom:109px; height:104px; left:0; overflow:visible; position:absolute; right:0; z-index:2; }.train { align-items:end; animation:train-travel 31s linear infinite; display:flex; gap:10px; left:100%; position:absolute; scale:.9; top:0; transform-origin:left bottom; }.train:hover { animation-play-state:paused; }.engine,.carriage { background:#f9fbff; border:2px solid #d9e1ee; box-shadow:0 9px 18px rgba(8,13,43,.28); color:var(--navy); height:80px; position:relative; }.engine { border-radius:34px 10px 10px; width:144px; }.engine::before { background:var(--yellow); border:2px solid var(--navy); border-radius:3px 3px 0 0; content:""; height:22px; left:97px; position:absolute; top:-22px; width:26px; }.engine::after,.carriage::after { background:#172035; border-radius:50%; bottom:-12px; box-shadow:94px 0 #172035; content:""; height:19px; left:13px; position:absolute; width:19px; }.engine-window { background:var(--navy); border:3px solid #cbd8e8; border-radius:5px 16px 4px 4px; height:34px; left:76px; position:absolute; top:16px; width:34px; }.engine-light { background:var(--yellow); border:2px solid var(--navy); border-radius:50%; height:14px; left:-8px; position:absolute; top:31px; width:14px; }.engine-mark { bottom:11px; color:var(--blue); font-size:11px; left:27px; position:absolute; }.carriage { align-items:center; display:flex; justify-content:center; min-width:156px; padding:8px 15px; }.carriage::before { background:var(--yellow); content:""; height:7px; left:7px; position:absolute; right:7px; top:7px; }.carriage span { font-size:11px; font-weight:800; letter-spacing:.35px; text-transform:uppercase; white-space:nowrap; }.carriage.current,.carriage:hover { background:var(--yellow); transform:translateY(-8px); }.carriage.current::before { background:var(--navy); }.footer-legal { align-items:center; background:rgba(8,12,35,.46); bottom:0; color:#c8d0e8; display:flex; font-size:10px; gap:30px; left:0; letter-spacing:.5px; min-height:58px; padding:0 max(24px,calc((100vw - 1180px)/2)); position:absolute; right:0; text-transform:uppercase; z-index:3; }
.articles-page { padding:96px 0; }.articles-toolbar { align-items:end; display:flex; gap:30px; justify-content:space-between; }.articles-toolbar h2 { margin:0; }.article-sort { display:flex; flex-direction:column; gap:7px; min-width:160px; }.article-sort span { color:var(--blue); font-size:10px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }.article-sort select { background:#fff; border:1px solid var(--line); min-height:43px; padding:0 12px; width:100%; }.article-filters { display:flex; flex-wrap:wrap; gap:8px; margin:38px 0 26px; }.article-filters a { background:#fff; border:1px solid var(--line); color:var(--navy); font-size:11px; font-weight:800; padding:11px 14px; text-transform:uppercase; transition:background .2s ease,color .2s ease,transform .2s ease; }.article-filters a:hover,.article-filters a.active { background:var(--navy); border-color:var(--navy); color:#fff; transform:translateY(-2px); }.articles-grid { display:grid; gap:1px; grid-template-columns:repeat(3,1fr); }.article-card { background:var(--paper); display:flex; flex-direction:column; min-height:310px; padding:31px; transition:background .25s ease,transform .25s ease; }.article-card:hover { background:var(--navy); color:#fff; transform:translateY(-5px); }.article-card > p { color:var(--blue); font-size:10px; font-weight:800; letter-spacing:1px; margin:0 0 22px; text-transform:uppercase; }.article-card h3 { font-size:24px; line-height:1.07; margin:0 0 17px; }.article-card time { color:var(--muted); font-size:12px; font-weight:700; }.article-card > span { color:var(--muted); font-size:14px; margin:20px 0 24px; }.article-card a { color:var(--blue); font-size:11px; font-weight:800; margin-top:auto; text-transform:uppercase; }.article-card:hover > p,.article-card:hover a { color:var(--yellow); }.article-card:hover time,.article-card:hover > span { color:#d4dcf4; }.articles-empty { background:var(--paper); grid-column:1/-1; padding:38px; }.article-single { padding:82px 0 112px; }.back-to-articles { color:var(--blue); font-size:11px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }.article-content { margin-top:42px; max-width:760px; }.article-content h2,.article-content h3 { margin-top:38px; }.article-content p,.article-content li { color:var(--muted); font-size:18px; line-height:1.65; }
.article-contact { background:var(--yellow); color:var(--navy); margin-top:70px; padding:38px; }.article-contact .eyebrow { color:var(--navy); }.article-contact h2 { font-size:34px; margin-bottom:28px; }.article-contact > div { display:grid; gap:16px; grid-template-columns:repeat(3,1fr); }.article-contact a,.article-contact span { border-top:1px solid rgba(31,37,85,.35); display:flex; flex-direction:column; font-size:17px; font-weight:800; padding-top:12px; }.article-contact small { font-size:10px; letter-spacing:1px; margin-bottom:4px; text-transform:uppercase; }
@keyframes train-travel { from { transform:translateX(0); } to { transform:translateX(calc(-100vw - 1450px)); } } @keyframes rainfall { from { background-position:0 -34px; } to { background-position:-7px 0; } }

@media (max-width:1080px) { .main-nav { gap:12px; }.main-nav a { font-size:9px; }.discipline-grid { grid-template-columns:repeat(2,1fr); }.standard-section { grid-template-columns:140px minmax(0,1fr); }.deployment-rule { grid-column:2; }.values-grid { grid-template-columns:repeat(3,1fr); gap:30px 0; }.process-grid { grid-template-columns:repeat(3,1fr); gap:25px 0; }.process-grid article:nth-child(4) { border-left:0; padding-left:0; } }
@media (max-width:780px) { .articles-page { padding:74px 0; }.articles-toolbar { align-items:start; flex-direction:column; }.article-sort { width:100%; }.articles-grid { grid-template-columns:1fr; }.article-card { min-height:270px; }.article-single { padding:62px 0 82px; }.article-content { margin-top:30px; }.article-content p,.article-content li { font-size:17px; }.article-contact { margin-top:46px; padding:25px; }.article-contact > div { grid-template-columns:1fr; }.article-contact h2 { font-size:29px; } }
@media (max-width:780px) { .wrap { width:min(100% - 36px,1180px); }.site-header { height:70px; padding:0 18px; }.brand { height:52px; margin-top:6px; width:108px; }.brand img { height:108px; width:108px; }.menu-button { display:block; }.main-nav { background:var(--navy); box-shadow:0 18px 25px rgba(0,0,0,.25); display:none; flex-direction:column; gap:0; left:0; padding:12px 18px 23px; position:absolute; right:0; top:69px; }.main-nav.open { display:flex; }.main-nav a { font-size:11px; padding:13px 0; width:100%; }.main-nav .nav-cta { margin:8px 0 0; text-align:center; }.home-hero { min-height:690px; }.home-hero-content { padding:108px 0 130px; }.home-hero h1 { letter-spacing:-.4px; }.home-hero-content > p { font-size:17px; }.hero-meta { flex-direction:column; gap:6px; left:18px; }.trust-strip { align-items:start; flex-direction:column; padding:17px 25px; text-align:left; }.trust-strip i { display:none; }.page-hero { min-height:525px; padding:172px 0 58px; }.page-hero h1 { font-size:45px; }.grid-2,.content-section,.contact-page,.form-layout,.speak-section .wrap { grid-template-columns:1fr; }.intro-section,.content-section { gap:26px; padding:74px 0; }.discipline-section,.service-section,.controls-section,.values-section { padding:72px 0; }.discipline-grid,.controls-grid { grid-template-columns:1fr; }.standard-section { gap:24px; grid-template-columns:1fr; padding:74px 0; }.standard-mark { min-height:118px; width:160px; }.deployment-rule { grid-column:auto; }.choice-section { grid-template-columns:1fr; }.choice { min-height:380px; padding:68px 25px; }.service-row { gap:10px; grid-template-columns:42px 1fr; }.service-row p { grid-column:2; }.process-section { padding:74px 0; }.process-grid { grid-template-columns:1fr; margin-top:30px; }.process-grid article,.process-grid article:nth-child(4) { border-left:3px solid var(--yellow); min-height:auto; padding:12px 0 14px 17px; }.values-grid { grid-template-columns:1fr; margin-top:30px; }.values-grid article { border-left:3px solid var(--yellow); padding:16px 0 16px 17px; }.approach-section { gap:42px; grid-template-columns:1fr; padding:74px 0; }.approach-number { font-size:145px; }.requirements-list > div { gap:4px; grid-template-columns:1fr; }.form-section,.vacancy-section,.contact-page { padding:74px 0; }.form-layout { gap:34px; }.form-panel,.contact-form-wrap { padding:23px; }.field-row { grid-template-columns:1fr; }.vacancy-head { gap:12px; grid-template-columns:1fr; }.no-vacancies { gap:18px; grid-template-columns:30px 1fr; padding:25px; }.no-vacancies > a { grid-column:2; }.speak-section .wrap { gap:28px; }.routes-section .wrap { grid-template-columns:1fr; }.routes-section a,.routes-section a + a { border-left:0; padding:15px 20px 20px 0; }.routes-section a + a { border-top:1px solid rgba(255,255,255,.25); }.rain-train { min-height:490px; }.rain { height:calc(100% - 137px); }.footer-intro { left:18px; top:24px; }.footer-logo-frame { height:70px; width:132px; }.footer-logo { height:148px; width:148px; }.footer-contact { left:18px; min-width:0; padding-left:13px; right:auto; top:145px; }.footer-contact a,.footer-contact p { font-size:16px; }.footer-contact small { font-size:10px; }.footer-contact-icon { flex-basis:25px; height:25px; width:25px; }.railway-bed { height:92px; }.rail { top:57px; }.train-loop { bottom:140px; height:56px; }.train { scale:.5; transform-origin:left bottom; }.footer-legal { align-items:flex-start; flex-direction:column; gap:2px; justify-content:center; min-height:76px; padding:10px 18px; } }

.form-privacy-notice { color:var(--muted); font-size:12px; line-height:1.45; margin:2px 0 0; }.form-privacy-notice a { color:var(--blue); font-weight:800; text-decoration:underline; text-underline-offset:2px; }.legal-page { display:grid; gap:72px; grid-template-columns:minmax(240px,.62fr) minmax(0,1.38fr); padding:96px 0 110px; }.legal-page-intro { align-self:start; position:sticky; top:112px; }.legal-page-intro h2 { margin:12px 0 18px; }.legal-page-intro > p:not(.eyebrow) { color:var(--muted); font-size:17px; }.legal-content { border-top:4px solid var(--yellow); max-width:760px; padding-top:10px; }.legal-content h2 { color:var(--navy); font-size:24px; margin:31px 0 10px; }.legal-content h2:first-child { margin-top:14px; }.legal-content p { color:var(--muted); font-size:16px; line-height:1.65; }.legal-content a { color:var(--blue); font-weight:800; text-decoration:underline; text-underline-offset:3px; }.footer-legal { justify-content:space-between; }.footer-legal > div,.footer-legal-links { align-items:center; display:flex; gap:30px; }.footer-legal-links a { color:#e7ecfa; font-size:10px; font-weight:800; text-decoration:underline; text-decoration-color:var(--yellow); text-underline-offset:4px; }.footer-legal-links a:hover { color:var(--yellow); }.cookie-banner { align-items:center; background:#fff; border:1px solid #cbd3e2; bottom:20px; box-shadow:0 16px 40px rgba(10,16,48,.25); color:var(--ink); display:flex; gap:28px; justify-content:space-between; left:20px; max-width:720px; padding:20px 22px; position:fixed; right:20px; z-index:1000; }.cookie-banner.is-hidden { display:none; }.cookie-banner strong { color:var(--navy); font-size:15px; }.cookie-banner p { color:var(--muted); font-size:13px; line-height:1.45; margin:5px 0 0; }.cookie-banner p a { color:var(--blue); font-weight:800; text-decoration:underline; text-underline-offset:2px; }.cookie-actions { display:flex; flex:0 0 auto; gap:8px; }.cookie-actions button { border:1px solid var(--navy); cursor:pointer; font:inherit; font-size:10px; font-weight:800; letter-spacing:.4px; min-height:41px; padding:0 13px; text-transform:uppercase; }.cookie-reject { background:#fff; color:var(--navy); }.cookie-accept { background:var(--yellow); color:var(--navy); }.cookie-actions button:hover { background:var(--navy); color:#fff; }

@media (max-width:780px) { .legal-page { gap:32px; grid-template-columns:1fr; padding:72px 0 84px; }.legal-page-intro { position:static; }.legal-content h2 { font-size:22px; }.legal-content p { font-size:16px; }.footer-legal > div,.footer-legal-links { align-items:flex-start; flex-direction:column; gap:5px; }.footer-legal-links { flex-direction:row; gap:18px; }.cookie-banner { align-items:stretch; bottom:12px; flex-direction:column; gap:16px; left:12px; padding:18px; right:12px; }.cookie-actions { display:grid; grid-template-columns:1fr 1fr; }.cookie-actions button { padding:0 8px; } }

.cookie-actions { flex-wrap:wrap; justify-content:flex-end; }.cookie-manage { background:#fff; color:var(--navy); }.cookie-essential { background:var(--navy); color:#fff; }.cookie-preferences { background:#fff; box-shadow:0 20px 50px rgba(10,16,48,.3); color:var(--ink); left:50%; max-width:680px; padding:34px; position:fixed; top:50%; transform:translate(-50%,-50%); width:calc(100% - 40px); z-index:1001; }.cookie-preferences.is-hidden { display:none; }.cookie-preferences-head { border-bottom:1px solid var(--line); display:flex; gap:24px; justify-content:space-between; padding-bottom:24px; }.cookie-preferences-head .eyebrow { margin:0 0 10px; }.cookie-preferences-head h2 { font-size:32px; margin:0 0 12px; }.cookie-preferences-head p:not(.eyebrow) { color:var(--muted); font-size:14px; line-height:1.5; margin:0; max-width:535px; }.cookie-close { background:transparent; border:0; color:var(--navy); cursor:pointer; font-size:32px; line-height:1; padding:0; }.cookie-option { align-items:center; border-bottom:1px solid var(--line); display:flex; gap:24px; justify-content:space-between; padding:21px 0; }.cookie-option strong { color:var(--navy); display:block; font-size:16px; }.cookie-option p { color:var(--muted); font-size:13px; line-height:1.45; margin:5px 0 0; max-width:430px; }.cookie-switch { align-items:center; display:flex; flex:0 0 auto; gap:8px; }.cookie-switch input { height:1px; opacity:0; position:absolute; width:1px; }.cookie-switch span { background:#cbd3e2; border-radius:20px; height:24px; position:relative; transition:background .2s ease; width:44px; }.cookie-switch span::after { background:#fff; border-radius:50%; box-shadow:0 1px 3px rgba(10,16,48,.25); content:""; height:18px; left:3px; position:absolute; top:3px; transition:transform .2s ease; width:18px; }.cookie-switch input:checked + span { background:var(--blue); }.cookie-switch input:checked + span::after { transform:translateX(20px); }.cookie-switch input:disabled + span { background:var(--yellow); }.cookie-switch b { color:var(--muted); font-size:10px; min-width:72px; text-transform:uppercase; }.cookie-preferences-actions { display:flex; gap:10px; justify-content:flex-end; padding-top:24px; }.cookie-preferences-actions button { border:1px solid var(--navy); cursor:pointer; font:inherit; font-size:11px; font-weight:800; min-height:44px; padding:0 16px; text-transform:uppercase; }

@media (max-width:780px) { .cookie-actions { grid-template-columns:1fr; }.cookie-actions button { min-height:42px; }.cookie-preferences { max-height:calc(100dvh - 24px); overflow:auto; padding:24px; width:calc(100% - 24px); }.cookie-preferences-head h2 { font-size:28px; }.cookie-option { align-items:flex-start; flex-direction:column; gap:13px; }.cookie-switch { align-self:flex-start; }.cookie-preferences-actions { flex-direction:column; }.cookie-preferences-actions button { width:100%; } }

/* Every WordPress post receives this measured article layout automatically. */
.article-hero { min-height:460px; padding:180px 0 72px; }.article-hero .page-hero-content { max-width:1120px; }.article-hero h1 { font-size:clamp(46px,4.7vw,72px); font-weight:700; line-height:1.05; max-width:1000px; }.article-single { padding:70px 0 110px; }.article-layout { align-items:start; display:grid; gap:72px; grid-template-columns:minmax(0,1fr) minmax(270px,.42fr); margin-top:34px; }.article-content { margin:0; max-width:none; }.article-content > * { max-width:820px; }.article-content h2 { color:var(--ink); font-size:clamp(28px,2.7vw,40px); font-weight:700; line-height:1.14; margin:0 0 18px; }.article-content h2:not(:first-child) { border-top:1px solid var(--line); margin-top:46px; padding-top:42px; }.article-content h3 { color:var(--ink); font-size:25px; font-weight:700; line-height:1.2; margin:34px 0 13px; }.article-content p,.article-content li { color:var(--muted); font-size:17px; line-height:1.7; }.article-content p { margin:0 0 22px; }.article-content ul,.article-content ol { margin:0 0 26px; padding-left:23px; }.article-content blockquote { border-left:4px solid var(--yellow); color:var(--navy); font-size:22px; font-weight:700; line-height:1.45; margin:34px 0; max-width:820px; padding:4px 0 4px 23px; }.article-content img { height:auto; margin:18px 0 28px; max-width:100%; }.article-content a { color:var(--blue); font-weight:800; text-decoration:underline; text-underline-offset:3px; }.article-contact { margin:0; position:sticky; top:118px; }.article-contact h2 { font-size:28px; font-weight:700; line-height:1.12; }.article-contact > div { grid-template-columns:1fr; }.article-contact a,.article-contact span { font-size:16px; }

@media (max-width:780px) { .article-hero { min-height:410px; padding:152px 0 54px; }.article-hero h1 { font-size:clamp(42px,11vw,54px); }.article-single { padding:58px 0 78px; }.article-layout { gap:42px; grid-template-columns:1fr; margin-top:28px; }.article-content > * { max-width:none; }.article-content h2 { font-size:30px; }.article-content h2:not(:first-child) { margin-top:37px; padding-top:32px; }.article-content h3 { font-size:23px; }.article-content p,.article-content li { font-size:16px; }.article-contact { position:static; } }
