/*
Theme Name: RH Pannenservice Premium
Theme URI: https://example.com/
Author: RH Pannenservice
Description: Mobile-First Premium-WordPress-Theme für RH Pannenservice in Hannover. Ohne Abschlepp- und Transportleistungen.
Version: 2.0.0
Requires at least: 6.3
Tested up to: 6.6
Requires PHP: 8.0
Text Domain: rh-pannenservice
License: GNU General Public License v2 or later
*/

:root {
  --rh-red: #e20b08;
  --rh-red-2: #ff312c;
  --rh-red-dark: #8e0503;
  --rh-black: #070707;
  --rh-black-2: #0d0e10;
  --rh-panel: #121316;
  --rh-panel-2: #181a1e;
  --rh-white: #ffffff;
  --rh-text: #f6f6f7;
  --rh-muted: #a9adb5;
  --rh-border: rgba(255,255,255,.10);
  --rh-shadow: 0 28px 80px rgba(0,0,0,.42);
  --rh-radius: 24px;
  --rh-container: 1220px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--rh-black);
  color: var(--rh-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body.admin-bar .site-header { top: 32px; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; }
.rh-container { width: min(var(--rh-container), calc(100% - 40px)); margin-inline: auto; }
.rh-section { padding: 96px 0; position: relative; }
.rh-section--tight { padding: 72px 0; }
.rh-section--alt { background: var(--rh-black-2); }
.rh-eyebrow {
  color: var(--rh-red-2); font-size: 12px; font-weight: 900; letter-spacing: .16em;
  text-transform: uppercase; margin-bottom: 12px;
}
.rh-title-xl {
  font-size: clamp(48px, 7vw, 92px); line-height: .94; letter-spacing: -.055em;
  margin: 0; font-weight: 950; max-width: 920px;
}
.rh-title-xl em { color: var(--rh-red); font-style: normal; text-shadow: 0 0 42px rgba(226,11,8,.22); }
.rh-title-lg {
  font-size: clamp(36px, 4.5vw, 62px); line-height: 1.02; letter-spacing: -.04em;
  margin: 0 0 18px; font-weight: 920;
}
.rh-title-md { font-size: 28px; line-height: 1.15; margin: 0 0 12px; letter-spacing: -.02em; }
.rh-lead { font-size: clamp(18px, 2vw, 21px); color: #d6d8dd; max-width: 760px; }
.rh-muted { color: var(--rh-muted); }
.rh-grid { display: grid; gap: 22px; }
.rh-grid--3 { grid-template-columns: repeat(3, 1fr); }
.rh-grid--2 { grid-template-columns: repeat(2, 1fr); }
.rh-stack { display: grid; gap: 18px; }
.rh-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 24px; border-radius: 999px; border: 1px solid transparent;
  background: linear-gradient(135deg, var(--rh-red), var(--rh-red-2));
  color: #fff; font-weight: 900; box-shadow: 0 14px 36px rgba(226,11,8,.28);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.rh-btn:hover { transform: translateY(-2px); filter: brightness(1.05); box-shadow: 0 20px 45px rgba(226,11,8,.36); }
.rh-btn--ghost { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.22); box-shadow: none; }
.rh-btn--ghost:hover { background: rgba(255,255,255,.08); }
.rh-btn--small { min-height: 44px; padding-inline: 18px; font-size: 14px; }
.rh-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }

