/*
Theme Name: Feronex
Description: Feronex industrial website inspired by the supplied reference.
Version: 1.8.1
Requires at least: 6.6
Requires PHP: 8.3
Text Domain: local-theme
*/

:root {
    --yellow:#DE2121;
    --ink:#202221;
    --paper:#f2f2f0;
    --muted:#747875;
    --line:#dedfdd;
    --content-max:1410px;
    --gutter:30px;
    --pad:max(var(--gutter), calc((100% - var(--content-max)) / 2));
}
* {
    box-sizing:border-box;
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:25px;
}
body {
    margin:0;
    display:flex;
    flex-direction:column;
    min-height:calc(100vh - var(--feronex-admin-bar-height, 0px));
    min-height:calc(100dvh - var(--feronex-admin-bar-height, 0px));
    background:var(--paper);
    color:var(--ink);
    font-family:'Bai Jamjuree',Arial,sans-serif;
    font-size:16px;
    line-height:1.5;
}
/* The content fills short pages; the footer stays in normal document flow. */
body > main {
    flex:1 0 auto;
    width:100%;
}
body > .site-header,body > .site-footer {
    flex-shrink:0;
}
body.admin-bar {
    --feronex-admin-bar-height:32px;
}
@media(max-width:782px) {
    body.admin-bar { --feronex-admin-bar-height:46px; }
}
a {
    color:inherit;
    text-decoration:none;
}
button,input,textarea,select {
    font:inherit;
}
button,a,summary {
    -webkit-tap-highlight-color:transparent;
}
img {
    display:block;
    max-width:100%;
    height:auto;
}
h1,h2,h3,p {
    margin:0;
}
h1,h2,h3 {
    line-height:1.05;
    letter-spacing:-.035em;
}
h2 {
    font-size:clamp(36px,4.7vw,68px);
    text-transform:uppercase;
    font-weight:600;
}
h3 {
    font-size:22px;
    font-weight:600;
    text-transform:uppercase;
}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
    outline:3px solid var(--yellow);
    outline-offset:4px;
}
button {
    cursor:pointer;
}
.section {
    padding:90px var(--pad);
}
.eyebrow {
    display:table;
    padding:5px 9px;
    background:#fff;
    color:var(--ink);
    text-transform:uppercase;
    font-size:10px;
    letter-spacing:1px;
    font-weight:600;
    line-height:1.4;
    margin-bottom:20px;
}
.eyebrow::before {
    content:'';
    display:inline-block;
    background:var(--yellow);
    width:5px;
    height:5px;
    margin:0 5px 1px 0;
}
.button {
    border:0;
    display:inline-flex;
    gap:20px;
    align-items:center;
    background:var(--ink);
    color:#fff;
    text-transform:uppercase;
    font-size:11px;
    font-weight:600;
    padding:21px 24px;
    margin-top:28px;
    transition:background .25s,color .25s,border-color .25s;
}
.button:hover,.button:focus-visible {
    background:#fff;
    color:var(--ink);
}
.button.yellow {
    background:var(--yellow);
    color:var(--ink);
}
.button.yellow:hover,.button.yellow:focus-visible {
    background:#fff;
    color:var(--ink);
}
.button:active,.button.yellow:active {
    transform:none;
    background:var(--yellow);
    color:var(--ink);
}
.text-link {
    display:inline-block;
    font-size:11px;
    font-weight:600;
    text-transform:uppercase;
    margin-top:26px;
}
.text-link:hover {
    text-decoration:underline;
}
.grid-lines {
    position:relative;
    background-size:cover;
    background-position:center;
}
.grid-lines::before {
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(90deg,transparent calc(50% - 1px),#ffffff15 50%,transparent calc(50% + 1px));
    border-inline:1px solid #ffffff15;
    margin:0 var(--pad);
}
.site-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    padding:22px var(--pad);
    border-bottom:1px solid var(--line);
    z-index:20;
    position:relative;
}
.home .site-header {
    position:absolute;
    top:0;
    left:0;
    right:0;
    color:#fff;
    border-color:#ffffff20;
}
.home.admin-bar .site-header {
    top:32px;
}
.brand {
    font-size:37px;
    font-weight:600;
    letter-spacing:-1.4px;
    display:inline-flex;
    align-items:center;
    line-height:1;
    white-space:nowrap;
}
.brand-symbol {
    color:var(--yellow);
    font-size:40px;
    margin-right:6px;
}
.brand-period {
    margin-left:0;
}
.primary-nav {
    display:flex;
    align-items:center;
    gap:28px;
    font-size:11px;
    text-transform:uppercase;
    font-weight:600;
}
.primary-nav>a:not(.nav-contact):hover {
    color:var(--yellow);
}
.primary-nav>a:not(.nav-contact)[aria-current] {
    text-decoration:underline;
    text-decoration-color:var(--yellow);
    text-decoration-thickness:2px;
    text-underline-offset:6px;
}
.nav-contact[aria-current="page"] { box-shadow:inset 0 -3px var(--ink); }
.primary-nav>a:not(.nav-contact)::after {
    content:'';
    display:inline-block;
    width:0;
    height:0;
    position:relative;
    top:1px;
    margin-left:4px;
    border-left:3px solid transparent;
    border-right:3px solid transparent;
    border-top:4px solid var(--yellow);
    transform:rotate(-45deg);
    vertical-align:baseline;
}
.nav-contact {
    padding:19px 23px;
    background:var(--yellow);
    color:var(--ink);
    transition:background .25s,color .25s;
}
.nav-contact:hover,.nav-contact:focus-visible {
    background:#fff;
    color:var(--ink);
}
.nav-contact:active {
    background:var(--yellow);
    color:var(--ink);
}
.nav-contact span {
    margin-left:20px;
}
.menu-toggle {
    display:none;
}
.hero {
    height:clamp(610px,64vw,920px);
    min-height:610px;
    position:relative;
    overflow:hidden;
    background:#1c2820;
    color:white;
    padding:clamp(150px,17vw,240px) var(--pad) 0;
}
.hero {
    background-image:url('assets/images/hero-industry.jpg');
}
.hero,
.projects,
.offer,
.contact,
.site-footer {
    background-attachment:fixed;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
}
.hero::after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,#111d1770,#101b1620),linear-gradient(0deg,#101611b3,#10161115 70%);
}
.hero::before {
    content:'';
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    margin:0 var(--pad);
    border-left:1px solid #ffffff28;
    border-right:1px solid #ffffff28;
    background:linear-gradient(90deg, transparent calc(50% - .5px), #ffffff28 calc(50% - .5px), #ffffff28 calc(50% + .5px), transparent calc(50% + .5px));
}
.hero-copy {
    position:relative;
    z-index:2;
    width:75%;
}
.hero h1 {
    font-size:clamp(60px,7.5vw,112px);
    font-weight:600;
    line-height:1.02;
    letter-spacing:-.035em;
    text-transform:uppercase;
    margin:0 0 28px;
}
.hero-copy>p {
    font-size:14px;
    text-transform:uppercase;
    line-height:1.5;
}
.hero .button {
    background:var(--yellow);
    color:var(--ink);
    margin-top:38px;
}
.hero .button:hover,.hero .button:focus-visible {
    background:#fff;
    color:var(--ink);
}
.hero .button:active {
    background:var(--yellow);
    color:var(--ink);
}
.hero-stat {
    position:absolute;
    right:var(--pad);
    top:45%;
    z-index:3;
    background:var(--yellow);
    color:var(--ink);
    width:28%;
    max-width:380px;
    padding:24px 28px;
    min-height:185px;
}
.hero-stat strong {
    display:block;
    font-size:clamp(60px,6.5vw,100px);
    line-height:1;
    font-weight:700;
    letter-spacing:-3px;
    margin-bottom:30px;
}
.hero-stat>span {
    display:block;
    font-size:15px;
    text-transform:uppercase;
    line-height:1.3;
}
.hero-stat i {
    position:absolute;
    right:0;
    bottom:0;
    background:var(--ink);
    width:42px;
    height:42px;
}
.hero-stat i::before {
    content:'';
    position:absolute;
    right:42px;
    bottom:42px;
    background:var(--ink);
    width:24px;
    height:24px;
}
.hero-wordmark {
    position:absolute;
    bottom:-18px;
    right:0;
    z-index:2;
    font-size:clamp(140px,18vw,285px);
    font-weight:700;
    color:#ffffff3d;
    line-height:.85;
    letter-spacing:-.06em;
}
.feature-strip {
    position:relative;
    z-index:4;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    align-items:start;
    margin:-110px var(--pad) 0;
    background:transparent;
}
.feature-strip article {
    background:white;
    border:1px solid var(--line);
    border-right:0;
    padding:28px 25px;
    min-height:260px;
    transition:background .3s ease,color .3s ease,border-color .3s ease;
}
.feature-strip article:hover {
    background:var(--yellow);
    border-color:var(--yellow);
    color:var(--ink);
}
.feature-strip article h3,.feature-strip article p {
    transition:color .3s ease;
}
.feature-strip article:hover p {
    color:var(--ink);
}
.feature-strip article.will-reveal {
    transition:opacity .7s ease,transform .7s ease,background .3s ease,color .3s ease,border-color .3s ease;
}
.feature-strip article:nth-child(3),.feature-photo {
    margin-top:110px;
}
.feature-strip article>span {
    font-size:15px;
    font-weight:500;
}
.feature-strip h3 {
    font-size:21px;
    line-height:1.2;
    letter-spacing:-.025em;
    margin:25px 0 16px;
}
.feature-strip p {
    font-size:14px;
    color:var(--muted);
    line-height:1.4;
}
.feature-photo {
    position:relative;
    min-height:260px;
    overflow:hidden;
    color:white;
    align-self:stretch;
}
.feature-photo img {
    position:absolute;
    inset:0;
    height:100%;
    width:100%;
    object-fit:cover;
    transition:transform .6s;
}
.feature-photo::after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,#000b,transparent 80%);
}
.feature-photo:hover img {
    transform:scale(1.05);
}
.feature-photo h3 {
    position:absolute;
    z-index:1;
    bottom:26px;
    left:25px;
    margin:0;
}
.feature-photo>span {
    position:absolute;
    bottom:0;
    right:0;
    z-index:2;
    background:var(--yellow);
    padding:13px 17px;
    color:var(--ink);
}
.about {
    position:relative;
    padding-top:80px;
    padding-bottom:30px;
}
.section-watermark {
    position:absolute;
    top:-130px;
    left:0;
    font-size:clamp(130px,16vw,245px);
    line-height:1;
    font-weight:700;
    letter-spacing:-8px;
    color:#e9eae7;
    z-index:0;
    pointer-events:none;
}
.about-grid {
    position:relative;
    display:grid;
    grid-template-columns:.82fr 1.1fr;
    gap:5vw;
    align-items:center;
}
.about-image {
    position:relative;
    margin-right:0;
}
.about-image>img {
    width:100%;
    height:auto;
    aspect-ratio:540/597;
    object-fit:cover;
}
.about-image::after,.testimonial-photo::after {
    content:'';
    position:absolute;
    top:0;
    right:0;
    width:38%;
    height:32%;
    background:url('assets/images/h1-vector02.svg') top right/contain no-repeat;
    pointer-events:none;
}
.about-image::before {
    content:'';
    position:absolute;
    bottom:12%;
    left:12%;
    width:34px;
    height:34px;
    background:var(--paper);
}
.image-stamp {
    position:absolute;
    right:-22px;
    bottom:-60px;
    background:var(--yellow);
    width:205px;
    height:180px;
    padding:22px 25px;
    text-transform:uppercase;
    font-size:14px;
    line-height:1.3;
    z-index:1;
}
.image-stamp strong {
    font-size:57px;
    display:block;
    line-height:1;
    margin-bottom:28px;
    letter-spacing:-2px;
    font-weight:600;
}
.image-stamp i {
    position:absolute;
    bottom:0;
    right:0;
    width:34px;
    height:34px;
    background:var(--paper);
}
.image-stamp i::before {
    content:'';
    position:absolute;
    bottom:34px;
    right:34px;
    width:20px;
    height:20px;
    background:var(--paper);
}
.about-copy {
    position:relative;
    z-index:1;
}
.about-copy h2 {
    font-size:clamp(34px,4.5vw,65px);
    margin-bottom:30px;
}
.about-copy .lead {
    font-size:17px;
    line-height:1.4;
    font-weight:500;
    color:#575c58;
    margin-bottom:22px;
}
.about-copy>p:not(.eyebrow):not(.lead) {
    font-size:14px;
    color:var(--muted);
    line-height:1.5;
}
.about-points,.plus-list {
    list-style:none;
    padding:0;
    margin:25px 0 0;
    font-size:13px;
    font-weight:500;
    line-height:1.7;
}
.about-points li::before,.plus-list li::before {
    content:'+';
    margin-right:12px;
}
.about-illustration {
    position:absolute;
    right:0;
    bottom:-65px;
    width:34%;
    opacity:.6;
    pointer-events:none;
}
.ticker {
    overflow:hidden;
    padding:65px 0 60px;
}
.ticker-track {
    width:max-content;
    display:flex;
    font-size:clamp(45px,6.5vw,100px);
    font-weight:700;
    line-height:1;
    letter-spacing:-2px;
    color:#dedfdd;
    animation:marquee 35s linear infinite;
}
.ticker-line {
    white-space:nowrap;
    padding-right:20px;
}
.ticker-word {
    display:inline-block;
    transition:color .3s ease;
}
.ticker-word:hover {
    color:var(--muted);
}
.ticker:hover .ticker-track {
    animation-play-state:paused;
}
.section-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
    margin-bottom:55px;
}
.section-heading>div {
    flex:1;
}
.heading-description {
    max-width:48%;
    text-align:right;
    font-size:15px;
}
.heading-description .button {
    margin-top:25px;
}
.services {
    background:#484e4c;
    color:white;
    padding-bottom:100px;
}
.service-stack {
    position:relative;
    isolation:isolate;
    min-height:420px;
}
.service-card {
    position:absolute;
    inset:0;
    display:grid;
    grid-template-columns:46% 54%;
    background:#fff;
    color:var(--ink);
    height:420px;
    margin:0;
    box-shadow:0 10px 0 -2px #ffffff60, 0 20px 0 -4px #ffffff30;
    overflow:hidden;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:none;
    transition:opacity .3s ease;
    z-index:1;
}
.service-card.is-active {
    display:grid;
    position:relative;
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    transform:none;
    z-index:5;
    transition-delay:0s;
}
.service-controls {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:16px;
    margin-top:26px;
    position:relative;
    z-index:2;
}
.service-controls button {
    width:44px;
    height:44px;
    border:1px solid #ffffff70;
    background:transparent;
    color:#fff;
    font-size:20px;
    transition:background .25s,color .25s,border-color .25s;
}
.service-controls button:hover,
.service-controls button:focus-visible {
    background:var(--yellow);
    color:var(--ink);
}
.service-controls span {
    min-width:54px;
    text-align:center;
    font-size:12px;
}
.service-card:last-child {
    margin-bottom:0;
}
.service-copy {
    padding:35px;
}
.service-number {
    display:block;
    font-size:13px;
    border-bottom:1px solid var(--line);
    padding-bottom:17px;
    margin-bottom:30px;
}
.service-copy h3 {
    font-size:25px;
    line-height:1.1;
}
.service-copy .plus-list {
    margin:38px 0 25px;
}
.service-copy>p {
    font-size:14px;
    color:var(--muted);
    max-width:400px;
}
.service-copy .text-link {
    margin-top:28px;
}
.service-card>img {
    height:100%;
    width:100%;
    object-fit:cover;
    min-height:420px;
}
.projects {
    color:white;
    background-image:url('assets/images/h1-bg04.jpg');
    padding-top:90px;
    position:relative;
}
.projects .section-heading {
    position:relative;
    z-index:2;
    min-height:220px;
    align-items:flex-start;
    max-width:55%;
    margin-bottom:30px;
}
.project-illustration {
    position:absolute;
    right:0;
    top:-40px;
    width:44%;
    max-height:390px;
    object-fit:contain;
    pointer-events:none;
    z-index:1;
}
.project-grid {
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:25px;
}
.project-card {
    display:block;
    background:white;
    color:var(--ink);
}
.image-zoom {
    position:relative;
    overflow:hidden;
}
.image-zoom>img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s;
}
.project-card:hover .image-zoom>img,.team-card:hover .image-zoom>img,.news-card:hover .image-zoom>img {
    transform:scale(1.04);
}
.project-card .image-zoom {
    height:clamp(240px,25vw,390px);
}
.project-category {
    position:absolute;
    bottom:0;
    left:0;
    background:white;
    font-size:10px;
    text-transform:uppercase;
    padding:5px 9px;
    letter-spacing:.5px;
}
.project-caption {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    padding:20px;
}
.project-caption h3 {
    font-size:22px;
    line-height:1.15;
}
.project-caption>span {
    background:#f7f7f5;
    padding:12px;
    flex-shrink:0;
}
.centered {
    display:flex;
    flex-direction:column;
    text-align:center;
    gap:0;
    margin-bottom:35px;
}
.centered .eyebrow {
    margin-bottom:20px;
}
.team-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:32px;
}
.team-card {
    padding-bottom:25px;
    border-bottom:1px solid #d4d7d3;
}
.team-card .image-zoom {
    aspect-ratio:1/1;
    height:auto;
}
.team-card h3 {
    font-size:21px;
    margin:20px 0 10px;
}
.team-card p {
    font-size:13px;
    color:var(--muted);
}
.offer {
    background-image:url('assets/images/h1-bg05.jpg');
    color:white;
    min-height:500px;
    overflow:hidden;
}
.offer>div {
    position:relative;
    z-index:2;
}
.offer h2 {
    max-width:700px;
}
.offer-grid {
    display:flex;
    max-width:780px;
    gap:40px;
    margin:40px 0 20px;
}
.offer-grid article {
    display:flex;
    flex:1;
    gap:18px;
}
.offer-grid h3 {
    font-size:17px;
    margin:4px 0 12px;
}
.offer-grid p {
    font-size:14px;
}
.offer-icon {
    flex-shrink:0;
    display:grid;
    place-content:center;
    width:62px;
    height:62px;
    background:#ffffff20;
    color:var(--yellow);
    font-size:35px;
}
.offer-wordmark {
    position:absolute;
    bottom:-25px;
    right:0;
    color:#ffffff50;
    line-height:1;
    font-size:clamp(110px,17vw,250px);
    font-weight:700;
    letter-spacing:-7px;
    pointer-events:none;
}
.testimonials {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:5vw;
    align-items:start;
}
.testimonial-photo {
    position:relative;
}
.testimonial-photo>img {
    width:100%;
    aspect-ratio:640/660;
    object-fit:cover;
}
.testimonial-content h2 {
    margin-bottom:35px;
}
.quote-area {
    position:relative;
    padding-left:60px;
    background:url('assets/images/h1-bg06.png') center/contain no-repeat;
}
.quote-mark {
    position:absolute;
    left:0;
    top:-20px;
    font-size:95px;
    color:var(--yellow);
    font-weight:700;
    line-height:1;
}
.quote-slide {
    margin:0;
    animation:fade-in .4s;
}
.quote-slide[hidden] {
    display:none;
}
.quote-slide blockquote {
    font-size:clamp(19px,2vw,27px);
    line-height:1.2;
    margin:0;
    font-weight:500;
}
.quote-slide figcaption {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    margin-top:30px;
}
.quote-slide figcaption>img {
    width:44px;
    height:44px;
    border-radius:50%;
    object-fit:cover;
}
.quote-slide figcaption strong {
    display:block;
    text-transform:uppercase;
    font-size:17px;
    font-weight:500;
}
.quote-slide figcaption span {
    display:block;
    color:var(--muted);
    font-size:12px;
    margin-top:5px;
}
.quote-controls {
    display:flex;
    align-items:center;
    gap:18px;
    margin-top:30px;
}
.quote-controls button {
    background:transparent;
    border:1px solid var(--line);
    padding:8px 13px;
    transition:background .25s,color .25s,border-color .25s;
}
.quote-controls button:hover {
    background:var(--yellow);
}
.quote-count {
    font-size:11px;
}
.contact {
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:7vw;
    background-image:linear-gradient(#17232425,#172d3030),url('assets/images/h1-banner6.jpg');
    color:white;
}
.contact-copy {
    display:flex;
    flex-direction:column;
}
.contact-details {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    margin-top:auto;
    padding-top:65px;
}
.contact-details h3 {
    font-size:17px;
    margin-bottom:25px;
}
.contact-details p {
    font-size:14px;
}
.contact-details a {
    color:var(--yellow);
    font-size:17px;
    font-weight:600;
}
.contact-form {
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:25px 20px;
    align-content:start;
}
.contact-form label {
    display:block;
    text-transform:uppercase;
    font-size:16px;
    font-weight:500;
}
.contact-form input,.contact-form textarea,.contact-form select {
    display:block;
    margin-top:10px;
    width:100%;
    border:1px solid #ffffff10;
    border-radius:0;
    background:#ffffff22;
    color:white;
    padding:16px;
    font-size:14px;
    outline-offset:2px;
}
.contact-form option {
    color:var(--ink);
    background:white;
}
.contact-form input::placeholder,.contact-form textarea::placeholder {
    color:#e1e0db;
    opacity:1;
}
.form-wide {
    grid-column:1/-1;
}
.contact-form .button {
    margin:0;
}
.form-note {
    font-size:12px;
    line-height:1.5;
    color:#e2e4df;
    margin-top:12px;
}
.contact-form textarea {
    resize:vertical;
    min-height:140px;
}
.news-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:44px;
}
.news-card .image-zoom {
    aspect-ratio:1.3;
    height:auto;
}
.news-card .eyebrow {
    font-size:10px;
    margin:18px 0 12px;
    letter-spacing:0;
}
.news-card h3 {
    font-size:22px;
    line-height:1.2;
}
.news-card .text-link {
    margin-top:26px;
}
.site-footer {
    background-image:linear-gradient(#13232680,#111f27a1),url('assets/images/footer-bg.jpg');
    color:white;
    padding:75px var(--pad) 60px;
    overflow:hidden;
}
.footer-wordmark {
    font-size:clamp(90px,23vw,360px);
    line-height:1;
    letter-spacing:-.07em;
    font-weight:600;
    text-align:center;
    white-space:nowrap;
    margin-bottom:-.30em;
}
.footer-panel {
    position:relative;
    background:linear-gradient(180deg,#1d252d80 0,#1d252ddd 90px),linear-gradient(110deg,#151e2320,#46363250);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    border:1px solid #ffffff15;
}
.footer-top {
    display:grid;
    grid-template-columns:.8fr 1.3fr 1fr;
    gap:50px;
    padding:65px 30px 75px;
}
.footer-company p {
    font-size:15px;
    margin:25px 0 16px;
}
.footer-company>a:last-child {
    color:var(--yellow);
    font-weight:500;
}
.footer-top h3 {
    font-size:22px;
    line-height:1.15;
    margin-bottom:25px;
}
.footer-links {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px 25px;
    font-size:15px;
}
.footer-links a:hover {
    color:var(--yellow);
}
.footer-subscribe p {
    font-size:14px;
    line-height:1.5;
    margin-bottom:25px;
}
.feed-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid #ffffff40;
    font-size:14px;
    padding:0 0 10px;
}
.feed-link span {
    background:var(--yellow);
    color:var(--ink);
    padding:10px 17px;
}
.footer-bottom {
    display:flex;
    justify-content:center;
    gap:30px;
    border-top:1px solid #ffffff10;
    padding:28px;
    font-size:13px;
}
.footer-bottom a {
    color:var(--yellow);
}
.screen-reader-text {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
}
.screen-reader-text:focus {
    clip:auto;
    width:auto;
    height:auto;
    z-index:100;
    top:10px;
    left:10px;
    padding:15px;
    background:white;
    color:black;
}
.will-reveal {
    opacity:0;
    transform:translateY(22px);
    transition:opacity .7s ease,transform .7s ease;
}
.will-reveal.is-visible {
    opacity:1;
    transform:none;
}
body:not(.home) main {
    max-width:1000px;
    padding:70px var(--pad);
    margin:auto;
}
body:not(.home) article h1 {
    font-size:clamp(40px,6vw,70px);
    margin-bottom:30px;
}
body:not(.home) article p {
    margin:20px 0;
}
body:not(.home) article a {
    text-decoration:underline;
}
.home main {
    overflow:clip;
}
@keyframes marquee {
    to {
        transform:translateX(-50%);
    }
}
@keyframes hero-zoom {
    from {
        transform:scale(1.07);
    }
    to {
        transform:scale(1);
    }
}
@keyframes fade-in {
    from {
        opacity:.3;
    }
    to {
        opacity:1;
    }
}
@media(min-width:1600px) {
    .section {
        padding-top:110px;
        padding-bottom:110px;
    }
    .hero-copy {
        max-width:1300px;
    }
    .service-card {
        min-height:520px;
    }
    .service-card>img {
        min-height:520px;
    }
    .service-copy {
        padding:50px;
    }
    .feature-strip article,.feature-photo {
        min-height:300px;
    }
}
@media(max-width:1100px) {
    .primary-nav {
        gap:18px;
    }
    .brand {
        font-size:30px;
    }
    .brand-symbol {
        font-size:34px;
    }
    .site-header {
        padding-top:16px;
        padding-bottom:16px;
    }
    .section {
        padding-top:65px;
        padding-bottom:65px;
    }
    .feature-strip article {
        padding:25px 23px;
        min-height:250px;
    }
    .feature-strip h3 {
        font-size:19px;
    }
    .feature-strip p {
        font-size:13px;
    }
    .feature-photo {
        min-height:250px;
    }
    .service-copy {
        padding:30px;
    }
    .service-copy h3 {
        font-size:23px;
    }
    .service-card {
        min-height:380px;
    }
    .service-card>img {
        min-height:380px;
    }
    .quote-area {
        padding-left:50px;
    }
    .footer-top {
        gap:30px;
    }
    .about {
        padding-top:60px;
        padding-bottom:20px;
    }
    .about-copy h2 {
        font-size:42px;
    }
    .about-copy .lead {
        font-size:16px;
    }
    .about-copy>p:not(.eyebrow):not(.lead) {
        font-size:13px;
    }
    .image-stamp {
        width:185px;
        height:165px;
    }
    .ticker {
        padding-top:70px;
        padding-bottom:65px;
    }
    .contact {
        gap:40px;
    }
}
@media(max-width:900px) {
    .menu-toggle {
        display:flex;
        gap:16px;
        align-items:center;
        background:transparent;
        color:inherit;
        border:1px solid #888;
        padding:8px 12px;
        font-size:13px;
    }
    .primary-nav {
        display:none;
        position:absolute;
        top:100%;
        left:0;
        right:0;
        flex-direction:column;
        align-items:stretch;
        background:#222c26;
        color:white;
        padding:22px var(--pad);
        border-bottom:1px solid #ffffff30;
    }
    .primary-nav.is-open {
        display:flex;
    }
    .primary-nav>a {
        padding:10px;
    }
    .hero h1 {
        font-size:8vw;
    }
    .hero-stat {
        top:45%;
        width:28%;
        padding:22px;
        min-height:165px;
    }
    .hero-stat strong {
        font-size:60px;
    }
    .hero-stat>span {
        font-size:12px;
    }
    .feature-strip article {
        padding:20px 17px;
        min-height:265px;
    }
    .feature-photo {
        min-height:265px;
    }
    .feature-strip h3 {
        font-size:17px;
    }
    .feature-photo h3 {
        left:16px;
    }
    .about-grid {
        gap:40px;
        grid-template-columns:.9fr 1.1fr;
    }
    .about-copy h2 {
        font-size:34px;
    }
    .about-copy .lead {
        font-size:14px;
    }
    .image-stamp {
        width:150px;
        height:140px;
        padding:20px;
        font-size:12px;
    }
    .image-stamp strong {
        font-size:42px;
        margin-bottom:18px;
    }
    .service-copy .plus-list {
        margin-top:25px;
    }
    .service-copy {
        padding:24px;
    }
    .service-card {
        min-height:420px;
    }
    .service-card>img {
        min-height:420px;
    }
    .project-caption h3 {
        font-size:18px;
    }
    .team-grid {
        gap:24px;
    }
    .team-card h3 {
        font-size:17px;
    }
    .testimonials {
        gap:30px;
    }
    .testimonial-content h2 {
        font-size:33px;
    }
    .quote-area {
        padding-left:40px;
    }
    .quote-slide blockquote {
        font-size:19px;
    }
    .contact-details {
        grid-template-columns:1fr;
        gap:25px;
    }
    .contact-details h3 {
        margin-bottom:10px;
    }
    .contact-form {
        gap:20px 15px;
    }
    .contact-form label {
        font-size:13px;
    }
    .contact-form input,.contact-form select {
        padding:13px;
    }
    .news-grid {
        gap:25px;
    }
    .news-card h3 {
        font-size:18px;
    }
    .footer-top {
        grid-template-columns:1fr 1fr;
        gap:35px;
    }
    .footer-subscribe {
        grid-column:1/-1;
        max-width:430px;
    }
}
@media(max-width:767px) {
    :root {
        --gutter:15px;
    }
}
@media(max-width:600px) {
    h2 {
        font-size:34px;
    }
    .section {
        padding-top:55px;
        padding-bottom:55px;
    }
    .hero {
        height:660px;
        height:600px;
        min-height:0;
        padding-top:145px;
    }
    .hero-copy {
        width:100%;
    }
    .hero h1 {
        font-size:clamp(39px,9vw,55px);
        margin-bottom:25px;
    }
    .hero-copy>p {
        font-size:11px;
    }
    .hero .button {
        margin-top:25px;
        padding:17px 20px;
    }
    .hero-stat {
        top:auto;
        bottom:78px;
        right:22px;
        width:165px;
        min-height:135px;
        padding:18px;
    }
    .hero-stat strong {
        font-size:47px;
        margin-bottom:15px;
    }
    .hero-stat>span {
        font-size:11px;
    }
    .hero-stat i {
        width:25px;
        height:25px;
    }
    .hero-stat i::before {
        right:25px;
        bottom:25px;
        width:16px;
        height:16px;
    }
    .hero-wordmark {
        font-size:90px;
        bottom:0;
    }
    .feature-strip {
        margin:0 var(--pad);
        grid-template-columns:repeat(2,1fr);
    }
    .feature-strip article:nth-child(3),.feature-photo {
        margin-top:0;
    }
    .feature-strip article {
        min-height:265px;
        padding:22px 16px;
    }
    .feature-photo {
        min-height:265px;
    }
    .feature-strip article:nth-child(2) {
        border-right:1px solid var(--line);
    }
    .feature-strip h3 {
        font-size:17px;
    }
    .feature-strip p {
        font-size:12px;
    }
    .feature-photo h3 {
        bottom:50px;
    }
    .section-watermark {
        display:none;
    }
    .about-grid {
        grid-template-columns:1fr;
        gap:90px;
    }
    .about-image {
        margin-right:20px;
    }
    .about-image>img {
        max-height:430px;
        object-position:center;
    }
    .image-stamp {
        right:-20px;
        bottom:-45px;
        width:170px;
        height:150px;
    }
    .image-stamp strong {
        font-size:48px;
    }
    .about-copy h2 {
        font-size:34px;
    }
    .about-copy .lead {
        font-size:16px;
    }
    .about-illustration {
        width:65%;
        bottom:0;
        opacity:.3;
    }
    .about {
        padding-bottom:20px;
    }
    .ticker {
        padding:35px 0 45px;
    }
    .ticker-track {
        font-size:42px;
    }
    .section-heading {
        flex-direction:column;
        align-items:flex-start;
        gap:25px;
        margin-bottom:35px;
    }
    .heading-description {
        max-width:100%;
        text-align:left;
        font-size:14px;
    }
    .section-heading .button {
        margin-top:20px;
    }
    .services .section-heading h2 br:last-child {
        display:none;
    }
    .service-stack {
        padding-bottom:15px;
    }
    .service-card {
        grid-template-columns:1fr;
        min-height:0;
        margin:0;
    }
    .service-copy {
        padding:25px;
    }
    .service-copy h3 {
        font-size:24px;
    }
    .service-number {
        margin-bottom:22px;
    }
    .service-copy .plus-list {
        margin:24px 0 20px;
    }
    .service-card>img {
        min-height:0;
        height:300px;
        grid-row:2;
    }
    .service-stack {
        min-height:0;
    }
    .project-illustration {
        width:42%;
        top:15px;
        opacity:.75;
    }
    .projects .section-heading {
        max-width:100%;
        min-height:0;
    }
    .projects .section-heading h2 {
        font-size:30px;
        max-width:80%;
    }
    .project-grid {
        grid-template-columns:1fr;
        gap:25px;
    }
    .project-card .image-zoom {
        height:230px;
    }
    .project-caption h3 {
        font-size:20px;
    }
    .centered {
        align-items:center;
        gap:0;
    }
    .team-grid {
        grid-template-columns:1fr;
        gap:30px;
    }
    .team-card .image-zoom {
        aspect-ratio:1.05;
        max-height:420px;
    }
    .team-card h3 {
        font-size:22px;
    }
    .offer {
        min-height:570px;
    }
    .offer-grid {
        flex-direction:column;
        gap:25px;
        margin-top:30px;
    }
    .offer-grid article {
        max-width:330px;
    }
    .offer h2 {
        font-size:33px;
    }
    .offer-wordmark {
        font-size:84px;
        letter-spacing:-3px;
        bottom:0;
    }
    .testimonials {
        grid-template-columns:1fr;
        gap:40px;
    }
    .testimonial-photo>img {
        max-height:420px;
        object-position:top;
    }
    .testimonial-content h2 {
        font-size:34px;
    }
    .testimonial-content h2 br {
        display:none;
    }
    .quote-area {
        padding-left:40px;
    }
    .quote-slide blockquote {
        font-size:22px;
    }
    .contact {
        grid-template-columns:1fr;
        gap:35px;
    }
    .contact h2 br {
        display:none;
    }
    .contact-details {
        grid-template-columns:1fr 1fr;
        padding-top:35px;
        gap:20px;
    }
    .contact-details p {
        font-size:12px;
    }
    .contact-details a {
        font-size:14px;
    }
    .contact-form {
        grid-template-columns:1fr;
    }
    .form-wide {
        grid-column:1;
    }
    .contact-form input,.contact-form select {
        font-size:16px;
    }
    .news-grid {
        grid-template-columns:1fr;
        gap:35px;
    }
    .news-card .image-zoom {
        height:250px;
        aspect-ratio:auto;
    }
    .news-card h3 {
        font-size:22px;
    }
    .footer-wordmark {
        font-size:22vw;
        letter-spacing:-.07em;
    }
    .site-footer {
        padding:45px var(--pad) 25px;
    }
    .footer-top {
        grid-template-columns:1fr;
        gap:35px;
        padding:30px 24px 40px;
    }
    .footer-subscribe {
        grid-column:auto;
    }
    .footer-top h3 {
        font-size:22px;
    }
    .footer-bottom {
        padding:22px 16px;
        font-size:12px;
        gap:15px;
        justify-content:space-between;
    }
}
@media(prefers-reduced-motion:reduce) {
    .hero,
    .projects,
    .offer,
    .contact,
    .site-footer {
        background-attachment:scroll;
    }
    html {
        scroll-behavior:auto;
    }
    *,*::before,*::after {
        animation:none!important;
        transition:none!important;
    }
    .will-reveal {
        opacity:1;
        transform:none;
    }
}
.reading-card summary { list-style: none; cursor: pointer; }
.reading-card summary::-webkit-details-marker { display: none; }
.reading-card summary:focus-visible { outline: 3px solid var(--yellow); outline-offset: 5px; }
.reading-content { margin-top: 20px; font-size: 14px; color: var(--muted); }

.contact-copy > .eyebrow { align-self: flex-start; }

/* Fluent Forms owns validation and submission; the theme supplies appearance. */
.contact-form--fluent { display: block; min-width: 0; }
.contact-form--fluent .fluentform { width: 100%; }
.contact-form--fluent .frm-fluent-form > fieldset {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 25px 20px;
    min-width: 0;
}
.contact-form--fluent .frm-fluent-form > fieldset > .ff-el-group { margin: 0; min-width: 0; }
.contact-form--fluent fieldset > .rfq-full,
.contact-form--fluent fieldset > .ff-el-group:has(textarea),
.contact-form--fluent fieldset > .ff_submit_btn_wrapper,
.contact-form--fluent fieldset > .ff-t-container,
.contact-form--fluent fieldset > .ff-el-group:has(.ff-el-form-check),
.contact-form--fluent fieldset > .ff-el-group:has(.cf-turnstile),
.contact-form--fluent fieldset > .ff-el-group:has(.g-recaptcha) { grid-column: 1 / -1; }
.contact-form--fluent .fluentform .ff-el-input--label { margin-bottom: 10px; }
.contact-form--fluent .fluentform .ff-el-input--label label { color: white; font-weight: 500; }
.contact-form--fluent .fluentform .ff-el-form-control {
    margin-top: 0;
    padding: 16px;
    border: 1px solid #ffffff30;
    border-radius: 0;
    background: #ffffff22;
    color: white;
    font: inherit;
    font-size: 14px;
    height: auto;
}
.contact-form--fluent .fluentform .ff-el-form-control:focus {
    border-color: var(--yellow);
    outline: 2px solid var(--yellow);
    outline-offset: 2px;
    box-shadow: none;
}
.contact-form--fluent input[type="hidden"] { display: none; }
.contact-form--fluent input[type="checkbox"],
.contact-form--fluent input[type="radio"] { display: inline-block; width: auto; padding: 0; margin: 0 8px 0 0; }
#contact .contact-form--fluent .fluentform .ff-btn-submit {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    padding: 17px 24px;
    background: var(--yellow);
    color: var(--ink);
    border: 0;
    border-radius: 0;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: background .25s,color .25s,border-color .25s;
}
.contact-form--fluent .fluentform .ff-btn-submit::after { content: '↗'; }
#contact .contact-form--fluent .fluentform .ff-btn-submit:hover,
#contact .contact-form--fluent .fluentform .ff-btn-submit:focus-visible { background: #fff; color: var(--ink); }
#contact .contact-form--fluent .fluentform .ff-btn-submit:active { background: var(--yellow); color: var(--ink); }
.contact-form--fluent .fluentform .ff-btn-submit:disabled { opacity: .65; cursor: wait; }
.contact-form--fluent .ff-el-is-error .text-danger,
.contact-form--fluent .ff-el-input--label.ff-el-is-required::after,
.contact-form--fluent .ff-el-input--label.ff-el-is-required label::after { color: #ffd3cc; }
.contact-form--fluent .ff-message-success,
.contact-form--fluent .ff-errors-in-stack:not(:empty) { background: #172324; color: white; padding: 18px; border: 1px solid var(--yellow); box-shadow: none; }
.contact-form--fluent .ff-message-success { margin-top: 20px; }
.contact-form--fluent .ff-errors-in-stack .error { color: #ffd3cc; }
.contact-form--fluent .fluentform .ff-el-form-control::placeholder,
.contact-form--fluent .fluentform .choices__input::placeholder { color: #e1e0db; opacity: 1; }
.contact-form--fluent .fluentform .choices__inner {
    background: #ffffff22;
    color: white;
    border: 1px solid #ffffff30;
    border-radius: 0;
    min-height: 55px;
    padding: 10px 12px;
}
.contact-form--fluent .fluentform .choices__input {
    display: inline-block;
    width: auto;
    max-width: 100%;
    min-height: 0;
    margin: 0;
    padding: 4px;
    background: transparent;
    color: white;
    border: 0;
}
.contact-form--fluent .fluentform .choices__list--dropdown { background: white; color: var(--ink); }
.contact-form--fluent .fluentform .choices__list--multiple .choices__item { background: var(--ink); color: white; border-color: #ffffff50; }
@media (max-width: 767px) {
    .contact-form--fluent .frm-fluent-form > fieldset { grid-template-columns: 1fr; gap: 20px; }
    .contact-form--fluent .fluentform .ff-el-form-control { font-size: 16px; }
}

/* Shared brand accent and company content. White keeps red surfaces readable. */
.brand-logo { display:block; width:185px; height:auto; }
.button.yellow,.button:active,.nav-contact,.nav-contact:active,.hero .button,.hero .button:active,
.hero-stat,.image-stamp,.feature-photo>span,.feature-strip article:hover,.feature-strip article:hover p,
.service-controls button:hover,.service-controls button:focus-visible,.feed-link span,
#contact .contact-form--fluent .fluentform .ff-btn-submit,
#contact .contact-form--fluent .fluentform .ff-btn-submit:active { color:#fff; }
.button.yellow:hover,.button.yellow:focus-visible,.nav-contact:hover,.nav-contact:focus-visible,
.hero .button:hover,.hero .button:focus-visible,
#contact .contact-form--fluent .fluentform .ff-btn-submit:hover,
#contact .contact-form--fluent .fluentform .ff-btn-submit:focus-visible { color:var(--ink); }
.feature-strip .company-values { margin-top:16px; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.image-stamp { height:auto; min-height:180px; }
.image-stamp strong { font-size:clamp(38px,4vw,54px); margin-bottom:18px; }
@media(max-width:1000px) { .brand-logo { width:150px; } .image-stamp { min-height:160px; font-size:11px; } }

/* Company marks replace the numeric section markers. */
.feature-strip .company-logo { display:block; width:84px; height:58px; object-fit:contain; object-position:left center; transition:filter .3s ease; }
.feature-strip article:hover .company-logo { filter:brightness(0) invert(1); }
.feature-strip article h3 { margin-top:20px; }
@media(max-width:1000px) { .feature-strip .company-logo { width:72px; height:50px; } }

/* Longer product-focused headline retains the hero's clear hierarchy. */
.hero #hero-title { font-size:clamp(40px,4.4vw,82px); line-height:1.06; }
@media(max-width:767px) { .hero #hero-title { font-size:clamp(32px,7.8vw,48px); } }
