/* Mona Rühle Immobilien – Stylesheet. Schriften selbst gehostet, keine Drittanbieter. */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/cormorant-garamond-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"LM Roman";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/lm-roman-10-regular.woff2) format("woff2")}
@font-face{font-family:"LM Roman";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/lm-roman-10-italic.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/playfair-display-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/inter-latin-500-normal.woff2) format("woff2")}

:root{
  --bg:#fcf9f6; --ink:#3b3532; --taupe:#7d6962; --taupe-soft:#8c7770;
  --line:#e6ddd6; --panel:#f1ebe4; --white:#fff;
  --serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --gutter:clamp(20px,4vw,48px); --max:1180px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:clamp(19px,1.6vw,22px);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--bg);padding:10px 16px;z-index:100;font-family:var(--sans);font-size:14px}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* Kopfzeile */
.site-header{border-bottom:1px solid var(--line);background:var(--bg)}
.site-header .wrap{padding-top:20px;padding-bottom:0}
.head-top{display:flex;justify-content:space-between;align-items:center;gap:24px}
.logo{display:block;line-height:0}
.logo img{width:clamp(180px,19vw,236px);height:auto}
.head-actions{display:flex;align-items:center;gap:clamp(18px,2.4vw,32px)}
#menu{display:flex;align-items:center;gap:26px;padding:14px 0 16px}
#menu nav{display:flex;gap:clamp(18px,2.6vw,34px);flex-wrap:wrap}
#menu nav a{font-family:var(--sans);font-size:15.5px;letter-spacing:.01em;color:var(--taupe);text-decoration:none;padding:6px 0;border-bottom:1px solid transparent}
#menu nav a:hover,#menu nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)}
.btn{display:inline-block;font-family:var(--sans);font-size:15.5px;font-weight:500;letter-spacing:.01em;text-decoration:none;background:var(--ink);color:#fff;padding:14px 26px;border:1px solid var(--ink);transition:background .2s,color .2s}
.btn:hover{background:transparent;color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.mob-only{display:none}
.phone{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-size:15.5px;color:var(--ink);text-decoration:none;white-space:nowrap}
.phone svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.phone:hover{text-decoration:underline;text-underline-offset:4px}
.menu-btn{display:none;font-family:var(--sans);font-size:15px;background:none;border:1px solid var(--line);color:var(--ink);padding:9px 16px;cursor:pointer}
@media (max-width:900px){
  .site-header .wrap{padding-top:16px;padding-bottom:16px}
  .desk-only{display:none}
  .mob-only{display:inline-block}
  .menu-btn{display:inline-block}
  #menu{display:none;flex-direction:column;align-items:flex-start;gap:16px;padding:12px 0 2px}
  #menu.open{display:flex}
  #menu nav{flex-direction:column;gap:2px;width:100%}
  #menu nav a{font-size:17px;padding:11px 0;border-bottom:1px solid var(--line)}
}
@media (max-width:560px){.phone-num{display:none}.phone{padding:8px}.phone svg{width:22px;height:22px}}

/* Überschriften und Text */
.eyebrow{font-family:var(--sans);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);margin:0}
.eyebrow.orte{font-size:11px;letter-spacing:.12em;color:var(--taupe);margin-top:10px;white-space:nowrap}
@media (max-width:560px){.eyebrow.orte{white-space:normal;line-height:1.9}}
h1,h2,h3{font-weight:400;line-height:1.12;margin:0}
h1{font-size:clamp(44px,7.4vw,92px);letter-spacing:-.005em}
h1 em,h2 em{font-style:italic}
h2{font-size:clamp(32px,4.4vw,52px)}
h3{font-size:clamp(24px,2.6vw,30px)}
.rule{width:64px;height:1px;background:var(--taupe);border:0;margin:34px 0 22px}
.werte{font-family:var(--sans);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);margin:0 0 30px}
.lead{font-size:clamp(21px,2.1vw,26px);color:#5b504b;max-width:34ch;margin:0 0 34px}
.cta-row{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.link{font-family:var(--sans);font-size:15.5px;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:3px}
.link:hover{color:var(--taupe);border-bottom-color:var(--taupe)}

/* Startseite Hero */
.hero{padding:clamp(40px,7vw,88px) 0 clamp(48px,7vw,96px)}
.hero .grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,72px);align-items:center}
.hero-img{margin:0}
.hero-img img{width:100%;height:auto}
@media (max-width:900px){.hero .grid{grid-template-columns:1fr}.hero-img{max-width:480px}}

