/*
Theme Name: Compagnons Alsaciens du Bâtiment
Theme URI: https://compagnons-alsaciens.com/
Author: Reconstitution depuis Wayback Machine
Description: Thème WordPress reproduisant le site historique des Compagnons Alsaciens du Bâtiment (artisan depuis 1972, Paris). Inclut toutes les pages services (Plomberie, Électricité, Serrurerie, Parquet, Isolation, Rénovation, Contact).
Version: 1.0
License: GPL v2 or later
Text Domain: compagnons-alsaciens
*/

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Open Sans', Arial, sans-serif; color: #333; background: #fff; line-height: 1.55; font-size: 15px; }
h1,h2,h3,h4 { font-family: 'Oswald','Arial Narrow',sans-serif; font-weight: 500; color: #1a1a1a; }
a { color: #c1272d; text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; display: block; }

/* TOP BAR */
.top-bar { background: #fff; border-bottom: 4px solid #f5b820; padding: 12px 0 8px; }
.top-bar__inner { max-width: 1200px; margin: 0 auto; padding: 0 16px; display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; gap: 16px; }
.top-bar__left { display: flex; align-items: center; gap: 12px; }
.top-bar__map { height: 70px; width: auto; }
.top-bar__title { height: 56px; width: auto; }
.top-bar__center { text-align: center; }
.addresses h4 { color: #c1272d; font-size: 16px; font-weight: 500; line-height: 1.5; letter-spacing: 0.3px; }
.top-bar__right { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.phones { display: flex; align-items: center; gap: 10px; }
.phones__icon { height: 36px; }
.phones__numbers h3 { font-size: 18px; color: #1a1a1a; font-weight: 700; letter-spacing: 1px; }
.socials { display: flex; gap: 8px; }
.socials img { height: 28px; transition: transform .2s ease, opacity .2s ease; }
.socials a:hover img { transform: scale(1.1); opacity: .85; }

/* MAIN NAV */
.main-nav { background: linear-gradient(180deg,#2c2c2c,#1a1a1a); border-top: 2px solid #f5b820; border-bottom: 2px solid #f5b820; position: relative; z-index: 50; }
.main-nav__inner { max-width: 1200px; margin: 0 auto; padding: 0 16px; position: relative; }
.main-nav__list, .main-nav__list ul { list-style: none; }
.main-nav__list { display: flex; flex-wrap: wrap; justify-content: center; }
.main-nav__list > li { position: relative; }
.main-nav__list > li > a { display: block; color: #fff; padding: 14px 18px; font-family: 'Oswald',sans-serif; font-size: 15px; letter-spacing: 0.8px; text-transform: uppercase; transition: background .2s, color .2s; }
.main-nav__list > li > a:hover, .main-nav__list > li.current-menu-item > a, .main-nav__list > li.current_page_item > a { background: #f5b820; color: #1a1a1a; text-decoration: none; }
.sub-menu { position: absolute; top: 100%; left: 0; min-width: 220px; background: #2c2c2c; border-top: 2px solid #f5b820; box-shadow: 0 6px 20px rgba(0,0,0,.25); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .2s, transform .2s, visibility .2s; z-index: 100; }
.main-nav__list li:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.sub-menu li a { display: block; color: #fff; padding: 10px 16px; font-size: 14px; border-bottom: 1px solid #3a3a3a; }
.sub-menu li a:hover { background: #f5b820; color: #1a1a1a; text-decoration: none; }
.main-nav__toggle { display: none; background: transparent; border: 0; padding: 12px; cursor: pointer; }
.main-nav__toggle span { display: block; width: 26px; height: 3px; background: #f5b820; margin: 5px 0; border-radius: 2px; }

/* CAROUSEL */
.carousel { position: relative; max-width: 1200px; margin: 18px auto; padding: 0 16px; overflow: hidden; }
.carousel__track { display: flex; transition: transform .6s cubic-bezier(.65,.05,.36,1); }
.carousel__slide { min-width: 100%; position: relative; }
.carousel__slide img { width: 100%; height: 380px; object-fit: cover; border: 1px solid #e6e6e6; }
.carousel__caption { position: absolute; left: 30px; bottom: 30px; right: 30px; max-width: 520px; background: rgba(255,255,255,.92); padding: 18px 22px; border-left: 4px solid #f5b820; box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.carousel__caption h2 { font-size: 26px; margin-bottom: 6px; color: #c1272d; }
.carousel__caption hr { border: 0; height: 2px; background: #f5b820; width: 60px; margin: 8px 0 10px; }
.carousel__caption p { font-size: 14px; line-height: 1.55; color: #333; }
.carousel__btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(26,26,26,.6); color: #fff; border: 0; width: 44px; height: 44px; font-size: 22px; cursor: pointer; border-radius: 50%; transition: background .2s; }
.carousel__btn:hover { background: #c1272d; }
.carousel__btn--prev { left: 25px; } .carousel__btn--next { right: 25px; }
.carousel__dots { position: absolute; bottom: 12px; right: 30px; display: flex; gap: 6px; }
.carousel__dots button { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; background: transparent; cursor: pointer; padding: 0; transition: background .2s; }
.carousel__dots button.active { background: #f5b820; border-color: #f5b820; }

/* BANNER TITLE */
.banner-title { background: #f5b820; border-top: 3px solid #d99a0e; border-bottom: 3px solid #d99a0e; padding: 14px 16px; text-align: center; margin: 10px 0 20px; }
.banner-title h1 { font-family: 'Oswald',sans-serif; font-size: 26px; letter-spacing: 2px; color: #1a1a1a; }

/* PAGE */
.page-wrap { max-width: 1200px; margin: 0 auto; padding: 0 16px 40px; }
.intro { display: grid; grid-template-columns: 320px 1fr; gap: 28px; margin-bottom: 28px; align-items: start; }
.intro__photo { width: 100%; border: 4px solid #fff; box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.intro__caption { text-align: center; margin-top: 8px; font-style: italic; color: #555; font-size: 13px; }
.intro__right > * + * { margin-top: 16px; }
.ribbon { background: #f5b820; padding: 12px 18px; border-radius: 4px; display: flex; gap: 14px; align-items: center; box-shadow: 0 2px 6px rgba(0,0,0,.1); }
.ribbon__img { width: 60px; flex-shrink: 0; }
.ribbon__text { color: #1a1a1a; font-weight: 600; font-size: 13px; line-height: 1.5; }
.urgence { display: flex; align-items: center; gap: 16px; background: #fff; border: 2px solid #c1272d; border-radius: 6px; padding: 12px 18px; }
.urgence img { height: 54px; }
.urgence__text { display: flex; flex-direction: column; }
.urgence__text span { font-family: 'Oswald',sans-serif; font-weight: 600; font-size: 18px; color: #1a1a1a; letter-spacing: 1.5px; }
.urgence__phone { font-family: 'Oswald',sans-serif; font-size: 30px; font-weight: 700; color: #c1272d; letter-spacing: 2px; }
.badges { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.badges img { height: 70px; }

.welcome { text-align: center; padding: 24px 16px; background: #fafafa; border-top: 3px solid #f5b820; border-bottom: 3px solid #f5b820; margin: 28px 0; }
.welcome h2 { font-size: 28px; color: #c1272d; margin-bottom: 6px; }
.welcome h3 { font-size: 22px; margin: 4px 0; }
.welcome .big-phone { font-family: 'Oswald',sans-serif; font-size: 32px; color: #c1272d; margin: 12px 0; letter-spacing: 2px; }
.welcome .services-list { max-width: 900px; margin: 8px auto 0; font-size: 14.5px; }

.review { margin: 28px 0; padding: 22px; background: #fff; border: 1px solid #eee; border-radius: 6px; }
.review h3 { color: #c1272d; font-size: 20px; margin-bottom: 16px; text-align: center; border-bottom: 2px solid #f5b820; padding-bottom: 10px; }
.review__body { display: grid; grid-template-columns: 160px 1fr; gap: 22px; align-items: start; }
.review__logo { width: 100%; max-width: 160px; }
.review__text p { margin-bottom: 10px; font-size: 14px; }

.features { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; margin: 28px 0; }
.feature { background: #fafafa; border-left: 4px solid #f5b820; padding: 16px 18px; border-radius: 4px; font-size: 14px; }
.feature__img { margin-top: 10px; width: 100%; max-width: 200px; }
.gallery { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin: 28px 0; }
.gallery figure { background: #fff; border: 1px solid #eee; border-radius: 4px; overflow: hidden; transition: transform .25s, box-shadow .25s; }
.gallery figure:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(0,0,0,.12); }
.gallery img { width: 100%; height: 220px; object-fit: cover; }
.gallery figcaption { padding: 8px 12px; text-align: center; font-size: 13px; color: #555; }
.service-content { background: #fff; padding: 22px; border-radius: 6px; border: 1px solid #eee; line-height: 1.7; }
.service-content h2, .service-content h3 { color: #c1272d; margin: 18px 0 10px; }
.service-content p { margin-bottom: 12px; }
.service-content ul { margin: 10px 0 12px 20px; }
.service-content img { margin: 12px 0; border-radius: 4px; }

/* EMERGENCY */
.emergency { background: #c1272d; color: #fff; text-align: center; padding: 30px 16px; margin-top: 30px; }
.emergency h2 { font-size: 32px; color: #fff; letter-spacing: 2px; }
.emergency__hours { font-size: 24px; margin-top: 6px; color: #ffd24b; }
.emergency__phone { display: inline-flex; align-items: center; gap: 12px; margin-top: 14px; background: #fff; color: #c1272d; padding: 12px 24px; border-radius: 4px; font-family: 'Oswald',sans-serif; font-size: 30px; letter-spacing: 2px; font-weight: 700; }
.emergency__phone:hover { background: #ffd24b; text-decoration: none; transform: scale(1.03); }
.emergency__phone img { height: 38px; }

.site-footer { background: #1a1a1a; color: #ccc; padding: 22px 16px; text-align: center; font-size: 13px; }
.site-footer p { margin: 6px 0; }
.site-footer a { color: #f5b820; }

/* CONTACT */
.contact-page { max-width: 1000px; margin: 30px auto; padding: 0 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.contact-card { background: #fafafa; border-left: 4px solid #f5b820; padding: 22px; border-radius: 4px; }
.contact-card h3 { color: #c1272d; margin-bottom: 12px; font-size: 22px; }
.contact-form label { display: block; margin: 10px 0 4px; font-weight: 600; font-size: 14px; }
.contact-form input, .contact-form textarea { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-family: inherit; font-size: 14px; }
.contact-form textarea { min-height: 120px; resize: vertical; }
.contact-form button { margin-top: 14px; background: #c1272d; color: #fff; border: 0; padding: 12px 28px; border-radius: 4px; font-family: 'Oswald',sans-serif; font-size: 16px; letter-spacing: 1px; cursor: pointer; transition: background .2s; }
.contact-form button:hover { background: #9d1f24; }

/* RESPONSIVE */
@media (max-width:1024px){.top-bar__inner{grid-template-columns:1fr 1fr}.top-bar__right{grid-column:1/-1;flex-direction:row;justify-content:center}.intro{grid-template-columns:260px 1fr}.gallery{grid-template-columns:repeat(2,1fr)}.features{grid-template-columns:1fr}}
@media (max-width:760px){.top-bar__inner{grid-template-columns:1fr;text-align:center}.top-bar__left,.top-bar__right{justify-content:center;flex-direction:column;align-items:center;gap:8px}.main-nav__toggle{display:block}.main-nav__list{display:none;flex-direction:column;background:#1a1a1a;width:100%}.main-nav__list.open{display:flex}.main-nav__list > li > a{padding:12px 16px;border-bottom:1px solid #333}.sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border-top:0;background:#0e0e0e}.carousel__slide img{height:240px}.carousel__caption{left:12px;right:12px;bottom:12px;padding:12px}.banner-title h1{font-size:18px;letter-spacing:1px}.intro,.review__body,.gallery,.contact-page{grid-template-columns:1fr}.emergency h2{font-size:24px}.emergency__phone{font-size:22px;padding:10px 18px}}
