/* ==========================================================================
   Metzgerei Kremser — brand fonts & design tokens (ported from Webflow)
   ========================================================================== */

@font-face {
	font-family: "Outfit";
	src: url("fonts/Outfit-VariableFont_wght.ttf") format("truetype");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "ChangaOne";
	src: url("fonts/ChangaOne-Regular.ttf") format("truetype");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "ShyCowboy";
	src: url("fonts/ShyCowboy.otf") format("opentype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

:root {
	--mk-background: #effafb;
	--mk-red: #dd1a1c;
	--mk-black: #3a3131;
	--mk-primary: #ff9e9e;
	--mk-white: #ffffff;
	--mk-shadow: rgba(255, 158, 158, 0.2);
	--mk-sky: #78a9df;
}

/* ---- Base typography -------------------------------------------------- */
body,
.ast-container,
p, li, a, span, div, input, textarea, button, select {
	font-family: "Outfit", "Helvetica Neue", Arial, sans-serif;
}

/* Astra sets body{overflow-x:hidden}, which forces overflow-y to compute as
   `auto` and turns <body> into a nested scroll container (breaks page scroll).
   `clip` prevents the forced-auto side effect. */
html { overflow-x: clip; }
body { overflow-x: clip !important; overflow-y: visible !important; }

body {
	color: var(--mk-black);
	background-color: var(--mk-background);
	background-image: url("img/tiles.jpg");
	background-position: 0 0;
	background-size: auto;      /* natural tile size, like the original */
	background-repeat: repeat;
	background-attachment: scroll;
}

/* Headings use the Changa One display face, brand red by default */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.entry-title {
	font-family: "ChangaOne", "Helvetica Neue", Arial, sans-serif !important;
	font-weight: 400;
	letter-spacing: normal;
	color: var(--mk-red) !important;
}

/* Body copy default */
p, li { line-height: 1.6; }

/* Utility classes reused inside Elementor HTML/text where handy */
.mk-shy { font-family: "ShyCowboy", cursive !important; }
.mk-red { color: var(--mk-red) !important; }
.mk-white { color: #fff !important; }

/* Elementor container width to match the Webflow 1200px content column */
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con-boxed > .e-con-inner { max-width: 1200px; }

/* Section headings (h2) match Webflow 55px Changa One */
h2, h2.elementor-heading-title { font-size: 55px; line-height: 1.25; }

/* Force the two-column widths in CSS — Elementor's container width control
   doesn't reliably apply to columns inside a boxed container, and an image's
   intrinsic width otherwise blows the column up. min-width:0 lets them shrink. */
.mk-hero > .e-con-inner > .e-con,
.mk-note > .e-con-inner > .e-con { min-width: 0; }
.mk-hero > .e-con-inner > .e-con.mk-hero-img { flex: 0 0 40%; max-width: 480px; }
.mk-hero > .e-con-inner > .e-con:not(.mk-hero-img) { flex: 1 1 55%; max-width: 56%; }
.mk-note > .e-con-inner > .e-con.mk-note-img { flex: 0 0 47%; max-width: 47%; }
.mk-note > .e-con-inner > .e-con:not(.mk-note-img) { flex: 1 1 47%; max-width: 50%; }
.mk-hero-img img, .mk-note-img img { min-width: 0; }

/* Pink eyebrow pill labels (e.g. "Warum Metzgerei Kremser?", "Kundenstimmen") */
.mk-eyebrow p, .mk-eyebrow-center p {
	display: inline-block; background: var(--mk-primary); color: #fff !important;
	border-radius: 15px; padding: 5px 14px; font-size: 20px; font-weight: 400;
	font-family: "Outfit", sans-serif; margin: 0 0 16px;
}
.mk-eyebrow-center { text-align: center; }

/* Astra: remove default content padding so full-width Elementor sections bleed */
.ast-plain-container.ast-no-sidebar #primary { padding: 0; }
.ast-plain-container.ast-no-sidebar #primary .ast-article-single { padding: 0; }
#page .site-content > .ast-container { max-width: 100%; padding: 0; }

/* ==========================================================================
   Header (HFE) — red bar, white logo, white nav, white "Bestellen" pill
   ========================================================================== */
.mk-header { min-height: 118px; }
.mk-header img { height: 64px; width: auto; }

/* HFE navigation menu */
.mk-nav .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item > a.hfe-menu-item,
.mk-nav .hfe-nav-menu a.hfe-menu-item {
	color: #fff !important;
	font-family: "Outfit", sans-serif !important;
	font-size: 18px;
	font-weight: 500;
	padding: 8px 18px;
}
.mk-nav .hfe-nav-menu a.hfe-menu-item:hover,
.mk-nav .hfe-nav-menu .current-menu-item > a.hfe-menu-item {
	color: #fff !important;
	text-decoration: underline;
	text-underline-offset: 6px;
}
/* mobile toggle color */
.mk-nav .hfe-nav-menu-icon,
.mk-nav button.hfe-menu-toggle { color: #fff; border-color: #fff; }

/* "Bestellen" button (used in header) — light fill, red text, radius 20 */
.mk-btn-order .elementor-button,
a.mk-btn-order {
	background-color: var(--mk-background) !important;
	color: var(--mk-red) !important;
	font-family: "Outfit", sans-serif !important;
	font-weight: 500;
	font-size: 18px;
	border-radius: 20px;
	padding: 12px 30px;
}
.mk-btn-order .elementor-button:hover { background-color: #fff !important; }

/* ==========================================================================
   Footer (HFE) — red background, white text, 4 columns
   ========================================================================== */
.mk-footer { background-color: var(--mk-red); color: #fff; }
.mk-footer, .mk-footer p, .mk-footer li, .mk-footer a, .mk-footer span { color: #fff !important; }
.mk-footer a { text-decoration: none; }
.mk-footer a:hover { text-decoration: underline; }
.mk-footer .elementor-heading-title { color: #fff !important; font-size: 22px; margin-bottom: 4px; }
.mk-footer img { height: 56px; width: auto; }
.mk-footer .mk-foot-links a { display: block; padding: 6px 0; }
.mk-footer-copy { border-top: 1px solid rgba(255,255,255,.25); }
.mk-footer-copy, .mk-footer-copy * { color: rgba(255,255,255,.75) !important; font-size: 14px; }

/* ==========================================================================
   Home page helpers
   ========================================================================== */
.mk-hero-h1 .elementor-heading-title { font-size: 70px; line-height: 1.2; margin-bottom: 30px; }
.mk-section-title .elementor-heading-title { font-size: 55px; line-height: 1.25; text-align: center; }
.mk-stat-num .elementor-heading-title { font-size: 46px; color: var(--mk-primary) !important; line-height: 1; }
.mk-stat-label { color: var(--mk-primary); }
.mk-btn-outline .elementor-button {
	background: transparent !important; color: var(--mk-red) !important;
	border: 2px solid var(--mk-red); border-radius: 20px; font-weight:500; font-size:18px;
	font-family:"Outfit",sans-serif !important; padding: 12px 40px;
}
.mk-btn-outline .elementor-button:hover { background: var(--mk-red) !important; color:#fff !important; }
.mk-check-list .elementor-icon-list-item { align-items: flex-start; margin-bottom: 14px; }

/* ---- Hero ---- */
.mk-hero { padding: 50px 0 60px; }
.mk-hero-sub { font-size: 22px; line-height: 1.5; max-width: 560px; margin-bottom: 40px; }
.mk-hero-sub a { color: var(--mk-red); font-weight: 700; text-decoration: underline; }
.mk-stats { gap: 8px; }
.mk-stat-num .elementor-heading-title { margin: 0; }
.mk-stat-label p { color: var(--mk-primary); margin: 0; }
.mk-hero-img { position: relative; max-width: 480px; margin-left: auto; align-self: stretch; }
.mk-hero-img .elementor-widget-image, .mk-hero-img .elementor-widget-container { height: 100%; }
.mk-hero-img img { border-radius: 60px; display:block; width:100%; height:500px; object-fit:cover; }
.mk-hero-img::after { content:""; position:absolute; inset:0; background: rgba(221,26,28,.28); border-radius:60px; pointer-events:none; }

/* ---- Persönliche Note ---- */
.mk-note { padding: 20px 0 50px; }
.mk-note-img { width: 100%; align-self: stretch; }
.mk-note-img .elementor-widget-image, .mk-note-img .elementor-widget-container { height: 100%; }
.mk-note-img img { width: 100%; height: 100%; min-height: 437px; object-fit: cover; border-radius: 40px; display: block; }
.mk-note-label p {
	display: inline-block; background: var(--mk-primary); color: #fff !important;
	border-radius: 15px; padding: 5px 14px; font-size: 20px; font-weight: 400;
	font-family: "Outfit", sans-serif; margin: 0 0 16px;
}
.mk-check-list ul { list-style: none; margin: 0; padding: 0; }
.mk-check-list li { position: relative; padding-left: 38px; margin-bottom: 10px; font-size: 18px; line-height:1.4; }
.mk-check-list li::before { content:""; position:absolute; left:0; top:2px; width:26px; height:26px;
  background: url("img/check.svg") center/contain no-repeat; }
.mk-check-list li a { color: var(--mk-red); font-weight:700; text-decoration: underline; }

/* ---- Service cards ---- */
.mk-services { padding: 30px 0 50px; }
.mk-service-card { position: relative; min-height: 340px; border-radius: 30px; overflow: hidden;
  display:flex; align-items:flex-end; }
.mk-service-card::after { content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.65) 100%); }
.mk-service-card .elementor-heading-title { position: relative; z-index:2; color:#fff !important;
  font-size: 34px; padding: 22px 26px; }

/* ---- Team ---- */
.mk-team { padding: 30px 0 50px; }
.mk-team-card { background:#fff; border-radius: 30px; padding: 30px; box-shadow: 0 14px 34px var(--mk-shadow);
  text-align:center; height:100%; }
.mk-team-img img { border-radius: 22px; aspect-ratio: 1/1; object-fit: cover; width:100%; }
.mk-team-name .elementor-heading-title { font-size: 26px; margin: 18px 0 4px; }
.mk-team-role p { color: var(--mk-black); font-weight: 600; margin: 0 0 12px; }
.mk-team-bio p { font-size: 16px; }

/* ---- Testimonials ---- */
.mk-testi { padding: 30px 0 50px; }
.mk-testi-card { position: relative; background:#fff; border-radius: 40px; padding: 40px;
  box-shadow: 0 14px 34px var(--mk-shadow); height:100%; overflow:hidden; }
.mk-testi-card::before { content:""; position:absolute; right:22px; bottom:16px; width:120px; height:120px;
  background: url("img/quote.svg") center/contain no-repeat; opacity:.18; }
.mk-testi-quote p { color: var(--mk-red); font-size: 18px; line-height:1.5; position:relative; z-index:2; }
.mk-testi-author { display:flex; align-items:center; gap:14px; margin-top: 22px; position:relative; z-index:2; }
.mk-testi-author img { width:52px; height:52px; border-radius:50%; }
.mk-testi-name p { margin:0; font-weight:700; }
.mk-testi-sub p { margin:0; font-size:14px; color:#8a8a8a; }

/* ---- Support (Haie) ---- */
.mk-support { padding: 20px 0 40px; text-align:center; }
.mk-support-logo img { max-width: 340px; margin: 0 auto; }

/* ---- CTA ---- */
.mk-cta { position: relative; border-radius: 28px; overflow: hidden; margin: 20px 56px 70px;
  padding: 80px 40px; text-align:center; }
.mk-cta::after { content:""; position:absolute; inset:0; background: rgba(9,9,9,.55); }
.mk-cta > * { position: relative; z-index: 2; }
.mk-cta .elementor-heading-title { color:#fff !important; font-size: 46px; margin-bottom: 18px; }
.mk-cta-sub p { color:#fff; font-size: 20px; max-width: 620px; margin: 0 auto 34px; }
.mk-btn-red .elementor-button { background: var(--mk-red) !important; color:#fff !important; border-radius:20px;
  font-family:"Outfit",sans-serif !important; font-weight:500; font-size:18px; padding:12px 40px; border:2px solid var(--mk-red); }

/* Stack the two-column sections on tablet/mobile (desktop is nowrap).
   The flexbox lives on .e-con-inner, so target that. */
@media (max-width: 900px){
  .mk-hero > .e-con-inner, .mk-note > .e-con-inner { flex-direction: column; }
  .mk-hero > .e-con-inner > .e-con, .mk-note > .e-con-inner > .e-con {
    flex: 1 1 auto !important; max-width: 100% !important; width: 100% !important;
  }
  .mk-hero-img { max-width: 100% !important; margin: 0 auto; }
  .mk-hero-img img { height: 340px; }
}
@media (max-width: 767px){
  .mk-hero-h1 .elementor-heading-title { font-size: 44px; }
  .mk-section-title .elementor-heading-title, h2, h2.elementor-heading-title { font-size: 38px; line-height: 1.15; }
  .mk-hero, .mk-note, .mk-services, .mk-team, .mk-testi, .mk-support { padding-left: 22px; padding-right: 22px; }
  .mk-cta { margin-left: 16px; margin-right: 16px; }
  .mk-note-img img { height: 300px; }
  /* stack the 3-up card rows */
  .mk-services .e-con .e-con, .mk-team .e-con .e-con, .mk-testi .e-con .e-con {
    flex-basis: 100% !important; max-width: 100% !important; width: 100% !important;
  }
}
