/* Shared RF-wave theme: both routes, every section and interaction state. */
:root {
  color-scheme: dark;
  --wave: #38b6ff;
  --wave-rgb: 56, 182, 255;
  --accent: var(--wave);
  --ink: #06111e;
  --paper: #06111e;
  --surface: #0b1d30;
  --light: #f0f6fb;
  --gray: #b0c4d5;
  --line: rgba(var(--wave-rgb), .24);
}
body, .contact-page { background: var(--ink); color: var(--light); }
:is(a, button, input, select, textarea):focus-visible { outline-color: var(--wave); }
.skip-link { background: var(--wave); color: var(--ink); }
.site-header { background: var(--ink); border-bottom: 1px solid var(--line); }
.brand-logo { background: #e6f3fa; border: 1px solid var(--line); }
.site-header nav a:hover { color: var(--wave); }
.hero { background: var(--ink); }
.hero-photo { background-image: url('/assets/rf-towers-waves.webp'); background-position: center center; }
.hero-shade { background: linear-gradient(90deg, rgba(6,17,30,.76), rgba(6,17,30,.28) 45%, transparent 70%), linear-gradient(0deg, var(--ink), transparent 30%); }
h1, h2 { line-height: 1.04; letter-spacing: -.055em; }
.hero h1 { font-size: clamp(58px, 6.5vw, 100px); max-width: 760px; }
.hero h1 em { text-shadow: 0 0 42px rgba(var(--wave-rgb), .15); }
.hero-copy { color: #d6e5f1; max-width: 470px; }
.hero-bottom { color: var(--gray); }
.hero-bottom>a { color: var(--light); }
.hero-bottom>a span { color: var(--wave); }
.eyebrow { color: var(--wave); }
.button { border-radius: 999px; border-color: var(--wave); transition: transform .18s, box-shadow .18s; }
.button-wave, .button-wave:hover, .button-dark, .button-dark:hover { background: var(--wave); color: var(--ink); }
.button:hover { box-shadow: 0 0 28px rgba(var(--wave-rgb), .24); }
.service-band { background: var(--surface); border-block: 1px solid var(--line); }
.service-band .wrap { color: var(--wave); }
.service-band i { color: var(--wave); opacity: .4; }
.section h2 em, .partners h2 em, .cta-section h2 em { color: var(--wave); }
.section-note, .projects .section-note, .section-title-row>p, .partners .section-title-row>p { color: var(--gray); }
.service-item { border-top-color: var(--wave); }
.service-number, .service-item .service-detail { color: var(--wave); }
.service-heading svg { stroke: var(--wave); }
.service-item p, .approach-intro>p:not(.eyebrow), .steps p { color: var(--gray); }
.service-item .service-detail { font-size: 12px; letter-spacing: .5px; }
.projects { background: var(--surface); border-block: 1px solid var(--line); }
.project-list, .project-list .project-row { border-color: var(--line); }
.project-list .project-row>span:first-child { color: var(--wave); }
.project-list .project-row h3 { line-height: 1.25; }
.partners { background: radial-gradient(ellipse at 50% 55%, rgba(var(--wave-rgb), .08), transparent 65%), var(--ink); }
.partner-list { gap: 42px 30px; }
.partner-card, .partner-card-dark {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  gap: 18px; height: 100%; min-height: 0; padding: 8px; border: 0; border-radius: 32px;
  background: transparent; color: var(--light);
}
a.partner-card:hover { border: 0; box-shadow: none; }
.partner-visual {
  display: flex; align-items: center; justify-content: center;
  width: 100%; max-width: 236px; height: auto; aspect-ratio: 1; border-radius: 50%;
  background: #e6f3fa; border: 2px solid var(--wave); padding: 30px;
  box-shadow: 0 0 0 7px rgba(var(--wave-rgb), .04), 0 10px 32px rgba(0,0,0,.25);
  transition: transform .2s, box-shadow .2s;
}
.partner-card-dark .partner-visual { background: var(--surface); }
.partner-visual img { width: 100%; height: auto; max-width: 100%; max-height: 90px; object-fit: contain; }
.partner-visual-tall img { width: 100%; height: 100%; max-height: 160px; object-fit: contain; }
.partner-card:not(.partner-card-dark) .partner-visual img { mix-blend-mode: multiply; }
a.partner-card:hover .partner-visual { transform: translateY(-4px); box-shadow: 0 0 0 8px rgba(var(--wave-rgb), .08), 0 0 38px rgba(var(--wave-rgb), .22); }
.partner-caption { justify-content: center; gap: 8px; min-height: 38px; color: var(--light); text-align: center; font-size: 14px; line-height: 1.4; }
.partner-caption>span, .partner-card-dark .partner-caption>span { color: var(--wave); }
.approach-section { background: var(--surface); border-block: 1px solid var(--line); }
.steps li { border-color: var(--line); }
.steps li>span { color: var(--wave); font-size: 14px; }
.cta-section { padding-block: 88px; background: linear-gradient(90deg, rgba(6,17,30,.98), rgba(6,17,30,.78)), url('/assets/rf-towers-waves.webp') center 45% / cover; border-bottom: 1px solid var(--line); }
.footer-end, .contact-page .footer-end { color: var(--gray); }
.site-footer a:not(.brand):hover, .footer-contact strong { color: var(--wave); }
.contact-intro, .contact-person+.contact-person, .contact-link, .contact-page .site-footer { border-color: var(--line); }
.contact-intro>p:last-child, .person p, .contact-link>span, .contact-region { color: var(--gray); }
.contact-body { align-items: start; }
.contact-details { min-width: 0; }
.contact-link { grid-template-columns: minmax(0, 1fr) auto; }
.inquiry { min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 28px; color: var(--light); }
label>span, .form-note { color: var(--gray); }
.form-note { font-size: 14px; }
input, select, textarea { background: var(--ink); color: var(--light); border: 1px solid rgba(var(--wave-rgb), .36); border-radius: 10px; min-height: 48px; }
textarea::placeholder { color: var(--gray); opacity: 1; }
.email-fallback { border-color: var(--line); }
.text-button, .email-fallback>a { color: var(--wave); }
.prepared-email { font-size: 14px; }
@media(max-width:1150px) {
  .service-band .wrap { font-size: 12px; }
}
@media(max-width:760px) {
  .hero { min-height: 740px; }
  .hero-photo { background-position: 74% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(6,17,30,.9), rgba(6,17,30,.35)), linear-gradient(0deg, var(--ink), transparent 60%); }
  .hero-content { padding: 52px 0 115px; }
  .hero h1 { font-size: clamp(50px, 9vw, 70px); }
  .hero-bottom { gap: 16px; }
  .hero-bottom>a { white-space: normal; }
  .eyebrow { font-size: 11px; letter-spacing: 1.3px; }
  .section-note { font-size: 13px; }
  .service-band .wrap { font-size: 12px; }
  .service-item .service-detail { font-size: 12px; }
  .partner-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 14px; }
  .partner-card { padding: 4px; gap: 14px; min-height: 0; }
  .partner-visual { height: auto; padding: 24px; }
  .partner-visual img { max-height: 90px; }
  .partner-visual-tall img { max-height: 160px; }
  .cta-section { padding-block: 64px; }
  .contact-intro h1 { font-size: clamp(52px, 10vw, 76px); }
}
@media(max-width:480px) {
  .site-header .brand { padding-left: 0; }
  .brand-logo { display: none; }
  .site-header nav { gap: 16px; font-size: 14px; }
  .brand-name { font-size: 25px; }
  .hero { min-height: 720px; }
  .hero h1 { font-size: clamp(44px, 12.5vw, 59px); }
  .section h2 { font-size: clamp(36px, 9.5vw, 44px); }
  .partner-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
  .partner-card { padding: 4px; }
  .partner-visual { padding: 20px; }
  .partner-visual img { width: 100%; max-width: 100%; max-height: 60px; }
  .partner-visual-tall img { max-height: 110px; }
  .partner-caption { font-size: 14px; gap: 4px; align-items: flex-start; }
  .partner-caption>span { font-size: 17px; }
  .cta-section h2 { font-size: clamp(38px, 10.5vw, 46px); }
  .contact-intro h1 { font-size: clamp(43px, 12vw, 56px); }
  .inquiry { border-radius: 22px; }
}
@media(max-width:359px) {
  .header-inner { align-items: flex-start; padding-block: 20px; flex-direction: column; gap: 14px; }
  .site-header nav { width: 100%; justify-content: space-between; }
  .partner-list { grid-template-columns: 1fr; }
  .partner-visual { max-width: 218px; padding: 30px; }
  .partner-visual img { max-height: 90px; }
  .partner-visual-tall img { max-height: 150px; }
}
@media(prefers-reduced-motion:reduce) {
  .button, .partner-visual { transition: none; }
  .button:hover, a.partner-card:hover .partner-visual { transform: none; }
}
/* Fixed circular geometry keeps portrait logos inside their bubbles. */
.partner-visual { position: relative; display: block; overflow: hidden; padding: 0; }
.partner-visual img, .partner-visual-tall img {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: calc(100% - 56px); height: calc(100% - 56px); max-width: none; max-height: none;
  object-fit: contain;
}
@media(max-width:480px) {
  .partner-visual img, .partner-visual-tall img { width: calc(100% - 36px); height: calc(100% - 36px); }
}

/* Unnumbered sections, services, projects and process steps. */
.service-heading { justify-content: flex-end; }
.project-list .project-row { grid-template-columns: minmax(0, 1fr); gap: 0; }

/* Match project notes to the wave blue and keep section headings aligned. */
.projects .section-note { color: var(--wave); }
.section-top { align-items: baseline; }
.section-top > * { min-width: 0; }
@media(max-width:760px) {
  .section-top { flex-direction: column; align-items: flex-start; gap: 12px; }
  .section-top .section-note { max-width: none; font-size: 14px; }
}
