:root{--green:#174A3A;--cream:#F5EFE3;--ink:#333}*{box-sizing:border-box}body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;margin:0;background:#fff;color:var(--ink);font:16px/1.625 Inter,Arial,sans-serif}body>header,body>footer{flex-shrink:0}body>main{flex:1}a{color:inherit}a:focus-visible{outline:3px solid #c7983d;outline-offset:6px}.skip{position:absolute;top:-100px;left:16px;background:white;color:var(--green);padding:12px;z-index:5}.skip:focus{top:12px}header,footer{background:var(--green);color:var(--cream)}.header-inner{min-height:100px;max-width:1440px;margin:auto;padding:20px 64px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{font-weight:700;font-size:30px;text-decoration:none;letter-spacing:-1px}nav{display:flex;align-items:center;gap:32px;font-size:18px;font-weight:500}nav a{text-decoration:none}nav a:hover,nav a[aria-current]{text-underline-offset:7px;text-decoration:underline}nav span{cursor:default}.hero{width:100%;min-height:450px;position:relative;margin:auto;display:flex;align-items:center;overflow:hidden}.hero-image{position:absolute;right:0;top:0;width:56.12%;height:100%;object-fit:cover}.hero-copy{position:relative;z-index:1;margin:60px 0 60px 8.333%;width:43%;max-width:620px}h1{font-size:48px;line-height:1.15;letter-spacing:-1.5px;color:var(--green);margin:0 0 28px;font-weight:700}.hero-copy>p{font-size:20px;line-height:1.6;max-width:490px;margin:0 0 24px}.hero-copy .tagline{color:var(--green);font-weight:600;font-size:24px;margin:0}.advert{width:min(728px,calc(100% - 40px));margin:80px auto 160px;text-align:center}.advert p{font-size:11px;letter-spacing:2px;color:#666;margin:0 0 12px}.advert img{display:block;width:100%;height:auto;aspect-ratio:728/90;object-fit:fill}.footer-inner{max-width:1440px;margin:auto;padding:45px 64px 30px}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:30px}.footer-brand{font-size:26px;font-weight:700;line-height:1.3;text-decoration:none}.footer-brand span{display:block;font-size:16px;font-weight:400;margin-top:5px}.support{text-decoration:none}.support:hover{text-decoration:underline}.social{width:177px;height:59px;object-fit:contain}.legal-links{display:flex;justify-content:center;gap:0;flex-wrap:wrap;font-size:14px;margin-top:36px}.legal-links>a{margin-left:12px}.legal-links>a:before{content:'•';display:inline-block;margin-right:12px}.legal-links a{text-decoration:none}.legal-links a:hover{text-decoration:underline}.legal{max-width:1440px;margin:auto;padding:74px max(24px,8.333%) 100px}.legal article{max-width:900px}.legal h1{margin-bottom:24px}.updated{color:#666;margin-bottom:44px}.legal h2{color:var(--green);font-size:24px;font-weight:600;line-height:1.35;margin:44px 0 18px}.legal p{margin:0 0 20px;overflow-wrap:anywhere}.legal a{color:var(--green);text-underline-offset:3px}.legal strong{font-weight:700}@media(min-width:1441px){.legal{padding-left:120px;padding-right:120px}}@media(max-width:1000px){.header-inner{padding:20px 32px}nav{gap:20px;font-size:16px}.hero-copy{margin-left:6%;width:49%}h1{font-size:38px}.hero-copy>p{font-size:18px}.hero-image{width:53%;object-position:57% center}.footer-inner{padding:35px 32px}.footer-top{gap:20px}.social{width:130px;height:auto}}@media(max-width:900px){.header-inner{padding:20px 24px;flex-direction:column;align-items:flex-start;gap:15px;min-height:auto}.brand{font-size:28px}nav{width:100%;justify-content:space-between;gap:10px;font-size:14px}.hero{display:flex;flex-direction:column;overflow:visible}.hero-copy{margin:44px 24px 24px;width:auto;max-width:none;align-self:stretch}.hero h1{font-size:clamp(30px,6.8vw,42px);letter-spacing:-1px}.hero-copy>p{font-size:18px;max-width:500px}.hero-copy .tagline{font-size:22px}.hero-image{position:static;width:100%;height:auto;aspect-ratio:808/450;object-fit:contain}.advert{margin:40px auto 80px}.footer-top{flex-direction:column;text-align:center;gap:26px}.footer-inner{padding:36px 20px 28px}.social{width:150px}.legal-links{gap:10px 18px;font-size:13px;margin-top:28px}.legal-links>a{margin:0}.legal-links>a:before{display:none}.legal-links>span{flex-basis:100%}.legal{padding:44px 24px 64px}.legal h1{font-size:36px;letter-spacing:-1px}.legal h2{font-size:23px;margin-top:36px}.updated{margin-bottom:32px}}@media(prefers-reduced-motion:no-preference){a{transition:opacity .15s}a:hover{opacity:.85}}

/* Reserve the ad dimensions before Google fills the slot. */
.railfolio-ad{width:728px;height:90px}
@media(max-width:767px){.railfolio-ad{width:320px;height:50px}}
@media(max-width:359px){.railfolio-ad{width:250px;height:50px}}

/* About uses the same reading column and heading styles as the legal pages. */
.about{width:100%}.about .about-intro{font-size:clamp(22px,3vw,28px);line-height:1.4;color:var(--green);font-weight:500;margin-bottom:28px}.about .about-signoff{margin-top:36px;color:var(--green)}

/* Separate keyboard-accessible links over the existing footer artwork. */
.social-links{position:relative;flex-shrink:0;line-height:0;isolation:isolate}
.social-links .social{display:block;pointer-events:none}
.social-link-targets{position:absolute;z-index:2;inset:0;display:grid;grid-template-columns:repeat(3,1fr);pointer-events:auto}
.social-link-targets a{display:block;border-radius:6px}
.social-link-targets a:hover{background:rgba(245,239,227,.12);opacity:1}

/* News: dated entries follow a vertical timeline, newest first. */
.news{width:100%}.news-intro{font-size:20px;color:#555}
.news-timeline{list-style:none;margin:44px 0 0;padding:0 0 0 28px;border-left:2px solid #d5dfd9}
.news-entry{position:relative;padding:0 0 32px}
.news-entry::before{content:"";position:absolute;left:-36px;top:6px;width:14px;height:14px;background:var(--green);border:3px solid var(--cream);border-radius:50%}
.news-entry+.news-entry{border-top:1px solid #d5dfd9;padding-top:32px}
.news-entry+.news-entry::before{top:38px}
.news-entry:last-child{padding-bottom:0}
.news-entry time{display:block;color:var(--green);font-size:15px;font-weight:600}
.news .news-entry h2{margin:12px 0 16px}
.news-entry p:last-child{margin-bottom:0}
@media(max-width:600px){.news-timeline{padding-left:22px}.news-entry::before{left:-30px}.news-intro{font-size:18px}}


.help{width:100%}.help-intro{font-size:22px;line-height:1.5;color:var(--green)}
.contact-form{max-width:820px;margin-top:36px;padding:32px;background:var(--cream);border-radius:8px}
.contact-form label{display:block;font-weight:600;color:var(--green);margin-bottom:10px}
.contact-form label span{font-weight:400;font-size:14px}
.contact-form input,.contact-form textarea{display:block;width:100%;padding:12px 14px;border:1px solid #89988e;border-radius:5px;background:white;color:var(--ink);font:inherit}
.contact-form textarea{resize:vertical;min-height:300px}
.contact-form input:focus-visible,.contact-form textarea:focus-visible,.send-button:focus-visible{outline:3px solid #c7983d;outline-offset:3px}
.contact-form .field-hint{font-size:14px;margin:8px 0 24px;color:#555}
.contact-form .contact-privacy{font-size:14px;line-height:1.6}
.send-button{background:#174A3A;color:#F5EFE3;border:0;border-radius:5px;padding:14px 28px;font:600 16px/1.4 Inter,Arial,sans-serif;cursor:pointer;min-height:48px}
.send-button:hover:not(:disabled){background:#10392c}.send-button:disabled{cursor:not-allowed}
.contact-form .form-status{margin:20px 0 0;font-size:15px}
@media(max-width:600px){.contact-form{padding:22px 18px}.send-button{width:100%}}

#contact-security{margin:20px 0;min-height:65px}

/* Features uses friendly cards instead of the legal-page reading layout. */
.features{width:100%}.features article{max-width:1180px}.features-intro{font-size:clamp(24px,3vw,30px);line-height:1.4;color:var(--green);font-weight:500;margin-bottom:28px}.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:44px 0}.feature-card{padding:28px;background:var(--cream);border-radius:10px}.feature-card-highlight{border:2px solid var(--green);background:#f8f4eb}.feature-icon{font-size:30px;line-height:1;margin-bottom:16px}.features .feature-card h2{margin:0 0 12px;font-size:22px}.feature-card p{margin-bottom:14px}.feature-card p:last-child{margin-bottom:0}.feature-tagline{color:var(--green);font-weight:600}.features-closing{padding:32px;background:var(--green);color:var(--cream);border-radius:10px}.features .features-closing h2{color:var(--cream);margin-top:0}.features .features-closing .feature-tagline{color:var(--cream);font-size:22px}@media(max-width:700px){.feature-grid{grid-template-columns:1fr;gap:16px;margin-top:32px}.feature-card{padding:24px}.features-closing{padding:26px 22px}}
.feature-card-safety{border:2px solid #b3261e;background:#fff7f5}.feature-card-safety .safety-heading{color:#b3261e;font-weight:700;text-transform:uppercase}