/* Header */
.site-header {
  position: sticky; top: 0; z-index: 1000;
  background: rgba(7,7,7,.78); border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
.rh-header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.rh-brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 950; letter-spacing: -.03em; }
.rh-brand-mark { font-size: 32px; color: var(--rh-red); line-height: 1; }
.rh-brand-name { font-size: 12px; letter-spacing: .09em; }
.rh-nav { display: flex; align-items: center; gap: 26px; }
.rh-nav ul { display: flex; align-items: center; gap: 24px; list-style: none; margin: 0; padding: 0; }
.rh-nav a { color: #e7e8eb; font-size: 14px; font-weight: 700; }
.rh-nav a:hover, .rh-nav .current-menu-item > a { color: var(--rh-red-2); }
.rh-mobile-toggle { display: none; border: 0; background: transparent; color: white; padding: 8px; cursor: pointer; }
.rh-mobile-toggle span { display:block; width:26px; height:2px; background:#fff; margin:5px 0; transition:.2s; }

/* Hero */
.rh-hero {
  overflow: hidden; padding: 94px 0 74px;
  background:
    radial-gradient(circle at 75% 30%, rgba(226,11,8,.24), transparent 28%),
    radial-gradient(circle at 88% 58%, rgba(255,255,255,.07), transparent 22%),
    linear-gradient(115deg, #050505 0%, #101113 52%, #080808 100%);
}
.rh-hero::before {
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.22;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(to bottom, black, transparent 82%);
}
.rh-hero-grid { display:grid; grid-template-columns: 1.12fr .88fr; gap: 58px; align-items:center; position:relative; z-index:1; }
.rh-hero-copy p { margin: 24px 0 0; }
.rh-trust-row { display:flex; flex-wrap:wrap; gap:18px 28px; margin-top:34px; color:#d6d7da; font-size:13px; font-weight:700; }
.rh-trust-row span::before { content:"✓"; color:var(--rh-red-2); margin-right:8px; }
.rh-hero-visual {
  position:relative; min-height: 580px; border-radius: 34px; overflow:hidden;
  border:1px solid rgba(255,255,255,.10); background:
  radial-gradient(circle at 52% 38%, rgba(255,42,35,.38), transparent 30%),
  linear-gradient(150deg,#1b1c20 0%,#0b0c0e 56%,#270302 100%);
  box-shadow: var(--rh-shadow);
}
.rh-hero-visual::before {
  content:"RH"; position:absolute; right:-18px; bottom:-58px; font-size:260px;
  line-height:1; font-weight:950; letter-spacing:-.09em; color:rgba(255,255,255,.045);
}
.rh-car-silhouette {
  position:absolute; left:9%; right:7%; bottom:18%; height:190px;
  border-radius: 110px 150px 30px 28px;
  background: linear-gradient(155deg,#ff312c 0%,#bd0805 46%,#5c0302 100%);
  transform: skewX(-7deg);
  box-shadow: inset 0 8px 22px rgba(255,255,255,.16), 0 25px 60px rgba(0,0,0,.45);
}
.rh-car-silhouette::before {
  content:""; position:absolute; left:22%; top:-62px; width:47%; height:86px;
  background: linear-gradient(145deg,#25272b,#0c0d0f); border-radius: 90px 100px 10px 8px;
  transform: skewX(12deg); border:1px solid rgba(255,255,255,.12);
}
.rh-car-silhouette::after {
  content:""; position:absolute; left:12%; right:10%; bottom:-33px; height:68px;
  background:
   radial-gradient(circle at 20% 50%, #17181a 0 27px, #777 28px 32px, transparent 33px),
   radial-gradient(circle at 82% 50%, #17181a 0 27px, #777 28px 32px, transparent 33px);
}
.rh-hero-card {
  position:absolute; background:rgba(15,16,18,.88); border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(18px); border-radius:20px; padding:18px 20px; box-shadow:0 20px 50px rgba(0,0,0,.28);
}
.rh-hero-card--top { top:28px; right:28px; }
.rh-hero-card--bottom { left:24px; bottom:24px; }
.rh-status { display:flex; align-items:center; gap:9px; font-size:13px; color:#d9dade; }
.rh-status i { width:10px; height:10px; border-radius:50%; background:#37d267; box-shadow:0 0 0 7px rgba(55,210,103,.12); }
.rh-phone-big { display:block; font-size:22px; font-weight:950; margin-top:7px; }

/* Cards */
.rh-card {
  background: linear-gradient(145deg, var(--rh-panel-2), var(--rh-panel));
  border:1px solid var(--rh-border); border-radius:var(--rh-radius); padding:28px;
  box-shadow:0 14px 35px rgba(0,0,0,.16); transition:transform .25s ease,border-color .25s ease;
}
.rh-card:hover { transform:translateY(-5px); border-color:rgba(226,11,8,.45); }
.rh-icon {
  width:52px; height:52px; border-radius:16px; display:grid; place-items:center;
  background:rgba(226,11,8,.14); color:var(--rh-red-2); font-size:24px; margin-bottom:20px;
}
.rh-price { color:var(--rh-red-2); font-size:24px; font-weight:950; margin-top:18px; }
.rh-card small { color:#7f848d; }

/* Split / visual */
.rh-split { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.rh-visual-panel {
  min-height:500px; border-radius:30px; position:relative; overflow:hidden;
  border:1px solid var(--rh-border); background:
  radial-gradient(circle at 70% 25%, rgba(226,11,8,.34), transparent 28%),
  linear-gradient(145deg,#1a1b1f,#090a0c);
}
.rh-visual-panel::after {
  content:"24/7"; position:absolute; right:-12px; bottom:-55px; font-size:200px; font-weight:950;
  letter-spacing:-.08em; color:rgba(255,255,255,.045);
}
.rh-floating-note {
  position:absolute; left:24px; bottom:24px; right:24px; padding:22px; border-radius:20px;
  background:#fff; color:#111; box-shadow:var(--rh-shadow);
}
.rh-checklist { display:grid; gap:14px; margin:26px 0; }
.rh-check { display:flex; align-items:flex-start; gap:12px; color:#d8dade; }
.rh-check::before {
  content:"✓"; flex:0 0 27px; width:27px; height:27px; border-radius:50%;
  display:grid; place-items:center; background:rgba(226,11,8,.14); color:var(--rh-red-2); font-weight:950;
}

/* Pricing */
.rh-price-card { position:relative; overflow:hidden; }
.rh-price-card::after {
  content:""; position:absolute; width:120px; height:120px; border-radius:50%;
  background:rgba(226,11,8,.10); right:-40px; top:-40px;
}
.rh-price-card .rh-price { font-size:38px; letter-spacing:-.04em; }
.rh-price-meta { color:#858a94; font-size:13px; margin-top:8px; }
.rh-notice {
  background:#151619; border-left:4px solid var(--rh-red); border-radius:0 16px 16px 0;
  padding:18px 20px; color:#d9dade;
}

/* CTA */
.rh-cta {
  border-radius:30px; padding:48px; display:flex; justify-content:space-between; gap:30px; align-items:center;
  background:linear-gradient(125deg,#161719,#290202); border:1px solid rgba(226,11,8,.34); overflow:hidden; position:relative;
}
.rh-cta::after {
  content:"RH"; position:absolute; right:18px; bottom:-70px; font-size:180px; font-weight:950;
  color:rgba(255,255,255,.04); letter-spacing:-.08em;
}
.rh-cta > * { position:relative; z-index:1; }

/* Footer */
.site-footer { border-top:1px solid var(--rh-border); background:#050505; padding:64px 0 28px; }
.rh-footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:46px; }
.rh-footer-title { font-size:15px; font-weight:900; margin-bottom:14px; }
.site-footer ul { list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.site-footer a { color:#b7bbc2; }
.site-footer a:hover { color:white; }
.rh-copyright { margin-top:42px; padding-top:22px; border-top:1px solid var(--rh-border); color:#6f747d; font-size:12px; }

/* Page */
.rh-page-hero {
  padding:84px 0 58px; background:
  radial-gradient(circle at 78% 30%, rgba(226,11,8,.20), transparent 27%), #0a0a0b;
  border-bottom:1px solid var(--rh-border);
}
.rh-page-content { color:#d5d7dc; }
.rh-page-content h2 { color:white; margin-top:1.8em; }
.rh-legal-placeholder { min-height:360px; }

/* Contact form */
.rh-form { display:grid; gap:14px; }
.rh-form label { font-size:13px; font-weight:800; color:#d7d9dd; }
.rh-form input,.rh-form select,.rh-form textarea {
  width:100%; border:1px solid rgba(255,255,255,.13); background:#0d0e10; color:#fff;
  border-radius:14px; padding:14px 15px; outline:none;
}
.rh-form input:focus,.rh-form select:focus,.rh-form textarea:focus { border-color:var(--rh-red); box-shadow:0 0 0 4px rgba(226,11,8,.10); }
.rh-form textarea { min-height:140px; resize:vertical; }
.rh-form-message { padding:14px 16px; border-radius:12px; margin-bottom:16px; }
.rh-form-message--ok { background:rgba(55,210,103,.12); border:1px solid rgba(55,210,103,.28); }
.rh-form-message--error { background:rgba(226,11,8,.12); border:1px solid rgba(226,11,8,.28); }

/* Floating mobile CTA */
.rh-mobile-cta { display:none; }

/* Animation */
[data-rh-reveal] { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }
[data-rh-reveal].is-visible { opacity:1; transform:none; }

@media (max-width: 980px) {
  body.admin-bar .site-header { top:46px; }
  .rh-nav { display:none; position:absolute; left:20px; right:20px; top:70px; padding:18px;
    background:#101114; border:1px solid var(--rh-border); border-radius:18px; box-shadow:var(--rh-shadow); }
  .rh-nav.is-open { display:block; }
  .rh-nav ul { display:grid; gap:4px; }
  .rh-nav a { display:block; padding:11px 12px; }
  .rh-nav .rh-btn { margin-top:10px; width:100%; }
  .rh-mobile-toggle { display:block; }
  .rh-hero-grid,.rh-split { grid-template-columns:1fr; }
  .rh-hero-visual { min-height:500px; }
  .rh-grid--3 { grid-template-columns:repeat(2,1fr); }
  .rh-footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 680px) {
  .rh-container { width:min(100% - 24px,var(--rh-container)); }
  .rh-section { padding:70px 0; }
  .rh-hero { padding:65px 0 52px; }
  .rh-title-xl { font-size:clamp(48px,16vw,70px); }
  .rh-grid--3,.rh-grid--2,.rh-footer-grid { grid-template-columns:1fr; }
  .rh-hero-visual { min-height:430px; }
  .rh-car-silhouette { bottom:24%; height:140px; }
  .rh-car-silhouette::before { top:-50px; height:68px; }
  .rh-hero-card--top { top:18px; right:18px; }
  .rh-cta { display:block; padding:32px 24px; }
  .rh-actions .rh-btn { width:100%; }
  .rh-mobile-cta {
    display:grid; grid-template-columns:1fr 1fr; gap:8px; position:fixed; left:10px; right:10px; bottom:10px;
    z-index:1200; padding:8px; border-radius:18px; background:rgba(8,8,8,.90); border:1px solid var(--rh-border);
    backdrop-filter:blur(14px);
  }
  .rh-mobile-cta .rh-btn { min-height:46px; padding:0 12px; font-size:13px; }
  body { padding-bottom:76px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  [data-rh-reveal] { opacity:1; transform:none; }
}

/* =========================================================
   RH FINAL MOBILE-FIRST REFINEMENT · v2.0
   ========================================================= */
:root{
  --rh-safe-bottom: env(safe-area-inset-bottom, 0px);
  --rh-safe-top: env(safe-area-inset-top, 0px);
}
body{
  overflow-x:hidden;
  text-wrap:pretty;
}
.site-header{
  transition:background .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.site-header.is-scrolled{
  background:rgba(7,7,7,.94);
  box-shadow:0 12px 38px rgba(0,0,0,.30);
  border-bottom-color:rgba(255,255,255,.12);
}
.rh-brand,
.rh-btn,
.rh-nav a,
.rh-mobile-toggle{
  -webkit-tap-highlight-color:transparent;
}
.rh-btn:focus-visible,
.rh-nav a:focus-visible,
.rh-mobile-toggle:focus-visible,
.rh-form input:focus-visible,
.rh-form select:focus-visible,
.rh-form textarea:focus-visible{
  outline:3px solid rgba(255,49,44,.72);
  outline-offset:3px;
}
.rh-card,
.rh-hero-visual,
.rh-visual-panel,
.rh-cta{
  isolation:isolate;
}
.rh-price{
  white-space:normal;
}
.rh-price-prefix{
  display:block;
  color:#aeb2ba;
  font-size:12px;
  font-weight:850;
  letter-spacing:.12em;
  line-height:1;
  margin-bottom:7px;
  text-transform:uppercase;
}
.rh-service-note{
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:#aeb2ba;
  font-size:13px;
  margin-top:15px;
}
.rh-service-note::before{
  content:"i";
  flex:0 0 21px;
  width:21px;
  height:21px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.07);
  color:#fff;
  font-size:11px;
  font-weight:900;
}
.rh-section-heading{
  max-width:780px;
}
.rh-section-heading--center{
  margin-inline:auto;
  text-align:center;
}
.rh-contact-mini{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:28px;
}
.rh-contact-mini > div{
  min-width:0;
  padding:15px;
  border-radius:16px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.08);
}
.rh-contact-mini strong{
  display:block;
  color:#fff;
  font-size:13px;
}
.rh-contact-mini span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#9da2ab;
  font-size:12px;
  white-space:nowrap;
}
.rh-floating-emergency{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:1150;
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(135deg,var(--rh-red),var(--rh-red-2));
  box-shadow:0 18px 45px rgba(226,11,8,.42);
  color:#fff;
  font-size:23px;
  font-weight:900;
}
.rh-floating-emergency:hover{
  transform:translateY(-2px);
}
@media (min-width:681px){
  .rh-floating-emergency{display:none;}
}

/* Tablet */
@media (max-width:980px){
  .rh-header-inner{
    min-height:72px;
  }
  .rh-nav{
    max-height:calc(100dvh - 92px - var(--rh-safe-bottom));
    overflow:auto;
    overscroll-behavior:contain;
  }
  .rh-hero-grid{
    gap:38px;
  }
  .rh-hero-copy{
    max-width:760px;
  }
  .rh-hero-visual{
    width:min(100%,760px);
    margin-inline:auto;
  }
  .rh-contact-mini{
    grid-template-columns:1fr;
  }
}

/* Mobile */
@media (max-width:680px){
  html{
    scroll-padding-top:82px;
  }
  body{
    font-size:15px;
    padding-bottom:calc(82px + var(--rh-safe-bottom));
  }
  body.admin-bar .site-header{
    top:0;
  }
  #wpadminbar{
    position:fixed;
  }
  .rh-container{
    width:min(100% - 28px,var(--rh-container));
  }
  .site-header{
    padding-top:var(--rh-safe-top);
  }
  .rh-header-inner{
    min-height:64px;
    gap:14px;
  }
  .rh-brand-mark{
    font-size:29px;
  }
  .rh-brand-name{
    font-size:10px;
    letter-spacing:.075em;
  }
  .rh-mobile-toggle{
    width:44px;
    height:44px;
    display:grid;
    place-content:center;
    border-radius:12px;
    background:rgba(255,255,255,.045);
    border:1px solid rgba(255,255,255,.08);
  }
  .rh-mobile-toggle span{
    width:22px;
    margin:3px 0;
  }
  .rh-mobile-toggle.is-open span:nth-child(1){
    transform:translateY(8px) rotate(45deg);
  }
  .rh-mobile-toggle.is-open span:nth-child(2){
    opacity:0;
  }
  .rh-mobile-toggle.is-open span:nth-child(3){
    transform:translateY(-8px) rotate(-45deg);
  }
  .rh-nav{
    left:14px;
    right:14px;
    top:calc(66px + var(--rh-safe-top));
    padding:12px;
    border-radius:20px;
    background:rgba(13,14,16,.98);
    box-shadow:0 28px 80px rgba(0,0,0,.60);
  }
  .rh-nav ul{
    gap:2px;
  }
  .rh-nav a{
    min-height:46px;
    display:flex;
    align-items:center;
    border-radius:12px;
    padding:0 13px;
    font-size:15px;
  }
  .rh-nav li a:hover,
  .rh-nav .current-menu-item > a{
    background:rgba(226,11,8,.12);
  }
  .rh-nav .rh-btn{
    min-height:48px;
    margin-top:8px;
  }

  .rh-section{
    padding:64px 0;
  }
  .rh-section--tight{
    padding:52px 0;
  }
  .rh-page-hero{
    padding:56px 0 40px;
  }
  .rh-eyebrow{
    font-size:10px;
    letter-spacing:.14em;
    margin-bottom:10px;
  }
  .rh-title-xl{
    font-size:clamp(43px,13vw,61px);
    line-height:.96;
    letter-spacing:-.052em;
    max-width:100%;
  }
  .rh-title-lg{
    font-size:clamp(33px,10vw,46px);
    line-height:1.02;
    letter-spacing:-.045em;
  }
  .rh-title-md{
    font-size:23px;
  }
  .rh-lead{
    font-size:17px;
    line-height:1.58;
  }

  .rh-hero{
    min-height:auto;
    padding:54px 0 46px;
  }
  .rh-hero::before{
    background-size:40px 40px;
  }
  .rh-hero-grid{
    display:flex;
    flex-direction:column;
    gap:32px;
  }
  .rh-hero-copy{
    width:100%;
  }
  .rh-hero-copy p{
    margin-top:20px;
  }
  .rh-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-top:24px;
  }
  .rh-actions .rh-btn{
    width:100%;
    min-height:54px;
  }
  .rh-trust-row{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-top:24px;
    font-size:12px;
  }
  .rh-hero-visual{
    min-height:360px;
    width:100%;
    border-radius:25px;
    box-shadow:0 22px 55px rgba(0,0,0,.40);
  }
  .rh-hero-visual::before{
    right:-10px;
    bottom:-28px;
    font-size:160px;
  }
  .rh-hero-card{
    border-radius:16px;
    padding:14px 15px;
  }
  .rh-hero-card--top{
    top:14px;
    right:14px;
    left:14px;
  }
  .rh-hero-card--bottom{
    left:14px;
    right:14px;
    bottom:14px;
  }
  .rh-phone-big{
    font-size:18px;
  }
  .rh-car-silhouette{
    left:8%;
    right:8%;
    bottom:27%;
    height:112px;
    border-radius:75px 95px 22px 20px;
  }
  .rh-car-silhouette::before{
    left:22%;
    top:-40px;
    width:49%;
    height:56px;
  }
  .rh-car-silhouette::after{
    left:9%;
    right:8%;
    bottom:-26px;
    height:54px;
    background:
      radial-gradient(circle at 20% 50%,#17181a 0 21px,#777 22px 25px,transparent 26px),
      radial-gradient(circle at 82% 50%,#17181a 0 21px,#777 22px 25px,transparent 26px);
  }

  .rh-grid,
  .rh-grid--2,
  .rh-grid--3{
    grid-template-columns:1fr;
    gap:14px;
  }
  .rh-card{
    padding:21px;
    border-radius:20px;
  }
  .rh-card:hover{
    transform:none;
  }
  .rh-icon{
    width:46px;
    height:46px;
    border-radius:14px;
    font-size:21px;
    margin-bottom:16px;
  }
  .rh-price{
    font-size:23px;
    margin-top:15px;
  }
  .rh-price-card .rh-price{
    font-size:31px;
  }
  .rh-price-meta{
    font-size:12px;
  }

  .rh-split{
    grid-template-columns:1fr;
    gap:34px;
  }
  .rh-visual-panel{
    min-height:340px;
    border-radius:24px;
  }
  .rh-visual-panel::after{
    font-size:125px;
    right:-8px;
    bottom:-30px;
  }
  .rh-floating-note{
    left:14px;
    right:14px;
    bottom:14px;
    padding:17px;
    border-radius:16px;
  }
  .rh-checklist{
    gap:12px;
    margin:22px 0;
  }
  .rh-check{
    gap:10px;
  }
  .rh-check::before{
    flex-basis:24px;
    width:24px;
    height:24px;
  }

  .rh-notice{
    padding:16px;
    font-size:13px;
    border-radius:0 14px 14px 0;
  }
  .rh-cta{
    padding:27px 20px;
    border-radius:23px;
  }
  .rh-cta::after{
    font-size:120px;
    bottom:-40px;
  }
  .site-footer{
    padding:50px 0 26px;
  }
  .rh-footer-grid{
    gap:30px;
  }
  .rh-copyright{
    margin-top:30px;
  }

  .rh-form{
    gap:13px;
  }
  .rh-form input,
  .rh-form select,
  .rh-form textarea{
    min-height:50px;
    font-size:16px; /* prevents iOS input zoom */
    border-radius:13px;
  }
  .rh-form textarea{
    min-height:130px;
  }
  .rh-form button{
    min-height:54px;
  }

  .rh-mobile-cta{
    left:8px;
    right:8px;
    bottom:calc(8px + var(--rh-safe-bottom));
    grid-template-columns:1.05fr .95fr;
    gap:7px;
    padding:7px;
    border-radius:17px;
    box-shadow:0 18px 45px rgba(0,0,0,.50);
  }
  .rh-mobile-cta .rh-btn{
    min-height:48px;
    border-radius:13px;
    font-size:13px;
  }
  .rh-floating-emergency{
    display:none;
  }
}

/* Very small phones */
@media (max-width:390px){
  .rh-container{
    width:min(100% - 20px,var(--rh-container));
  }
  .rh-title-xl{
    font-size:42px;
  }
  .rh-title-lg{
    font-size:32px;
  }
  .rh-brand-name{
    display:none;
  }
  .rh-hero-visual{
    min-height:335px;
  }
  .rh-mobile-cta .rh-btn{
    font-size:12px;
    padding-inline:9px;
  }
}

/* Landscape phones */
@media (max-width:900px) and (orientation:landscape){
  .rh-hero{
    padding-top:40px;
  }
  .rh-hero-grid{
    grid-template-columns:1.1fr .9fr;
    display:grid;
  }
  .rh-hero-visual{
    min-height:390px;
  }
  .rh-title-xl{
    font-size:54px;
  }
}

/* Print */
@media print{
  .site-header,
  .site-footer,
  .rh-mobile-cta,
  .rh-floating-emergency,
  .rh-actions{
    display:none!important;
  }
  body{
    background:#fff;
    color:#111;
    padding:0;
  }
  .rh-card{
    break-inside:avoid;
    background:#fff;
    color:#111;
    box-shadow:none;
    border:1px solid #ccc;
  }
}



/* =========================================================
   RH PREMIUM IMAGE SYSTEM
   ========================================================= */
.rh-image-cover{
  width:100%;
  height:100%;
  object-fit:cover;
}
.rh-hero-visual--photo{
  background:#0b0c0e;
}
.rh-hero-visual--photo::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(7,7,7,.20),transparent 45%),
    linear-gradient(0deg,rgba(7,7,7,.46),transparent 45%);
  z-index:1;
}
.rh-hero-visual--photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.rh-hero-visual--photo .rh-hero-card{
  z-index:2;
}
.rh-service-media{
  margin:-28px -28px 22px;
  height:190px;
  overflow:hidden;
  border-radius:24px 24px 0 0;
  position:relative;
  background:#0d0e10;
}
.rh-service-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom,transparent 48%,rgba(10,10,11,.72));
}
.rh-service-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.rh-card:hover .rh-service-media img{
  transform:scale(1.045);
}
.rh-visual-panel--photo{
  background:#111;
}
.rh-visual-panel--photo::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(7,7,7,.58),transparent 55%);
  z-index:1;
}
.rh-visual-panel--photo img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.rh-visual-panel--photo .rh-floating-note{
  z-index:2;
}
.rh-wide-photo{
  min-height:380px;
  border-radius:28px;
  overflow:hidden;
  position:relative;
  border:1px solid var(--rh-border);
  box-shadow:var(--rh-shadow);
}
.rh-wide-photo img{
  width:100%;
  height:100%;
  min-height:380px;
  object-fit:cover;
}
.rh-wide-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(7,7,7,.70),transparent 60%);
}
.rh-wide-photo-content{
  position:absolute;
  z-index:2;
  left:36px;
  bottom:34px;
  max-width:520px;
}
@media(max-width:680px){
  .rh-service-media{
    height:175px;
    margin:-21px -21px 18px;
    border-radius:20px 20px 0 0;
  }
  .rh-hero-visual--photo img{
    object-position:58% center;
  }
  .rh-wide-photo{
    min-height:330px;
  }
  .rh-wide-photo img{
    min-height:330px;
    object-position:62% center;
  }
  .rh-wide-photo-content{
    left:20px;
    right:20px;
    bottom:20px;
  }
}
