/* Shared geometry for every TecViva page and supplied component adaptation.
   Loaded last so component defaults use the same small, consistent radii. */
:root{
  --radius-control:8px;
  --radius-panel:12px;
  --radius-dialog:16px;
  --radius-detail:6px;
  --radius-circle:50%;
}

/* Buttons, navigation actions and form fields. */
button,
.button,
input,
select,
textarea,
.skip,
.navigation a,
.header-home,
.route-links a,
.service-chapters a{border-radius:var(--radius-control)}

/* Glass blocks, cards and photographic frames. */
.hero-glass,
.glass-card,
.service-card,
.project-card,
.team-member,
.pad-training,
.programme-item,
.service-detail,
.contact-item,
.contact-details,
.contact-form,
.feature-visual,
.motion-photo,
.team-initials,
.team-photo,
.map-frame,
.map-address,
.notice,
.empty-state,
.pad-training-art,
.pad-wheel-card,
.gallery-card,
.training-intro figure,
.training-audience,
.timeline-cover,
.timeline-chapter-copy,
.gallery-deck,
.gallery-shell,
.card-deck-carousel,
.training-shell,
.training-content,
.pad-fees .pad-first-month{border-radius:var(--radius-panel)}
.solutions-frame{border-radius:var(--radius-panel)}
.portfolio-hero{border-radius:var(--radius-panel)}
.solutions-marker{border-radius:var(--radius-circle)}
.solutions-line,.solutions-line i{border-radius:999px}

/* Media must follow their frames through parallax, rotation and dragging. */
.project-card,
.service-card,
.map-frame,
.feature-visual{overflow:hidden}
.project-art{border-radius:var(--radius-panel) var(--radius-panel) 0 0}
.service-card{border:1px solid var(--line)}
.service-grid{border:0;gap:18px}
.project-card .project-art{border-radius:var(--radius-panel) var(--radius-panel) 0 0}

/* Large sections and sticky panels retain their original layout and motion. */
.site-header,
.hero,
.page-hero,
.section,
.cta,
.service-panel,
.scroll-enabled .service-panel.can-pin:before,
.pad-experience,
.learning-timeline,
.training-intro,
.training-join{border-radius:var(--radius-panel)}
.bwf{border-radius:var(--radius-panel) var(--radius-panel) 0 0}
.project-gallery-dialog,
.training-dialog{border-radius:var(--radius-dialog)}

/* Small glass captions and badges. */
.motion-photo figcaption,
.project-art.has-photo .project-image-note,
.pad-training-art figcaption,
.training-intro figcaption,
.timeline-cover figcaption,
.service-count,
.bwf-tip{border-radius:var(--radius-detail)}
.bwf .bwf-motion{border-radius:var(--radius-control)}

/* Circular icon controls echo the circular brand symbol. */
.bwf .bwf-soc:not(.bwf-motion),
.gallery-arrow{border-radius:var(--radius-circle)}
.pad-wheel-controls button,
.timeline-controls button{width:40px;height:40px;border-radius:var(--radius-circle)}
.timeline-dot,
.timeline-enabled .timeline-dot{border-radius:var(--radius-circle)}

/* Rounded caps on progress lines and connecting stems. */
.top-progress,
.journey-track,
.journey-track i,
.chapter-progress,
.pad-wheel-progress,
.pad-wheel-progress i,
.timeline-line,
.timeline-line i,
.timeline-stem,
.timeline-enabled .timeline-stem,
.bwf-rule,
.bwf-label:after{border-radius:999px}

@media(max-width:900px){
  .navigation.open{border-radius:0 0 var(--radius-panel) var(--radius-panel)}
}
@media(max-width:600px){
  .pad-wheel-controls button{width:36px;height:36px}
}

/* Dedicated campaign entry, immediately beside Contactos. */
.navigation .nav-campaign.rainbow-button.rainbow-button{--rainbow-fill:#164fa9;--color-1:220 80% 55%;--color-2:203 90% 62%;--color-3:225 70% 65%;--color-4:190 70% 68%;--color-5:213 85% 68%;white-space:nowrap;padding:10px 15px}
@media(min-width:901px) and (max-width:1250px){.site-header{padding-inline:24px;gap:18px}.site-header .brand{min-width:140px}.navigation{gap:12px}.navigation a{font-size:12px}.navigation .nav-campaign.rainbow-button.rainbow-button,.navigation .nav-contact.rainbow-button.rainbow-button{padding-inline:12px;font-size:12px}}
@media(max-width:900px){.navigation .nav-campaign.rainbow-button.rainbow-button{margin-top:14px;text-align:center}}

@media(min-width:901px) and (max-width:1080px){.site-header{height:82px}.menu-toggle{display:block}.navigation{display:none;position:absolute;top:82px;left:0;right:0;padding:25px;background:#f6f7f8fa;backdrop-filter:blur(24px);border-bottom:1px solid var(--line);align-items:stretch;gap:0}.navigation.open{display:flex;flex-direction:column;max-height:calc(100svh - 82px);overflow:auto}.navigation a{padding:13px;font-size:16px}.navigation a[aria-current=page]:after{bottom:6px;right:auto;left:13px;width:25px}.navigation .nav-contact{margin-top:12px}.navigation .nav-campaign.rainbow-button.rainbow-button{margin-top:14px;text-align:center}}
.navigation .nav-campaign[aria-current=page]:after{display:none}
