/* ===== Reset & helpers ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.7;color:#333;background:#fafafa}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
:root{--clr-primary:#c62828;--clr-dark:#1a1a1a;--clr-light:#fff;--container:1180px;--radius:6px;--shadow:0 1px 3px rgba(0,0,0,.1)}

/* ===== Layout ===== */
header{background:var(--clr-dark);color:var(--clr-light)}
.topbar{max-width:var(--container);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:1rem;gap:2rem}
.brand{display:flex;align-items:center;font-size:1.4rem;font-weight:700;gap:.5rem}
.brand svg{width:28px;height:28px;fill:var(--clr-primary)}
nav ul{list-style:none;display:flex;gap:1.25rem}
nav a{font-size:.95rem;opacity:.9;transition:opacity .2s}
nav a:hover{opacity:1}
.social{margin-left:auto;display:flex;align-items:center;gap:1rem}
.social a{display:inline-flex}
.social svg{width:22px;height:22px;fill:var(--clr-light);opacity:.9;transition:opacity .2s}
.social a:hover svg{opacity:1}

/* Main */
.wrapper{max-width:var(--container);margin:2.5rem auto;display:grid;grid-template-columns:1fr 300px;gap:2rem}

/* Intro */
.intro{background:var(--clr-light);border-left:4px solid var(--clr-primary);box-shadow:var(--shadow);border-radius:var(--radius);padding:1.75rem;margin-bottom:2rem}
.intro p{margin-bottom:1.1rem;font-size:1.08rem}
.intro h2{margin-bottom:1rem;font-size:1.4rem;color:var(--clr-primary)}
figure.scheme{margin:1rem 0 2rem}
figure.scheme figcaption{font-size:.9rem;color:#666;margin-top:.4rem;text-align:center}

/* Contact form */
.contact-form{background:var(--clr-light);box-shadow:var(--shadow);border-radius:var(--radius);padding:1.5rem;margin-top:2rem}
.contact-form .field{margin-bottom:1rem}
.contact-form label{font-size:.95rem;display:block;color:#555;margin-bottom:.25rem}
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form input[type=file],
.contact-form textarea{width:100%;padding:.6rem .8rem;border:1px solid #ccc;border-radius:var(--radius);font:inherit}
.contact-form textarea{resize:vertical}
.btn{background:var(--clr-primary);color:#fff;border:none;padding:.7rem 1.4rem;border-radius:var(--radius);cursor:pointer;font-size:1rem}
.btn:hover{opacity:.9}
.form-msg{margin-top:.8rem;font-size:.95rem}
.form-msg.success{color:green}
.form-msg.error{color:var(--clr-primary)}

/* Sidebar */
aside{display:flex;flex-direction:column;gap:2rem}
.widget{background:var(--clr-light);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}
.widget h3{font-size:1.05rem;margin-bottom:1rem;border-bottom:2px solid var(--clr-primary);padding-bottom:.4rem;display:inline-block}
.widget ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.widget li a{color:var(--clr-primary)}

.reviews blockquote{margin:.25rem 0;padding-left:.75rem;border-left:3px solid var(--clr-primary);font-style:italic;font-weight:700}
.review-meta{font-size:.8rem;color:#777;margin-top:.25rem}

footer{background:var(--clr-dark);color:#aaa;text-align:center;padding:2rem 1rem;font-size:.9rem}

@media(max-width:900px){.wrapper{grid-template-columns:1fr}aside{order:-1}nav ul{flex-wrap:wrap}}