/* Abschnitte */
section{padding:clamp(48px,7vw,96px) 0}
section.alt{background:var(--panel)}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,48px)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(24px,3vw,40px)}
.card{display:flex;flex-direction:column}
.card-media{position:relative;aspect-ratio:16/9;background:var(--bg);border:1px solid var(--line);display:flex;align-items:flex-end;padding:22px;overflow:hidden}
.card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card-media .ort{position:relative;font-style:italic;font-size:clamp(26px,3vw,34px);color:var(--taupe);line-height:1.1}
.label{position:absolute;top:16px;left:16px;font-family:var(--sans);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;background:var(--bg);color:var(--ink);padding:7px 12px;z-index:2}
.meta{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe);margin:18px 0 8px}
.card h3{margin-bottom:6px}
.facts{font-family:var(--sans);font-size:14.5px;color:var(--taupe);margin:0 0 14px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.card-foot{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.price{font-size:clamp(26px,3vw,32px)}
.empty{padding:28px;background:var(--panel)}

/* Ablauf */
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(26px,3vw,44px) clamp(28px,4vw,56px)}
.steps li{counter-increment:s;border-top:1px solid var(--taupe);padding-top:18px}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font-family:var(--sans);font-size:13px;letter-spacing:.2em;color:var(--taupe);margin-bottom:10px}
.steps h3{margin-bottom:8px}
.steps p{margin:0;color:#5b504b;font-size:19px;line-height:1.55}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:clamp(24px,4vw,56px)}
.cols h3{margin-bottom:10px}
.cols p{margin:0;color:#5b504b;font-size:19px}
.prose{max-width:36em}
.prose p{margin:0 0 1.15em}
.page-title{padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(8px,2vw,20px)}
.page-title h1{font-size:clamp(40px,6vw,72px)}
.quote{font-style:italic;font-size:clamp(26px,3.2vw,38px);line-height:1.25;color:var(--ink);max-width:22em;margin:clamp(30px,5vw,56px) 0 0;padding-top:24px;border-top:1px solid var(--taupe)}
.band{text-align:left}
.band h2{max-width:16em;margin-bottom:26px}
dl.contact{display:grid;grid-template-columns:max-content 1fr;gap:14px 28px;font-family:var(--sans);font-size:16px;margin:0}
dl.contact dt{color:var(--taupe);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;padding-top:4px}
dl.contact dd{margin:0}
dl.contact a{text-decoration:none;border-bottom:1px solid var(--line)}
dl.contact a:hover{border-bottom-color:var(--ink)}
.insta{display:inline-flex;align-items:center;gap:9px}
.insta svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.legal{font-family:var(--sans);font-size:15.5px;line-height:1.7;max-width:46em}
.legal h2{font-family:var(--serif);font-size:30px;margin:2em 0 .5em}
.legal h3{font-family:var(--serif);font-size:23px;margin:1.6em 0 .4em}
.legal p,.legal ul{margin:0 0 1em}
.todo{background:#fff3d6;padding:0 4px}

/* Fußzeile */
.site-footer{background:#efede8;border-top:1px solid #ddd8d0;padding:clamp(40px,6vw,64px) 0 clamp(34px,5vw,48px);font-family:var(--sans);font-size:14.5px;color:#6f655f}
.foot-top{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap}
.foot-logo{display:block;line-height:0}
.foot-logo img{width:clamp(220px,22vw,290px);height:auto}
.foot-links{display:flex;gap:26px;flex-wrap:wrap;padding-bottom:4px}
.foot-links a{font-size:15.5px;color:#6f655f;text-decoration:underline;text-underline-offset:4px}
.foot-links a:hover{color:var(--ink)}
.foot-line{border:0;border-top:1px solid #d6d0c8;margin:28px 0 22px}
.foot-bottom{display:flex;justify-content:space-between;align-items:baseline;gap:12px 32px;flex-wrap:wrap}
.foot-claim{margin:0;font-size:12.5px;letter-spacing:.15em;text-transform:uppercase}
.foot-legal{margin:0;font-size:14px}

/* Objektseiten */
a.plain{text-decoration:none}a.plain:hover{color:var(--taupe)}
.card-media{text-decoration:none}
.card-media img{transition:transform .5s ease}.card-media:hover img{transform:scale(1.02)}
.obj-hero{position:relative;margin:0 0 clamp(32px,5vw,64px)}
.obj-hero img{width:100%;height:auto;max-height:78vh;object-fit:cover}
.obj-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:start}
@media (max-width:900px){.obj-grid{grid-template-columns:minmax(0,1fr)}}
.obj-grid>*{min-width:0}
.facts-dl dd{overflow-wrap:anywhere}
.price.big{font-size:clamp(34px,4vw,48px);margin:0 0 26px}
h2.sub{font-size:clamp(26px,2.8vw,32px);margin:clamp(34px,4vw,52px) 0 14px}
.list{margin:0;padding:0;list-style:none;columns:1}
.list li{padding:9px 0;border-bottom:1px solid var(--line);font-size:19px}
.side{background:var(--panel);padding:clamp(22px,3vw,36px);position:sticky;top:20px}
@media (max-width:900px){.side{position:static}}
.facts-dl{grid-template-columns:1fr;gap:2px 0;font-size:15.5px}
.facts-dl dt{padding-top:12px}
.small{font-family:var(--sans);font-size:14.5px;line-height:1.65;color:#5b504b;margin:0 0 24px}
.cta-col{display:flex;flex-direction:column;gap:18px;align-items:flex-start;margin-top:8px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(14px,2vw,24px)}
.gallery figure{margin:0}
.gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--bg)}
.gallery.plans img{object-fit:contain;aspect-ratio:auto;background:#fff;padding:12px}
.gallery figcaption{font-family:var(--sans);font-size:13px;letter-spacing:.04em;color:var(--taupe);margin-top:8px}

/* Über mich: Foto neben dem Text */
.about{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(28px,6vw,88px);align-items:start}
.about .prose{max-width:none}
.about-img{margin:0}.about-img img{width:100%;max-width:432px;height:auto;margin:0 auto}
@media (max-width:900px){.about{grid-template-columns:minmax(0,1fr)}.about-img{max-width:440px;order:-1}}

/* Leistungen */
.paths{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:clamp(22px,3vw,40px)}
.path{display:block;text-decoration:none;border-top:1px solid var(--taupe);padding-top:18px;color:inherit}
.path-no{display:block;font-family:var(--sans);font-size:13px;letter-spacing:.2em;color:var(--taupe);margin-bottom:10px}
.path h3{margin-bottom:8px}
.path p{margin:0;color:#5b504b;font-size:19px;line-height:1.55}
.path:hover h3{color:var(--taupe)}
.service{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(20px,5vw,72px);align-items:start}
.service .prose{max-width:34em}
@media (max-width:760px){.service{grid-template-columns:minmax(0,1fr)}}

/* Hero-Claim in Latin Modern: „Der Schlüssel“ aufrecht, Rest kursiv */
h1.claim{font-family:"LM Roman","Latin Modern Roman","CMU Serif",Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(36px,5.6vw,72px);line-height:1.12;letter-spacing:0}
h1.claim em{font-style:italic}

/* Energieangaben als Exposé-Bild */
.energie{margin:0;max-width:660px}
.energie img{width:100%;height:auto;border:1px solid var(--line);background:#fff}

/* Eigentümer-Box */
.owner-box{display:flex;justify-content:space-between;align-items:center;gap:clamp(20px,4vw,56px);flex-wrap:wrap;background:#efede8;padding:clamp(28px,4.5vw,56px);margin-top:clamp(32px,5vw,56px)}
.owner-box h3{font-size:clamp(30px,3.6vw,44px);margin:12px 0 14px}
.owner-box h3 em{font-style:italic}
.owner-box p:not(.eyebrow){margin:0;max-width:34em;color:#5b504b;font-size:clamp(19px,1.6vw,21px)}
.owner-box .btn{flex:none}

/* Kontaktseite */
.kontakt{padding-top:clamp(40px,6vw,80px)}
.kontakt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.kontakt-info h1{font-size:clamp(40px,5.2vw,64px);margin:14px 0 22px}
.kontakt-info .lead{max-width:24em;margin-bottom:34px}
.kontakt-info dl.contact{margin-bottom:34px}
.expose{font-family:var(--sans);font-size:14.5px;line-height:1.6;color:var(--taupe);margin:0;padding-top:22px;border-top:1px solid var(--line);max-width:34em}
.expose span{display:block;text-wrap:balance}
.anfrage{background:var(--panel);padding:clamp(24px,3.6vw,44px);display:flex;flex-direction:column;gap:20px;scroll-margin-top:24px}
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-family:var(--sans);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe)}
.field input,.field textarea{font:inherit;font-family:var(--sans);font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--line);padding:13px 14px;border-radius:0;width:100%}
.field textarea{resize:vertical;min-height:130px}
.field input::placeholder{color:#a79b95}
.field input:focus,.field textarea:focus{outline:2px solid var(--ink);outline-offset:1px;border-color:var(--ink)}
.check{display:flex;gap:12px;align-items:flex-start;font-family:var(--sans);font-size:14px;line-height:1.55;color:#5b504b}
.check input{flex:none;width:18px;height:18px;margin-top:2px;accent-color:var(--ink)}
.check a{text-underline-offset:3px}
.form-msg{font-family:var(--sans);font-size:14px;color:var(--ink);margin:0;min-height:0}
.form-msg:empty{display:none}
.anfrage .btn{align-self:flex-start;cursor:pointer}
@media (max-width:900px){.kontakt-grid{grid-template-columns:minmax(0,1fr)}}

/* Kopfzeile Desktop: Logo mittig und größer, darunter Navigation links und Telefon/Button rechts auf einer Linie */
@media (min-width:901px){
  .site-header .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"logo logo" "menu actions";align-items:center;padding-top:28px}
  .head-top{display:contents}
  .logo{grid-area:logo;justify-self:center;margin-bottom:10px}
  .logo img{width:clamp(280px,26vw,340px)}
  #menu{grid-area:menu;padding:12px 0 14px}
  .head-actions{grid-area:actions;padding:0 0 2px}
  .head-actions .btn{padding:11px 22px}
}
.eyebrow.orte .nb{display:block;white-space:nowrap}
.eyebrow.orte{white-space:normal;line-height:1.9}

.gallery figure.brand img{aspect-ratio:auto;object-fit:contain}

a[href^="tel:"]{white-space:nowrap}
