/* ==========================================================================
   Tommy Reinigung – Basis-Styles des Themes.
   Farben/Schriften der Inhalte kommen aus Elementor (Website-Einstellungen).
   ========================================================================== */
:root{
	--tommy-navy:#0B1F4D;
	--tommy-navy-dark:#081A40;
	--tommy-blue:#0B6BF2;
	--tommy-blue-dark:#0952C2;
	--tommy-sky:#EEF5FF;
	--tommy-text:#4A5568;
	--tommy-border:#E1E8F2;
	--tommy-radius:10px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--tommy-text);background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto}
a{color:var(--tommy-blue)}
h1,h2,h3,h4,h5,h6{font-family:"Outfit","Inter",sans-serif;color:var(--tommy-navy);line-height:1.15}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.tommy-skip-link{position:absolute;left:-9999px;top:8px;z-index:100000;background:#fff;color:var(--tommy-navy);padding:10px 16px;border-radius:6px;font-weight:600}
.tommy-skip-link:focus{left:8px}
[id]{scroll-margin-top:120px}

/* Header fixiert */
.tommy-site-header.is-sticky{position:sticky;top:0;z-index:999}
body.admin-bar .tommy-site-header.is-sticky{top:32px}
@media (max-width:782px){body.admin-bar .tommy-site-header.is-sticky{top:0}}
.tommy-site-header.is-scrolled{box-shadow:0 6px 24px rgba(11,31,77,.10)}

/* Fallback-Header/Footer (ohne Elementor-Vorlage) */
.tommy-fallback-header{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1200px;margin:0 auto;padding:18px 20px;background:#fff}
.tommy-fallback-header ul{display:flex;gap:24px;list-style:none;margin:0;padding:0}
.tommy-fallback-header a{color:var(--tommy-navy);text-decoration:none;font-weight:500}
.tommy-logo-text{font-family:"Outfit",sans-serif;font-weight:800;font-size:28px;letter-spacing:-.5px}
.tommy-logo-text span{color:var(--tommy-blue)}
.tommy-fallback-footer{background:var(--tommy-navy);color:#fff;text-align:center;padding:30px 20px}

/* Inhalte ohne Elementor (z. B. 404) */
.tommy-content{max-width:860px;margin:0 auto;padding:60px 20px 80px}
.tommy-content__title{font-size:clamp(30px,4vw,44px);margin:0 0 24px}

/* Buttons (Theme) */
.tommy-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--tommy-blue);color:#fff;border:2px solid var(--tommy-blue);padding:12px 22px;border-radius:6px;font-weight:600;text-decoration:none;line-height:1.2;transition:background .2s,color .2s,border-color .2s}
.tommy-btn:hover,.tommy-btn:focus{background:var(--tommy-blue-dark);border-color:var(--tommy-blue-dark);color:#fff}
.tommy-btn--outline{background:transparent;color:var(--tommy-blue)}
.tommy-btn--outline:hover,.tommy-btn--outline:focus{background:var(--tommy-blue);color:#fff}

/* ---------- Elementor-Helfer ---------- */
/* Karten mit Hover */
.tommy-card{transition:transform .25s ease,box-shadow .25s ease}
.tommy-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(11,31,77,.12)!important}
.tommy-card .elementor-widget-image img{transition:transform .5s ease}
.tommy-card:hover .elementor-widget-image img{transform:scale(1.04)}
.tommy-card .elementor-widget-image{overflow:hidden}
/* Überschrift mit blauem Strich darunter */
.tommy-underline .elementor-heading-title::after{content:"";display:block;width:64px;height:3px;background:var(--tommy-blue);border-radius:3px;margin-top:14px}
.tommy-underline.elementor-widget-heading[class*="align-center"] .elementor-heading-title::after,
.tommy-underline-center .elementor-heading-title::after{margin-left:auto;margin-right:auto}
.tommy-underline .elementor-heading-title[style*="center"]::after{margin-left:auto;margin-right:auto}
/* Hervorgehobener Text in Überschriften */
.elementor-heading-title .tommy-hl{color:#5CB8FF}
.elementor-heading-title .tommy-blue{color:var(--tommy-blue)}
/* Trennlinien zwischen Vertrauens-Punkten */
@media (min-width:768px){.tommy-trust > .e-con:not(:last-child),.tommy-trust > .e-con-inner > .e-con:not(:last-child){border-right:1px solid #CFDBEA}}
/* Schritt-Pfeile */
@media (max-width:1024px){.tommy-step-arrow{display:none!important}}
/* Vorher/Nachher Label */
.tommy-badge .elementor-heading-title{display:inline-block}
/* Breadcrumb */
.elementor-widget.tommy-breadcrumb a{color:inherit;text-decoration:none;opacity:.85}
.tommy-breadcrumb a:hover{opacity:1;text-decoration:underline}
.tommy-breadcrumb p{margin:0}
/* Harz-Hinweis */
.tommy-harz-note{border-left:4px solid var(--tommy-blue)}
/* Fließtext-Absätze */
.elementor-widget-text-editor p:last-child{margin-bottom:0}
/* Toggle (FAQ) */
.elementor-widget-toggle .elementor-tab-title{border-radius:8px}
.elementor-widget-toggle .elementor-toggle-item{background:#fff;border:1px solid var(--tommy-border);border-radius:8px;margin-bottom:12px}
.elementor-widget-toggle .elementor-toggle-item .elementor-tab-title,.elementor-widget-toggle .elementor-toggle-item .elementor-tab-content{border:0!important}
.elementor-widget-toggle .elementor-toggle-icon{float:right!important;text-align:right!important}

/* ---------- Navigation (Widget „Tommy Navigation“) ---------- */
.tommy-nav{--tommy-nav-color:#0B1F4D;--tommy-nav-active:#0B6BF2;--tommy-nav-gap:30px;--tommy-nav-dropdown-bg:#fff;--tommy-nav-toggle:#0B1F4D;position:relative}
.tommy-nav__menu{display:flex;flex-wrap:wrap;align-items:center;gap:var(--tommy-nav-gap);list-style:none;margin:0;padding:0}
.tommy-nav__menu li{position:relative;margin:0}
.tommy-nav .tommy-nav__menu a{display:block;color:var(--tommy-nav-color);text-decoration:none;font-family:"Inter",sans-serif;font-weight:500;font-size:15px;padding:8px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;white-space:nowrap}
.tommy-nav .tommy-nav__menu > li > a:hover,.tommy-nav .tommy-nav__menu > li > a:focus,.tommy-nav .tommy-nav__menu > .current-menu-item > a,.tommy-nav .tommy-nav__menu > .current-menu-ancestor > a,.tommy-nav .tommy-nav__menu > .current-menu-parent > a{color:var(--tommy-nav-active);border-bottom-color:var(--tommy-nav-active)}
.tommy-nav .tommy-nav__menu > .current-menu-item > a[href*="#"]:not(:hover){color:var(--tommy-nav-color);border-bottom-color:transparent}
.tommy-nav__menu .menu-item-has-children > a{padding-right:16px}
.tommy-nav__menu .menu-item-has-children > a::after{content:"";position:absolute;right:0;top:50%;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg)}
.tommy-nav__menu .sub-menu{list-style:none;margin:0;padding:10px 0;position:absolute;left:-18px;top:100%;min-width:290px;background:var(--tommy-nav-dropdown-bg);border-radius:10px;box-shadow:0 16px 40px rgba(11,31,77,.16);opacity:0;visibility:hidden;transform:translateY(8px);transition:all .2s;z-index:50}
.tommy-nav__menu li:hover > .sub-menu,.tommy-nav__menu li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:none}
.tommy-nav .tommy-nav__menu .sub-menu a{padding:9px 20px;font-size:15px;white-space:normal;border:0}
.tommy-nav .tommy-nav__menu .sub-menu a:hover,.tommy-nav .tommy-nav__menu .sub-menu .current-menu-item > a{color:var(--tommy-nav-active);background:#F2F7FF}
.tommy-nav__toggle{display:none;background:transparent;border:0;padding:10px;cursor:pointer;width:46px;height:42px;flex-direction:column;justify-content:center;gap:6px}
.tommy-nav__toggle-bar{display:block;width:26px;height:3px;border-radius:3px;background:var(--tommy-nav-toggle);transition:transform .25s,opacity .25s}
.tommy-nav__toggle[aria-expanded="true"] .tommy-nav__toggle-bar:nth-child(1){transform:translateY(9px) rotate(45deg)}
.tommy-nav__toggle[aria-expanded="true"] .tommy-nav__toggle-bar:nth-child(2){opacity:0}
.tommy-nav__toggle[aria-expanded="true"] .tommy-nav__toggle-bar:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
.tommy-nav__cta{display:none}
@media (max-width:1024px){
	.tommy-nav--bp-tablet .tommy-nav__toggle{display:flex;margin-left:auto}
	.tommy-nav--bp-tablet .tommy-nav__panel{display:none;position:fixed;left:0;right:0;top:var(--tommy-header-h,72px);bottom:0;background:#fff;overflow:auto;padding:12px 20px 40px;box-shadow:0 20px 30px rgba(11,31,77,.12);z-index:998}
	.tommy-nav--bp-tablet.is-open .tommy-nav__panel{display:block}
	.tommy-nav--bp-tablet .tommy-nav__menu{flex-direction:column;align-items:stretch;gap:0}
	.tommy-nav--bp-tablet .tommy-nav__menu > li{border-bottom:1px solid var(--tommy-border)}
	.tommy-nav--bp-tablet .tommy-nav__menu a,.tommy-nav.tommy-nav--bp-tablet .tommy-nav__menu > li > a{padding:14px 0;font-size:17px;border:0}
	.tommy-nav--bp-tablet .tommy-nav__menu .menu-item-has-children > a::after{right:6px}
	.tommy-nav--bp-tablet .tommy-nav__menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;min-width:0;padding:0 0 10px 14px;display:none;background:transparent}
	.tommy-nav--bp-tablet .tommy-nav__menu li.is-open > .sub-menu{display:block}
	.tommy-nav.tommy-nav--bp-tablet .tommy-nav__menu .sub-menu a{padding:9px 0;font-size:16px}
	.tommy-nav--bp-tablet .tommy-nav__cta{display:flex;margin-top:22px;justify-content:center;background:var(--tommy-blue);color:#fff;text-decoration:none;font-weight:600;padding:14px 18px;border-radius:6px}
}
@media (max-width:767px){
	.tommy-nav--bp-mobile .tommy-nav__toggle{display:flex;margin-left:auto}
	.tommy-nav--bp-mobile .tommy-nav__panel{display:none;position:fixed;left:0;right:0;top:var(--tommy-header-h,72px);bottom:0;background:#fff;overflow:auto;padding:12px 20px 40px;z-index:998}
	.tommy-nav--bp-mobile.is-open .tommy-nav__panel{display:block}
	.tommy-nav--bp-mobile .tommy-nav__menu{flex-direction:column;align-items:stretch;gap:0}
	.tommy-nav--bp-mobile .tommy-nav__menu .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;display:none}
	.tommy-nav--bp-mobile .tommy-nav__menu li.is-open > .sub-menu{display:block}
	.tommy-nav--bp-mobile .tommy-nav__cta{display:flex;margin-top:22px;justify-content:center;background:var(--tommy-blue);color:#fff;text-decoration:none;font-weight:600;padding:14px 18px;border-radius:6px}
}
body.tommy-menu-open{overflow:hidden}

/* ---------- Kontaktformular ---------- */
.tommy-form{--tommy-field-border:#D5DEEA;background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(11,31,77,.08);padding:28px}
.tommy-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
.tommy-form__field--wide{grid-column:1/-1}
.tommy-form__field label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:var(--tommy-navy)}
.tommy-form input[type=text],.tommy-form input[type=email],.tommy-form input[type=tel],.tommy-form select,.tommy-form textarea{width:100%;font:inherit;font-size:15px;color:#1A202C;background:#fff;border:1px solid var(--tommy-field-border);border-radius:6px;padding:11px 13px;line-height:1.4;transition:border-color .2s,box-shadow .2s;appearance:none;-webkit-appearance:none}
.tommy-form select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230B1F4D' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.tommy-form textarea{min-height:110px;resize:vertical}
.tommy-form input:focus,.tommy-form select:focus,.tommy-form textarea:focus{outline:0;border-color:var(--tommy-blue);box-shadow:0 0 0 3px rgba(11,107,242,.15)}
.tommy-form .is-invalid{border-color:#E53E3E!important;box-shadow:0 0 0 3px rgba(229,62,62,.12)!important}
.tommy-form__privacy{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:18px 0 0;color:var(--tommy-text);cursor:pointer}
.tommy-form__privacy input{margin-top:3px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--tommy-blue)}
.tommy-form__privacy.is-invalid span{color:#E53E3E}
.tommy-form__submit{margin-top:20px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--tommy-blue);color:#fff;border:0;border-radius:6px;padding:15px 22px;font:600 16px/1.2 "Inter",sans-serif;cursor:pointer;transition:background .2s}
.tommy-form__submit[disabled]{opacity:.7;cursor:wait}
.tommy-form__message{margin-top:14px;padding:12px 14px;border-radius:6px;font-size:15px}
.tommy-form__message[data-state="ok"]{background:#E6F6EC;color:#1E6B3A}
.tommy-form__message[data-state="error"]{background:#FDECEC;color:#9B2C2C}
.tommy-form__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
@media (max-width:600px){.tommy-form__grid{grid-template-columns:1fr}.tommy-form{padding:20px}}

/* ---------- Google-Bewertungen ---------- */
.tommy-reviews{--tommy-star:#FBBC04}
.tommy-reviews__summary{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:#fff;border:1px solid var(--tommy-border);border-radius:14px;padding:22px 26px;margin-bottom:24px;box-shadow:0 8px 30px rgba(11,31,77,.06)}
.tommy-reviews__summary > .tommy-reviews__g{width:46px;height:46px;flex:0 0 auto}
.tommy-reviews__summary-main{flex:1 1 220px}
.tommy-reviews__label{font-family:"Outfit",sans-serif;font-weight:600;color:var(--tommy-navy);font-size:18px}
.tommy-reviews__score{display:flex;align-items:center;gap:10px;margin:2px 0}
.tommy-reviews__score strong{font-family:"Outfit",sans-serif;font-size:30px;color:var(--tommy-navy);line-height:1}
.tommy-reviews__count{font-size:14px}
.tommy-reviews__actions{display:flex;gap:10px;flex-wrap:wrap}
.tommy-stars{display:inline-flex;gap:2px;color:var(--tommy-star);vertical-align:middle}
.tommy-star{width:20px;height:20px}
.tommy-star path{fill:currentColor}
.tommy-star--empty path{fill:#D9DEE7}
.tommy-star--half path{fill:url(#tsh)}
.tommy-reviews__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tommy-reviews__card{margin:0;background:#fff;border:1px solid var(--tommy-border);border-radius:14px;padding:22px;box-shadow:0 8px 30px rgba(11,31,77,.05);display:flex;flex-direction:column;gap:10px}
.tommy-reviews__head{display:flex;align-items:center;gap:12px}
.tommy-reviews__head figcaption{flex:1;display:flex;flex-direction:column;line-height:1.3}
.tommy-reviews__head .tommy-reviews__g{width:22px;height:22px}
.tommy-reviews__avatar{width:42px;height:42px;border-radius:50%;background:var(--tommy-blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:"Outfit",sans-serif;font-size:18px}
.tommy-reviews__name{font-weight:600;color:var(--tommy-navy)}
.tommy-reviews__meta{font-size:13px;color:#718096}
.tommy-reviews__text{margin:0;font-size:15px;line-height:1.6;color:var(--tommy-text)}
@media (max-width:1024px){.tommy-reviews__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.tommy-reviews__grid{grid-template-columns:1fr}.tommy-reviews__summary{padding:18px}}

/* ---------- Schnellkontakt (WhatsApp / Viber / Anruf) ---------- */
.tommy-fab{position:fixed;bottom:22px;z-index:9990;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.tommy-fab--right{right:22px}
.tommy-fab--left{left:22px;align-items:flex-start}
.tommy-fab--editor{position:relative;bottom:auto;right:auto;left:auto;flex-direction:row;align-items:center}
.tommy-fab__btn{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.22);transition:transform .2s}
.tommy-fab__btn:hover,.tommy-fab__btn:focus{transform:scale(1.08);color:#fff}
.tommy-fab__btn svg{width:30px;height:30px}
.tommy-fab__btn--whatsapp{background:#25D366}
.tommy-fab__btn--viber{background:#7360F2;width:50px;height:50px}
.tommy-fab__btn--viber svg{width:26px;height:26px}
.tommy-fab__btn--phone{background:var(--tommy-blue);width:50px;height:50px}
.tommy-fab__btn--phone svg{width:24px;height:24px}
.tommy-fab__bubble{position:absolute;right:72px;bottom:12px;white-space:nowrap;background:#fff;color:var(--tommy-navy);font-size:14px;font-weight:500;padding:9px 14px;border-radius:10px;box-shadow:0 6px 20px rgba(11,31,77,.15);opacity:0;transform:translateX(8px);transition:all .25s;pointer-events:none}
.tommy-fab--left .tommy-fab__bubble{right:auto;left:72px}
.tommy-fab:hover .tommy-fab__bubble,.tommy-fab:focus-within .tommy-fab__bubble{opacity:1;transform:none}
.tommy-fab--editor .tommy-fab__bubble{position:static;opacity:1;transform:none}
@media (min-width:768px){.tommy-fab__btn--mobile-only{display:none}}
@media (max-width:767px){.tommy-fab__bubble{display:none}.tommy-fab{bottom:16px}.tommy-fab--right{right:14px}.tommy-fab--left{left:14px}}

/* Schritt-Nummern */
.tommy-num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--tommy-blue);color:#fff;font:700 17px/1 "Outfit",sans-serif}
.tommy-num--outline{background:#fff;color:var(--tommy-blue);border:2px solid var(--tommy-blue);width:44px;height:44px;font-size:20px}
/* Vorher/Nachher Pfeil */
.tommy-ba{position:relative}
.tommy-ba::after{content:"";position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 24 24' fill='none' stroke='%230B1F4D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/26px no-repeat;box-shadow:0 6px 20px rgba(11,31,77,.25);z-index:2}
@media (max-width:767px){.tommy-ba::after{transform:rotate(90deg)}}
/* Rechtstexte */
.tommy-legal h2{font-size:24px;margin:34px 0 10px}
.tommy-legal p{margin:0 0 14px}
/* Menü-Symbol: nicht vom globalen Button-Stil überschreiben lassen */
.tommy-nav button.tommy-nav__toggle,.tommy-nav button.tommy-nav__toggle:hover,.tommy-nav button.tommy-nav__toggle:focus{background:transparent!important;border:0!important;box-shadow:none!important;padding:8px!important;border-radius:6px!important;color:var(--tommy-nav-toggle)}
/* Hero auf dem Handy: Bild stärker abdunkeln, damit der Text gut lesbar ist */
@media (max-width:767px){
	.tommy-hero.e-con::before,.tommy-hero > .elementor-background-overlay{background-image:none!important;background-color:rgba(10,35,80,.78)!important;opacity:1!important}
	.tommy-trust .elementor-icon-box-title{line-height:1.25}
}
.tommy-fab a.tommy-fab__btn,.tommy-fab a.tommy-fab__btn:hover,.tommy-fab a.tommy-fab__btn:focus{color:#fff}
body.tommy-menu-open .tommy-fab{display:none}
.tommy-nav .tommy-nav__menu .menu-item-has-children > a{position:relative}
