/* Shared type scale for every page and both colour modes. */
:root{
    --font-family:Montserrat,Arial,sans-serif;
    --font-body:1rem;
    --font-small:.875rem;
    --font-h1:clamp(2.25rem,5vw,3.5rem);
    --font-h2:clamp(1.875rem,3.5vw,2.75rem);
    --font-h3:1.5rem;
    --font-h4:1.25rem;
}
html{font-size:100%;-webkit-text-size-adjust:100%}
body{font-family:var(--font-family);font-size:var(--font-body);font-weight:400;line-height:1.7}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{
    font-family:var(--font-family);font-weight:700;line-height:1.3;letter-spacing:-.02em;
    overflow-wrap:break-word;
}
h1,.h1,.page-header h1,.agency-hero h1,.fullscreen-hero h1{font-size:var(--font-h1);line-height:1.2}
h2,.h2,main .display-5,main .display-6,.agency-title{font-size:var(--font-h2);line-height:1.25}
h3,.h3,.agency-card h3,.solution-card h3,.process-step h3,.consultation-form h3{font-size:var(--font-h3)}
h4,.h4,h5,.h5,.footer h4,.industries-section h2,.growth-next-steps h3{font-size:var(--font-h4)}
h6,.h6{font-size:var(--font-body)}
p,address,.hero-copy>p,.fullscreen-intro p,.agency-card p,.solution-card p,.process-step p,
.about-copy p,.consultation-copy>p,.faq-list p,.growth-form-intro,.about-points li,
.growth-next-steps ol,.growth-deliverable strong,.footer p{
    font-size:var(--font-body);line-height:1.7;
}
.why-card h3{font-family:var(--font-family);font-size:var(--font-h4)!important;line-height:1.3}
.why-card p{font-family:var(--font-family);font-size:var(--font-body)!important;line-height:1.7}
small,.small,.eyebrow,.fullscreen-intro .eyebrow,.hero-note,.fullscreen-actions .hero-note,
.hero-foot,.tag-list span,.about-caption small,.solution-card small,.section-caption,
.process-step>span,.contact-direct small,.growth-deliverable small,.industry-strip span,
.form-text,.copyright,.footer .text-light{
    font-size:var(--font-small);line-height:1.6;
}
.eyebrow,.about-caption small,.solution-card small,.contact-direct small,.growth-deliverable small{letter-spacing:.08em}
.faq-list summary{font-size:var(--font-body);font-weight:600;line-height:1.6}
button,input,select,textarea,.btn,.form-control,.form-select{font-family:var(--font-family)}
.btn,.agency-button,.fullscreen-actions .agency-button,.card-link,.split-heading>a,
.service-tabs button,.footer .btn.btn-link{font-size:var(--font-body);line-height:1.5}
.btn,.agency-button,.card-link,.service-tabs button{font-weight:600}
.form-control,.form-select,.form-floating>label{font-size:var(--font-body)}
.form-floating>label{line-height:1.5}
/* Floating labels replace placeholders; theme colours must not reveal both. */
html .form-floating>.form-control::placeholder{color:transparent}
html[data-theme] .form-floating>.form-control::placeholder{color:transparent}
.form-floating>.form-control,.form-floating>.form-select,.phone-input-group>.phone-country-code{height:calc(4rem + 2px)}
.form-floating>label{max-width:100%;height:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),
.form-floating>.form-control:-webkit-autofill,.form-floating>.form-select{padding-top:1.75rem;padding-bottom:.625rem}
.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,
.form-floating>.form-control:-webkit-autofill~label,.form-floating>.form-select~label{
    transform:translateY(-.65rem) scale(.875);opacity:1;
}
.contact-direct a{font-size:var(--font-body);overflow-wrap:anywhere}
.about-caption{font-size:var(--font-h4);line-height:1.4}
.site-header .navbar .navbar-nav .nav-link,.site-header .dropdown-item,
.site-header .header-action .btn{font-size:.9375rem;font-weight:500;line-height:1.5}
.service-tabs{flex-wrap:wrap}
.card-link{gap:12px}
.card-link span,.status-dot{flex-shrink:0}
.footer p,.footer a{overflow-wrap:anywhere}
@media(min-width:992px) and (max-width:1199px){
    .site-header .navbar .navbar-nav{gap:12px}
    .site-header .navbar .navbar-nav .nav-link,.site-header .header-action .btn{font-size:var(--font-small)}
    .site-header .brand-window{width:145px}
    .site-header .navbar{grid-template-columns:minmax(145px,1fr) auto minmax(185px,1fr);column-gap:10px}
}
@media(max-width:991px){.site-header .navbar .navbar-nav .nav-link{font-size:var(--font-body)}}
@media(max-width:767px){
    .service-tabs button{padding:10px 14px}
    .fullscreen-actions .agency-button{padding:12px 16px;min-height:48px}
    .fullscreen-actions .button-row{gap:12px}
    .process-grid{grid-template-columns:1fr}
    .split-heading>a{white-space:normal}
}
