.for-brf-page { background: #070c07; color: #f6f0e3; }

.brf-hero {
  position: relative;
  isolation: isolate;
  min-height: calc(100vh - var(--rwmh-height, 64px));
  display: grid;
  align-items: center;
  overflow: hidden;
  background: #071008 url("../img/brf-hero-stockholm.png") center/cover no-repeat;
}

.brf-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(4,10,6,.98) 0%, rgba(5,12,7,.91) 31%, rgba(5,10,7,.36) 58%, rgba(4,8,6,.28) 74%, rgba(3,7,5,.76) 100%),
    linear-gradient(180deg, rgba(3,8,5,.12), rgba(3,8,5,.42));
}

.brf-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 210px;
  align-items: stretch;
  gap: 40px;
  min-height: 670px;
  padding-top: clamp(70px, 9vh, 105px);
  padding-bottom: clamp(58px, 8vh, 90px);
}

.brf-hero-copy { align-self: center; max-width: 760px; }
.for-brf-page .brf-eyebrow { display: flex; align-items: center; gap: 15px; color: #e0b33e; font: 700 13px/1.2 Arial, sans-serif; letter-spacing: .22em; text-transform: uppercase; }
.brf-eyebrow i { width: 44px; height: 2px; background: currentColor; }
.for-brf-page .brf-hero h1 { margin: 20px 0 22px; color: #f6f1e8; font-family: Georgia, serif; font-size: clamp(58px, 5.4vw, 88px) !important; font-weight: 600; line-height: .98 !important; letter-spacing: -.025em; text-shadow: 0 3px 24px rgba(0,0,0,.38); }
.brf-hero h1 span { color: #e8b93e; }
.for-brf-page .brf-hero-copy > p { max-width: 750px; margin: 0; color: rgba(255,255,255,.82); font-family: Arial, sans-serif; font-size: 17px !important; line-height: 1.6; }
.brf-hero-actions { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 30px; }
.for-brf-page .brf-hero-actions .btn { min-width: 250px; min-height: 58px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; border-radius: 5px; font-family: Arial, sans-serif; font-size: 12px !important; font-weight: 700; line-height: 1; letter-spacing: .11em; text-transform: uppercase; }
.brf-btn-primary { color: #251b05; border: 1px solid #efc75b; background: linear-gradient(110deg, #e7b43b, #ffd76d); box-shadow: 0 12px 30px rgba(221,170,42,.18); }
.brf-btn-secondary { color: #eac052; border: 1px solid rgba(226,178,49,.75); background: rgba(7,13,8,.54); }
.brf-btn-primary:hover, .brf-btn-secondary:hover { transform: translateY(-2px); }
.brf-benefits { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); max-width: 720px; margin-top: 42px; }
.brf-benefits > div { display: flex; align-items: center; gap: 13px; min-height: 58px; padding: 0 24px; border-left: 1px solid rgba(226,181,55,.38); }
.brf-benefits > div:first-child { padding-left: 0; border-left: 0; }
.brf-benefit-icon { flex: 0 0 42px; display: grid; place-items: center; color: #e7b738; }
.brf-benefit-icon svg { width: 38px; height: 38px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.for-brf-page .brf-benefits strong { color: rgba(255,255,255,.86); font-family: Arial, sans-serif; font-size: 12px !important; font-weight: 600; line-height: 1.45; }
.brf-hero-note { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; padding: 4px 0 18px 34px; border-left: 1px solid rgba(225,180,52,.32); }
.brf-hero-note > span { color: #e7b83f; font: italic 600 clamp(27px, 2.6vw, 39px)/1.03 Georgia, serif; transform: rotate(-4deg); text-shadow: 0 2px 14px rgba(0,0,0,.35); }
.brf-hero-note small { max-width: 145px; color: rgba(255,255,255,.8); font: 700 10px/1.45 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }

.brf-partner { padding: 72px 0; background: radial-gradient(circle at 52% 42%, rgba(36,76,34,.18), transparent 43%), #061007; }
.brf-partner-grid { display: grid; grid-template-columns: minmax(240px, 1.03fr) minmax(290px, 1.16fr) minmax(270px, .96fr); gap: clamp(28px, 3vw, 54px); align-items: center; }
.brf-partner-photo { height: 540px; margin: 0; overflow: hidden; border: 1px solid #a77c17; border-radius: 7px; box-shadow: 0 22px 48px rgba(0,0,0,.3); }
.brf-partner-photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 58% center; }
.brf-partner-copy h2 { margin: 20px 0 22px; color: #f4efe5; font: 400 clamp(36px, 3.2vw, 54px)/1.03 Georgia, serif; letter-spacing: -.025em; }
.brf-partner-copy > p { margin: 0 0 27px; color: rgba(255,255,255,.72); font: 15px/1.55 Arial, sans-serif; }
.brf-partner-list { display: grid; gap: 17px; margin: 0; padding: 0; list-style: none; }
.brf-partner-list li { position: relative; padding-left: 35px; color: rgba(255,255,255,.82); font: 14px/1.4 Arial, sans-serif; }
.brf-partner-list li::before { content: "✓"; position: absolute; left: 0; top: -1px; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: #14200f; background: #f1c044; font-size: 12px; font-weight: 900; }
.brf-quote-form { padding: 24px 22px 20px; border: 1px solid rgba(213,169,44,.6); border-radius: 7px; background: rgba(5,13,7,.76); box-shadow: 0 20px 50px rgba(0,0,0,.22); }
.brf-quote-form header { margin-bottom: 14px; }
.brf-quote-form h3 { margin: 0 0 5px; color: #edbd3f; font: 700 18px/1.2 Arial, sans-serif; letter-spacing: .03em; text-transform: uppercase; }
.brf-quote-form header p, .brf-quote-form > small { margin: 0; color: rgba(255,255,255,.7); font: 11px/1.4 Arial, sans-serif; }
.brf-quote-form label { display: block; margin-bottom: 6px; }
.brf-quote-form input, .brf-quote-form select, .brf-quote-form textarea { width: 100%; min-height: 43px; padding: 10px 13px; border: 1px solid rgba(255,255,255,.04); border-radius: 4px; outline: 0; color: #f4f1e9; background: rgba(28,42,31,.83); font: 12px/1.35 Arial, sans-serif; box-shadow: inset 0 1px 4px rgba(0,0,0,.18); }
.brf-quote-form textarea { min-height: 72px; resize: vertical; }
.brf-quote-form select { color-scheme: dark; cursor: pointer; }
.brf-quote-form input::placeholder, .brf-quote-form textarea::placeholder { color: rgba(255,255,255,.62); }
.brf-quote-form input:focus, .brf-quote-form select:focus, .brf-quote-form textarea:focus { border-color: #deb03a; box-shadow: 0 0 0 2px rgba(222,176,58,.13); }
.brf-quote-form button { width: 100%; min-height: 54px; margin: 0 0 10px; border: 1px solid #f2c555; border-radius: 4px; color: #201905; background: linear-gradient(110deg, #f4bd39, #ffd468); font: 800 12px/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.brf-quote-form button span { margin-left: 9px; font-size: 18px; }
.brf-quote-form button:hover { filter: brightness(1.05); transform: translateY(-1px); }
.brf-form-status { margin: 12px 0 0 !important; padding: 9px 10px; border-radius: 4px; font: 600 12px/1.35 Arial, sans-serif !important; }
.brf-form-status.is-success { color: #cceec5; background: rgba(46,125,50,.24); }
.brf-form-status.is-error { color: #ffd1c9; background: rgba(160,48,35,.28); }

.brf-process { padding: 64px 0 70px; border-top: 1px solid rgba(213,169,44,.22); background: #071007; }
.brf-process-header h2, .brf-faq h2 { margin: 14px 0 0; color: #f3eee3; font: 400 clamp(32px, 3vw, 48px)/1.12 Georgia, serif; }
.brf-process-steps { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 54px; margin: 38px 0 0; padding: 0; list-style: none; counter-reset: brf-step; }
.brf-process-steps li { position: relative; counter-increment: brf-step; }
.brf-process-steps li:not(:last-child)::after { content: "→"; position: absolute; top: 31px; right: -35px; color: #dfad2d; font: 26px/1 Georgia, serif; }
.brf-step-icon { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 17px; border: 2px solid #b98c20; border-radius: 50%; color: #e6b632; }
.brf-step-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.brf-process-steps h3 { margin: 0 0 9px; color: #f2eee5; font: 700 16px/1.3 Arial, sans-serif; }
.brf-process-steps h3::before { content: counter(brf-step) ". "; }
.brf-process-steps p { max-width: 210px; margin: 0; color: rgba(255,255,255,.66); font: 13px/1.5 Arial, sans-serif; }

.brf-residents { display: grid; grid-template-columns: 42% 58%; min-height: 270px; border-top: 1px solid rgba(213,169,44,.3); border-bottom: 1px solid rgba(213,169,44,.3); background: #081309; }
.brf-residents-photo { background: linear-gradient(90deg, transparent 70%, #081309 100%), url("../img/brf-hero-stockholm.png") center/cover no-repeat; }
.brf-residents-copy { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(240px,.8fr); align-items: center; gap: 55px; padding: 40px max(5vw, 38px) 40px 50px; }
.brf-residents-copy h2 { margin: 0 0 12px; color: #eaba37; font: 800 clamp(25px, 2.2vw, 35px)/1.18 Arial, sans-serif; letter-spacing: .025em; text-transform: uppercase; }
.brf-residents-copy p { max-width: 500px; margin: 0; color: rgba(255,255,255,.7); font: 14px/1.5 Arial, sans-serif; }
.brf-residents-copy ul { display: grid; gap: 14px; margin: 0; padding: 5px 0 5px 46px; border-left: 1px solid rgba(218,170,42,.45); list-style: none; }
.brf-residents-copy li { position: relative; padding-left: 32px; color: rgba(255,255,255,.75); font: 14px/1.3 Arial, sans-serif; }
.brf-residents-copy li::before { content: "✓"; position: absolute; left: 0; display: grid; place-items: center; width: 19px; height: 19px; border-radius: 50%; color: #17200e; background: #efbd40; font-size: 11px; font-weight: 900; }

.brf-faq { padding: 56px 0 76px; background: radial-gradient(circle at 60% 20%, rgba(36,76,34,.13), transparent 40%), #071007; }
.brf-faq header { margin-bottom: 24px; }
.brf-faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 60px; }
.brf-faq details { border-bottom: 1px solid rgba(213,169,44,.3); }
.brf-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 19px 2px; color: rgba(255,255,255,.84); font: 600 14px/1.4 Arial, sans-serif; cursor: pointer; list-style: none; }
.brf-faq summary::-webkit-details-marker { display: none; }
.brf-faq summary span { position: relative; flex: 0 0 20px; width: 20px; height: 20px; }
.brf-faq summary span::before, .brf-faq summary span::after { content: ""; position: absolute; top: 9px; left: 2px; width: 16px; height: 2px; background: #e7b539; transition: transform .2s ease; }
.brf-faq summary span::after { transform: rotate(90deg); }
.brf-faq details[open] summary span::after { transform: rotate(0); }
.brf-faq details p { margin: -3px 34px 18px 2px; color: rgba(255,255,255,.62); font: 13px/1.55 Arial, sans-serif; }
.brf-faq-empty { grid-column: 1 / -1; margin: 10px 0 0; color: rgba(255,255,255,.62); font: 14px/1.5 Arial, sans-serif; }

.brf-final-cta { position: relative; isolation: isolate; overflow: hidden; min-height: 330px; display: grid; align-items: center; border-top: 1px solid rgba(213,169,44,.55); background: #08100a url("../img/rwm-electrician-jacket.png") 12% 42%/cover no-repeat; }
.brf-final-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(4,10,6,.12) 0%, rgba(5,12,7,.68) 30%, rgba(5,12,7,.96) 48%, rgba(5,12,7,.88) 76%, rgba(5,12,7,.55) 100%); }
.brf-final-cta-inner { display: grid; grid-template-columns: minmax(0,1fr) 230px; align-items: center; gap: 55px; padding-top: 52px; padding-bottom: 52px; padding-left: min(34vw, 490px); }
.brf-final-kicker { margin-bottom: 13px; color: #e6b638; font: 800 12px/1.2 Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.brf-final-cta h2 { margin: 0 0 10px; color: #f4efe6; font: 400 clamp(30px, 2.8vw, 45px)/1.12 Georgia, serif; letter-spacing: -.015em; }
.brf-final-cta-copy > p { margin: 0; color: rgba(255,255,255,.72); font: 15px/1.5 Arial, sans-serif; }
.brf-final-actions { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 22px; }
.brf-final-actions a { min-width: 235px; min-height: 56px; display: inline-flex; align-items: center; justify-content: center; gap: 14px; border-radius: 5px; font: 800 12px/1 Arial, sans-serif; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, filter .2s ease; }
.brf-final-actions a:hover { transform: translateY(-2px); filter: brightness(1.07); }
.brf-final-primary { border: 1px solid #f3c653; color: #241b05; background: linear-gradient(110deg, #efb936, #ffd56b); }
.brf-final-primary span { font-size: 18px; }
.brf-final-secondary { border: 1px solid #c89a25; color: #edbd3e; background: rgba(5,12,7,.55); }
.brf-final-secondary svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linejoin: round; }
.brf-final-note { color: #d0a438; font: italic 600 30px/1.02 Georgia, serif; text-align: center; transform: rotate(-5deg); }
.brf-final-note i { display: block; width: 72px; height: 2px; margin: 18px 0 0 auto; background: #c79a27; transform: rotate(-13deg); }

.brf-services { padding: 72px 0 88px; background: radial-gradient(circle at 50% 0, rgba(68,86,31,.14), transparent 38%), #071007; }
.brf-services-header { margin-bottom: 30px; }
.for-brf-page .brf-services-header h2 { margin: 15px 0 0; color: #f3eee3; font-family: Georgia, serif; font-size: clamp(32px, 3.1vw, 50px) !important; font-weight: 400; line-height: 1.15 !important; letter-spacing: -.015em; }
.brf-services-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.brf-service-card { overflow: hidden; min-width: 0; border: 1px solid rgba(213,169,44,.38); border-radius: 7px; background: linear-gradient(160deg, #0d190d, #071008); color: inherit; text-decoration: none; box-shadow: 0 18px 42px rgba(0,0,0,.18); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.brf-service-card:hover, .brf-service-card:focus-visible { transform: translateY(-6px); border-color: rgba(235,190,61,.75); box-shadow: 0 24px 55px rgba(0,0,0,.32); }
.brf-service-card > img { display: block; width: 100%; height: 190px; object-fit: cover; transition: transform .4s ease; }
.brf-service-card:hover > img { transform: scale(1.035); }
.brf-service-body { position: relative; min-height: 230px; padding: 46px 18px 22px; }
.brf-service-icon { position: absolute; top: -25px; left: 16px; display: grid; place-items: center; width: 50px; height: 50px; border: 2px solid #d7a927; border-radius: 50%; color: #eec342; background: #091109; box-shadow: 0 5px 15px rgba(0,0,0,.25); }
.brf-service-icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.for-brf-page .brf-service-card h3 { min-height: 48px; margin: 0 0 11px; color: #f3eee4; font-family: Arial, sans-serif; font-size: 18px !important; font-weight: 700; line-height: 1.22 !important; }
.for-brf-page .brf-service-card p { margin: 0; color: rgba(255,255,255,.7); font-family: Arial, sans-serif; font-size: 13px !important; line-height: 1.5; }

@media (max-width: 980px) {
  .brf-hero-inner { grid-template-columns: 1fr; min-height: 720px; }
  .brf-hero-note { display: none; }
  .brf-services-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .brf-service-card:last-child { grid-column: 1 / -1; }
  .brf-partner-grid { grid-template-columns: 1fr 1fr; }
  .brf-partner-photo { height: 500px; }
  .brf-quote-form { grid-column: 1 / -1; }
  .brf-process-steps { grid-template-columns: repeat(2, minmax(0,1fr)); row-gap: 40px; }
  .brf-process-steps li:nth-child(2)::after { display: none; }
  .brf-residents { grid-template-columns: 1fr; }
  .brf-residents-photo { min-height: 300px; background-image: linear-gradient(180deg, transparent 65%, #081309 100%), url("../img/brf-hero-stockholm.png"); }
  .brf-residents-copy { padding: 10px 6vw 45px; }
  .brf-final-cta { background-position: 22% center; }
  .brf-final-cta-inner { grid-template-columns: 1fr; padding-left: 38%; }
  .brf-final-note { display: none; }
}

@media (max-width: 640px) {
  .brf-hero { min-height: auto; background-position: 63% center; }
  .brf-hero::before { background: linear-gradient(180deg, rgba(3,8,5,.5), rgba(3,9,5,.94) 45%, #050b06 100%); }
  .brf-hero-inner { min-height: 760px; align-items: end; padding-top: 190px; padding-bottom: 48px; }
  .for-brf-page .brf-eyebrow { font-size: 10px; letter-spacing: .16em; }
  .brf-eyebrow i { width: 28px; }
  .for-brf-page .brf-hero h1 { font-size: clamp(42px, 13vw, 59px) !important; }
  .for-brf-page .brf-hero-copy > p { font-size: 14px !important; }
  .brf-hero-actions { display: grid; grid-template-columns: 1fr; gap: 11px; }
  .brf-hero-actions .btn { width: 100%; min-width: 0; }
  .brf-benefits { grid-template-columns: 1fr; gap: 0; margin-top: 30px; }
  .brf-benefits > div, .brf-benefits > div:first-child { padding: 13px 0; border-left: 0; border-top: 1px solid rgba(226,181,55,.25); }
  .brf-services { padding: 52px 0 62px; }
  .for-brf-page .brf-services-header h2 { font-size: 34px !important; }
  .brf-services-grid { grid-template-columns: 1fr; }
  .brf-service-card:last-child { grid-column: auto; }
  .brf-service-card > img { height: 220px; }
  .brf-service-body { min-height: 0; }
  .brf-partner { padding: 52px 0; }
  .brf-partner-grid { grid-template-columns: 1fr; gap: 28px; }
  .brf-partner-photo { height: min(110vw, 480px); }
  .brf-partner-copy h2 { font-size: 38px; }
  .brf-quote-form { grid-column: auto; padding: 22px 16px 18px; }
  .brf-process { padding: 50px 0 55px; }
  .brf-process-steps { grid-template-columns: 1fr; gap: 28px; }
  .brf-process-steps li { display: grid; grid-template-columns: 58px 1fr; gap: 18px; }
  .brf-process-steps li::after { display: none; }
  .brf-step-icon { margin: 0; }
  .brf-process-steps p { max-width: none; }
  .brf-residents-photo { min-height: 230px; }
  .brf-residents-copy { grid-template-columns: 1fr; gap: 28px; padding: 6px 20px 40px; }
  .brf-residents-copy ul { padding-left: 0; border-left: 0; }
  .brf-faq { padding: 48px 0 60px; }
  .brf-faq-grid { grid-template-columns: 1fr; }
  .brf-final-cta { min-height: 540px; align-items: end; background-position: 57% top; background-size: auto 100%; }
  .brf-final-cta::before { background: linear-gradient(180deg, rgba(4,10,6,.06), rgba(5,12,7,.55) 38%, rgba(5,12,7,.98) 68%); }
  .brf-final-cta-inner { display: block; padding: 245px 20px 42px; }
  .brf-final-kicker { font-size: 10px; }
  .brf-final-cta h2 { font-size: 33px; }
  .brf-final-actions { display: grid; gap: 11px; }
  .brf-final-actions a { width: 100%; min-width: 0; }
}
