/* ib-nachhilfe.de — Stylesheet */

/* Lokale Schriften (DSGVO-konform, kein Google-CDN) */
@font-face{font-family:'Libre Caslon Text';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/libre-caslon-text-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+2013-2014,U+2018-201E,U+20AC;}
@font-face{font-family:'Libre Caslon Text';font-style:italic;font-weight:400;font-display:swap;
  src:url('fonts/libre-caslon-text-latin-400-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+2013-2014,U+2018-201E,U+20AC;}
@font-face{font-family:'Libre Caslon Text';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/libre-caslon-text-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+2013-2014,U+2018-201E,U+20AC;}
@font-face{font-family:'Libre Caslon Text';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/libre-caslon-text-latin-ext-400-normal.woff2') format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF;}
@font-face{font-family:'Libre Caslon Text';font-style:italic;font-weight:400;font-display:swap;
  src:url('fonts/libre-caslon-text-latin-ext-400-italic.woff2') format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF;}
@font-face{font-family:'Libre Caslon Text';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/libre-caslon-text-latin-ext-700-normal.woff2') format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF;}
@font-face{font-family:'Libre Caslon Display';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/libre-caslon-display-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+2013-2014,U+2018-201E,U+20AC;}
@font-face{font-family:'Libre Caslon Display';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/libre-caslon-display-latin-ext-400-normal.woff2') format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF;}

:root{
  --paper:#f1e9d6;
  --ink:#26211a;
  --green:#173a2c;
  --green-deep:#0f2a1f;
  --oxblood:#6d212a;
  --rule:#8a7c5e;
  --faint:#5c533f;
  --mono:'Courier New', Courier, monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  background:var(--paper);
  background-image:radial-gradient(ellipse at 18% 8%, rgba(255,252,240,.55), transparent 55%);
  color:var(--ink);
  font-family:'Libre Caslon Text', Georgia, 'Times New Roman', serif;
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:760px;margin:0 auto;padding:0 clamp(18px,5vw,40px)}
a{color:var(--oxblood)}
a:focus-visible{outline:2px solid var(--oxblood);outline-offset:3px}
p+p{margin-top:1em}

.topbar{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:18px 0 12px;border-bottom:1px solid var(--rule);
  font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);gap:12px;
}
.topbar .brand{color:var(--green-deep);font-weight:700;text-decoration:none}

/* Prüfungsdeckblatt */
.exam{
  margin:clamp(30px,6vw,52px) 0;
  border:2px solid var(--green-deep);
  outline:1px solid var(--green-deep);
  outline-offset:4px;
  background:rgba(255,253,246,.55);
  padding:clamp(22px,4.5vw,38px) clamp(20px,5vw,44px);
}
.exam-meta{
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-family:var(--mono);font-size:12.5px;color:var(--faint);margin-bottom:20px;
}
.exam-meta .code{color:var(--oxblood)}
.exam h1{
  font-family:'Libre Caslon Display', Georgia, serif;font-weight:400;
  font-size:clamp(28px,5.6vw,44px);line-height:1.12;color:var(--green-deep);
}
.exam .level{display:block;font-size:clamp(17px,3.2vw,24px);margin-top:6px;color:var(--oxblood);font-style:italic}
.exam .claim{margin-top:14px;font-size:clamp(15.5px,2.5vw,18px)}
.instructions{margin-top:24px;border:1px solid var(--ink);padding:16px 20px;background:rgba(241,233,214,.6)}
.instructions ul{list-style:none}
.instructions li{font-size:15.5px;line-height:1.6;padding-left:1.2em;position:relative;margin-bottom:6px}
.instructions li::before{content:"–";position:absolute;left:.1em;color:var(--oxblood)}
.instructions li:last-child{margin-bottom:0}
.exam-foot{margin-top:22px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.exam-foot .marks{font-family:var(--mono);font-size:12.5px;color:var(--faint)}
.btn{
  display:inline-block;padding:13px 30px;border:1px solid var(--green-deep);
  background:var(--green);color:#f3ecdb;text-decoration:none;cursor:pointer;
  font-family:'Libre Caslon Text', Georgia, serif;
  font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;text-indent:.24em;
  transition:background .25s ease,border-color .25s ease;
}
.btn:hover{background:var(--oxblood);border-color:var(--oxblood)}

section{padding:clamp(30px,5.5vw,48px) 0;border-bottom:1px solid var(--rule)}
h2{
  font-family:'Libre Caslon Display', Georgia, serif;font-weight:400;
  font-size:clamp(22px,3.8vw,28px);color:var(--green-deep);margin-bottom:18px;
}

/* Angebot */
.offer{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}
.card{border:1px solid var(--rule);padding:20px;background:rgba(255,253,246,.45)}
.card h3{font-family:'Libre Caslon Display', Georgia, serif;font-weight:400;font-size:19px;color:var(--green-deep);margin-bottom:8px}
.card p{font-size:14.5px;line-height:1.6}
.card .when{margin-top:12px;font-family:var(--mono);font-size:12px;color:var(--oxblood)}
.honorar{margin-top:20px;font-size:14px;font-style:italic;color:var(--faint)}

.tutor p{max-width:580px}

/* Kontakt + Formular */
.contact .alt{margin-top:22px;font-size:14.5px}
.contact .alt a{white-space:nowrap}
.cform{margin-top:24px;max-width:520px}
.cform label{
  display:block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--faint);margin:16px 0 5px;
}
.cform input[type=text],
.cform input[type=email],
.cform textarea{
  width:100%;
  border:1px solid var(--rule);
  background:rgba(255,253,246,.6);
  padding:10px 12px;
  font-family:'Libre Caslon Text', Georgia, serif;
  font-size:15.5px;
  color:var(--ink);
}
.cform input:focus,.cform textarea:focus{outline:2px solid var(--green);outline-offset:1px}
.cform textarea{min-height:130px;resize:vertical}
.cform .hp{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}
.cform .btn{margin-top:20px}
.cform .privacy{margin-top:14px;font-size:12.5px;color:var(--faint)}

/* Rechtsseiten */
.legal{padding:clamp(30px,5.5vw,48px) 0 10px;border-bottom:none}
.legal h1{
  font-family:'Libre Caslon Display', Georgia, serif;font-weight:400;
  font-size:clamp(26px,4.6vw,36px);color:var(--green-deep);margin-bottom:24px;
}
.legal h2{font-size:clamp(19px,3vw,23px);margin:34px 0 10px}
.legal p,.legal li{font-size:15.5px}
.legal ul{padding-left:1.2em;margin-top:.5em}
.legal .block{margin-top:.5em}
.legal .stand{margin-top:40px;font-size:13px;font-style:italic;color:var(--faint)}

footer{padding:24px 0 40px;font-size:12px;color:var(--faint)}
footer .row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px}
footer a{color:var(--faint);text-decoration:none;margin-right:14px;letter-spacing:.16em;text-transform:uppercase;font-size:11px}
footer a:hover{color:var(--oxblood)}
footer .note{margin-top:12px;font-size:11px}

/* Bestätigungsseite */
.confirm{padding:clamp(40px,8vw,70px) 0;border-bottom:none}
.confirm .marks{font-family:var(--mono);font-size:12.5px;color:var(--faint);margin-top:18px}
