/* GRODAX REFRAME v0.7 — scoped layout and shared site chrome.
 * Figma desktop 36:71 (1980 / max 1200) and mobile 36:370 (390).
 * Editorial concept images are intentionally NOT embedded pending usage approval.
 */
:root { --rf-yellow:#FFE401; --rf-ink:#090A0D; --rf-paper:#F6F7F5; --rf-white:#FFFFFF; }
body { background:var(--rf-paper); font-family:Poppins, "Segoe UI", Arial, sans-serif; }
/* Apply the approved Poppins family to the shared header and mobile navigation. */
.site-header, .mobile-menu { font-family:Poppins, "Segoe UI", Arial, sans-serif; }
.site-header, .site-header.is-scrolled { position:sticky; top:0; left:auto; right:auto; z-index:80; color:var(--rf-ink); background:var(--rf-paper); border-bottom:1px solid rgba(9,10,13,.09); box-shadow:none; }
.site-header.is-scrolled { background:rgba(246,247,245,.96); backdrop-filter:blur(12px); box-shadow:0 6px 20px rgba(9,10,13,.09); }
.site-header .header-inner { width:min(calc(100% - 48px),1200px); height:114px; gap:28px; }
.site-header .logo { width:88px; height:88px; flex-basis:88px; color:var(--rf-ink); }
/* Original SVGs live in the existing theme; no text or CSS-mask logo substitution. */
.site-header .logo, .mobile-menu .logo { background:transparent; -webkit-mask:none; mask:none; text-indent:0; }
.site-header .logo img, .mobile-menu .logo img { display:block; width:100%; height:100%; object-fit:contain; }
.site-header nav { gap:30px; font-size:16px; font-weight:500; }
.site-header nav a:not(.header-cta)::after { background:var(--rf-yellow); }
.site-header .login { opacity:.85; font-size:13px; }
.site-header .header-cta { min-height:53px; padding:0 18px; background:var(--rf-ink); color:var(--rf-paper); font-size:15px; font-weight:600; }
.site-header nav .sub-menu { background:var(--rf-ink); }
.site-header nav .nav-item.active>a::after { transform:scaleX(0); }
.site-header a:focus-visible, .site-footer a:focus-visible, .rf-home a:focus-visible,
.menu-button:focus-visible,.menu-close:focus-visible { outline:3px solid var(--rf-yellow); outline-offset:4px; }
.mobile-menu { background:var(--rf-ink); }
.mobile-menu .logo { color:var(--rf-paper); width:68px; height:68px; flex-basis:68px; }
.menu-button { display:none; width:56px; height:50px; background:var(--rf-yellow); }
.menu-lines::before { width:23px; }
.rf-home { --rf-max:1200px; color:var(--rf-ink); background:var(--rf-paper); font-family:Poppins, "Segoe UI", Arial, sans-serif; }
.rf-home *, .rf-home *::before, .rf-home *::after { box-sizing:border-box; }
.rf-home .rf-container { width:min(calc(100% - 48px),var(--rf-max)); margin-inline:auto; }
.rf-home h1,.rf-home h2,.rf-home h3,.rf-home p { margin:0; letter-spacing:normal; }
.rf-home h1,.rf-home h2,.rf-home h3 { font-weight:800; }
.rf-home a { color:inherit; text-decoration:none; }
.rf-home .rf-kicker { font-size:14px; font-weight:600; line-height:1.6; text-transform:uppercase; letter-spacing:.025em; }
.rf-home .rf-kicker.is-yellow { color:var(--rf-yellow); }
.rf-home .rf-button { display:inline-flex; gap:20px; justify-content:space-between; align-items:center; min-height:70px; padding:0 22px; background:var(--rf-yellow); color:var(--rf-ink); font-weight:600; font-size:19px; line-height:1.3; }
.rf-home .rf-button::after { content:"↗"; font-size:25px; line-height:1; transition:transform .2s ease; }
.rf-home .rf-button:hover::after { transform:translate(3px,-3px); }
.rf-home .rf-photo-slot { display:grid; place-items:center; overflow:hidden; position:relative; background:linear-gradient(145deg,#d4d5d2,#e8e9e6); }
.rf-home .rf-photo-slot::before { content:""; position:absolute; inset:16px; border:1px solid rgba(9,10,13,.12); }
.rf-home .rf-photo-slot span { padding:20px; color:#434645; font-size:12px; text-align:center; line-height:1.4; }
.rf-home .rf-hero { min-height:954px; padding:54px 0 34px; background:var(--rf-paper); }
.rf-home .rf-hero .rf-container { display:grid; grid-template-columns:minmax(0,790px) minmax(0,410px); min-height:850px; }
.rf-home .rf-hero-copy { position:relative; z-index:1; padding:0 12px 0 0; display:flex; flex-direction:column; align-items:flex-start; }
.rf-home .rf-yellow-rule { width:60px; height:3px; margin:20px 0 56px; background:var(--rf-yellow); }
.rf-home .rf-hero h1 { font-size:clamp(75px,6.5vw,128px); line-height:1.04; letter-spacing:-.035em; max-width:790px; }
.rf-home .rf-hero .rf-lead { max-width:540px; margin-top:50px; font-size:24px; line-height:1.5; }
.rf-home .rf-hero .rf-button { min-width:282px; margin-top:95px; }
.rf-home .rf-hero .rf-caption { margin-top:34px; font-size:11px; font-weight:600; letter-spacing:.045em; }
.rf-home .rf-hero-media { position:relative; align-self:start; height:720px; }
.rf-home .rf-hero-media::before { content:""; position:absolute; top:30px; left:-18px; width:40px; height:595px; background:var(--rf-yellow); }
.rf-home .rf-hero-primary { position:absolute; top:68px; left:8px; right:0; height:571px; }
.rf-home .rf-hero-inset { position:absolute; left:-115px; bottom:-14px; width:265px; height:186px; border:8px solid var(--rf-paper); }
.rf-home .rf-hero-year { position:absolute; bottom:0; right:0; font-size:12px; }
/* The bottom divider spans the full viewport, outside the two-column hero grid. */
/* The divider row must not inherit the 850px min-height of the main hero grid. */
/* The Hero divider follows the centered content width, not the viewport. */
.rf-home .rf-hero > .rf-container:last-child { display:block; min-height:0; }
.rf-home .rf-hero-bottom { width:100%; border-top:1px solid rgba(9,10,13,.25); text-align:right; padding-top:14px; font-size:12px; }
.rf-home .rf-statement { background:var(--rf-ink); color:var(--rf-paper); min-height:375px; padding:50px 0 72px; }
.rf-home .rf-statement h2 { margin-top:50px; font-size:clamp(40px,3vw,58px); line-height:1.3; }
.rf-home .rf-services { padding:60px 0 110px; }
.rf-home .rf-services h2 { max-width:1100px; margin-top:24px; font-size:clamp(36px,3vw,56px); line-height:1.27; }
.rf-home .rf-services .rf-intro { margin-top:20px; font-size:19px; line-height:1.6; }
.rf-home .rf-service-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:25px 35px; padding-top:47px; margin-top:40px; border-top:1px solid var(--rf-ink); }
.rf-home .rf-service { grid-column:span 5; min-height:450px; display:flex; flex-direction:column; padding:38px; color:var(--rf-ink); background:var(--rf-paper); }
/* Figma: slim yellow left accent for the 03 / Intelligenz service tile. */
.rf-home .rf-service.is-intelligence { position:relative; }
.rf-home .rf-service.is-intelligence::before { content:""; position:absolute; top:28px; bottom:28px; left:0; width:4px; background:var(--rf-yellow); pointer-events:none; }
.rf-home .rf-service.is-wide { grid-column:span 7; }
.rf-home .rf-service.is-yellow { background:var(--rf-yellow); }
.rf-home .rf-service.is-dark { background:var(--rf-ink); color:var(--rf-paper); }
.rf-home .rf-service.is-dark .rf-kicker { color:var(--rf-yellow); }
.rf-home .rf-service h3 { margin:auto 0; font-size:clamp(34px,2.45vw,48px); line-height:1.25; }
.rf-home .rf-service .rf-service-copy { font-size:18px; line-height:1.55; }
.rf-home .rf-service.has-image { position:relative; overflow:hidden; padding-right:40%; }
.rf-home .rf-service.has-image .rf-photo-slot { position:absolute; top:0; bottom:0; right:0; width:40%; }
.rf-home .rf-service.has-image .rf-kicker,.rf-home .rf-service.has-image h3,.rf-home .rf-service.has-image .rf-service-copy { z-index:1; }
.rf-home .rf-concept-note { display:block; margin-top:26px; font-size:11px; font-weight:600; }
.rf-home .rf-voice { background:var(--rf-yellow); padding:75px 0 65px; }
.rf-home .rf-voice-layout { display:grid; grid-template-columns:minmax(0,650px) minmax(0,485px); justify-content:space-between; align-items:center; gap:40px; }
.rf-home .rf-voice h2 { margin-top:52px; font-size:clamp(56px,4vw,79px); line-height:1.15; letter-spacing:-.03em; }
.rf-home .rf-voice .rf-voice-lead { margin-top:45px; font-size:22px; line-height:1.45; font-weight:600; }
.rf-home .rf-voice .rf-voice-copy { max-width:565px; margin-top:22px; font-size:19px; line-height:1.55; }
.rf-home .rf-voice-media { position:relative; height:626px; }
.rf-home .rf-voice-media .rf-photo-slot { height:100%; }
.rf-home .rf-voice-tag { position:absolute; right:0; bottom:-18px; left:-150px; padding:28px 20px; background:var(--rf-ink); color:var(--rf-paper); text-align:center; font-size:16px; font-weight:600; }
.rf-home .rf-projects { padding:72px 0 80px; }
.rf-home .rf-projects h2 { font-size:clamp(40px,3.4vw,64px); line-height:1.25; }
.rf-home .rf-projects .rf-yellow-rule { margin:32px 0 55px; height:7px; width:80px; }
.rf-home .rf-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px 32px; }
.rf-home .rf-project { display:block; color:var(--rf-ink); }
.rf-home .rf-project .rf-photo-slot { width:100%; aspect-ratio:584 / 423; }
.rf-home .rf-project h3 { display:flex; justify-content:space-between; align-items:center; margin-top:17px; font-size:clamp(22px,1.8vw,34px); line-height:1.3; }
.rf-home .rf-project h3::after { content:"↗"; font-size:26px; font-weight:400; }
.rf-home .rf-project.is-placeholder { cursor:default; }
.rf-home .rf-cta { background:var(--rf-ink); color:var(--rf-paper); padding:85px 0 62px; }
.rf-home .rf-cta-layout { display:grid; grid-template-columns:minmax(0,830px) minmax(0,338px); justify-content:space-between; gap:40px; }
.rf-home .rf-cta h2 { margin-top:62px; font-size:clamp(48px,3.8vw,75px); line-height:1.2; }
.rf-home .rf-cta .rf-cta-copy { margin:52px 0 30px; font-size:22px; line-height:1.5; }
.rf-home .rf-cta .rf-photo-slot { height:492px; }
/* Shared Footer: suppress the WordPress block-gap on every page, independent of the preceding template. */
.wp-site-blocks > .site-footer.footer-v2 { margin-block-start:0!important; margin-top:0!important; }
.site-footer.footer-v2 { background:var(--rf-ink); color:var(--rf-paper); padding:67px 0 24px; font-family:Poppins, "Segoe UI", Arial, sans-serif; }
.site-footer.footer-v2 .shell { width:min(calc(100% - 48px),1200px); }
.site-footer.footer-v2 .footer-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; padding-bottom:48px; }
.site-footer.footer-v2 .footer-title { margin:0 0 38px; color:var(--rf-paper); font-size:21px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.site-footer.footer-v2 .rf-contact-details { display:flex; flex-direction:column; align-items:flex-start; gap:25px; }
.site-footer.footer-v2 .rf-contact-details a { display:block; margin-bottom:12px; }
.site-footer.footer-v2 a { color:var(--rf-paper); text-decoration:none; font-size:17px; }
.site-footer.footer-v2 a:hover { color:var(--rf-yellow); }
.site-footer.footer-v2 .footer-navigation, .site-footer.footer-v2 .footer-navigation .footer-menu { display:flex; flex-direction:column; align-items:flex-start; gap:14px; margin:0; padding:0; list-style:none; }
.site-footer.footer-v2 .footer-navigation a { display:block; margin-bottom:12px; padding:0; font-weight:400; }
.site-footer.footer-v2 .rf-footer-social .footer-menu { display:flex; flex-direction:row; flex-wrap:wrap; }
.site-footer.footer-v2 .legal { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-top:22px; border-top:1px solid rgba(246,247,245,.25); color:#777; font-size:12px; }
.site-footer.footer-v2 .legal nav, .site-footer.footer-v2 .legal nav ul { display:flex; flex-direction:row; flex-wrap:wrap; margin:0; gap:24px; font-size:12px; }
.site-footer.footer-v2 .legal a { font-size:12px; }
.site-footer.footer-v2 .footer-menu { margin:0; padding:0; list-style:none; }
.site-footer.footer-v2 .footer-legal-navigation .footer-menu { display:flex; flex-wrap:wrap; gap:20px; }
.site-footer.footer-v2 .footer-legal-navigation a { margin-bottom:0; text-transform:uppercase; }
@media (max-width:1100px) {
  .site-header nav { gap:18px; font-size:13px; }
  .rf-home .rf-hero .rf-container { grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); }
  .rf-home .rf-hero h1 { font-size:clamp(63px,7vw,112px); }
  .rf-home .rf-service h3 { font-size:36px; }
  .rf-home .rf-voice-tag { left:0; font-size:13px; }
}
@media (max-width:900px) {
  .site-header .header-inner { height:82px; }
  .site-header .logo { width:68px; height:68px; flex-basis:68px; }
  .site-header nav { display:none; }
  .menu-button { display:block; }
  .rf-home .rf-container { width:min(calc(100% - 48px),650px); }
  .rf-home .rf-hero { min-height:0; padding:34px 0 22px; }
  .rf-home .rf-hero .rf-container { display:flex; flex-direction:column; min-height:0; }
  .rf-home .rf-hero .rf-kicker { font-size:12px; }
  .rf-home .rf-hero .rf-yellow-rule { margin:12px 0 23px; width:58px; height:4px; }
  .rf-home .rf-hero h1 { font-size:clamp(48px,14.6vw,72px); line-height:1.14; }
  .rf-home .rf-hero .rf-lead { margin-top:28px; font-size:17px; line-height:1.65; }
  .rf-home .rf-hero-media { order:2; width:100%; height:370px; margin-top:32px; }
  .rf-home .rf-hero-media::before { top:0; left:30%; width:28px; height:370px; }
  .rf-home .rf-hero-primary { left:36%; right:0; top:14px; height:339px; }
  .rf-home .rf-hero-inset { left:0; bottom:6px; width:50%; height:128px; border:0; }
  .rf-home .rf-hero-year { display:none; }
  .rf-home .rf-hero .rf-button { order:3; width:298px; min-height:62px; margin-top:24px; font-size:16px; }
  .rf-home .rf-hero .rf-caption { order:4; margin-top:16px; font-size:10px; }
  .rf-home .rf-hero-bottom { display:none; }
  .rf-home .rf-statement { min-height:262px; padding:38px 0 46px; }
  .rf-home .rf-statement .rf-kicker { font-size:12px; }
  .rf-home .rf-statement h2 { margin-top:33px; font-size:29px; line-height:1.4; }
  .rf-home .rf-services { padding:43px 0 60px; }
  .rf-home .rf-services .rf-kicker { font-size:12px; }
  .rf-home .rf-services h2 { margin-top:22px; font-size:clamp(31px,9.5vw,43px); line-height:1.27; }
  .rf-home .rf-services .rf-intro { margin-top:25px; font-size:16px; }
  .rf-home .rf-service-grid { display:flex; flex-direction:column; gap:15px; margin-top:27px; padding-top:23px; }
  .rf-home .rf-service, .rf-home .rf-service.is-wide { min-height:274px; padding:22px; }
  .rf-home .rf-service h3 { font-size:34px; line-height:1.3; }
  .rf-home .rf-service .rf-kicker { font-size:12px; }
  .rf-home .rf-service .rf-service-copy { font-size:15px; }
  .rf-home .rf-service.has-image { padding-right:34%; }
  .rf-home .rf-service.has-image .rf-photo-slot { width:32%; }
  .rf-home .rf-concept-note { font-size:10px; }
  .rf-home .rf-voice { padding:45px 0 60px; }
  .rf-home .rf-voice-layout { display:block; }
  .rf-home .rf-voice h2 { margin-top:27px; font-size:clamp(46px,12vw,64px); }
  .rf-home .rf-voice .rf-voice-lead { margin-top:25px; font-size:19px; }
  .rf-home .rf-voice .rf-voice-copy { margin-top:16px; font-size:16px; }
  .rf-home .rf-voice-media { margin-top:35px; height:350px; }
  .rf-home .rf-voice-tag { font-size:12px; padding:16px; bottom:-18px; }
  .rf-home .rf-projects { padding:58px 0; }
  .rf-home .rf-projects h2 { font-size:clamp(34px,9.1vw,48px); }
  .rf-home .rf-projects .rf-yellow-rule { margin:24px 0 30px; }
  .rf-home .rf-project-grid { display:block; }
  .rf-home .rf-project { margin-bottom:30px; }
  .rf-home .rf-project h3 { margin-top:13px; font-size:24px; }
  .rf-home .rf-cta { padding:56px 0; }
  .rf-home .rf-cta-layout { display:flex; flex-direction:column; }
  .rf-home .rf-cta h2 { margin-top:28px; font-size:clamp(42px,10vw,59px); }
  .rf-home .rf-cta .rf-cta-copy { margin:27px 0; font-size:18px; }
  .rf-home .rf-cta .rf-photo-slot { height:300px; }
  .site-footer.footer-v2 .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 24px; }
}
@media(max-width:560px) {
  .site-header .header-inner { width:calc(100% - 48px); }
  .site-header .menu-button { margin-left:auto; }
  .rf-home .rf-photo-slot span { font-size:10px; }
  .rf-home .rf-service.has-image { padding-right:38%; }
  /* Keep the 04 / Kommunikation visual visible on 390px as in Figma. */
  .rf-home .rf-service.has-image .rf-photo-slot { display:grid; width:34%; }
  .rf-home .rf-voice-media { height:310px; }
  .site-footer.footer-v2 .footer-grid { grid-template-columns:minmax(0,1fr); gap:30px; }
  .site-footer.footer-v2 .footer-title { margin-bottom:20px; }
  .site-footer.footer-v2 .rf-contact-details { gap:14px; }
  .site-footer.footer-v2 .legal { flex-direction:column; align-items:flex-start; padding-bottom:72px; }
  .site-footer.footer-v2 .footer-legal-navigation .footer-menu { display:grid; gap:10px; }
  .site-footer.footer-v2 .footer-legal-navigation a { margin-bottom:0; }
}
@media(prefers-reduced-motion:reduce) {
  .rf-home *, .rf-home *::before, .rf-home *::after, .site-header, .mobile-menu { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; }
}
.rf-home .rf-hero-mobile-action{display:none}
@media(max-width:900px){.rf-home .rf-hero-desktop-action{display:none}.rf-home .rf-hero-mobile-action{display:block;order:3}.rf-home .rf-hero-mobile-action .rf-button{width:min(298px,100%);min-height:62px;margin-top:24px;font-size:16px}.rf-home .rf-hero-mobile-action .rf-concept-note{margin-top:16px}}
