/* Styles réservés à la proposition d’accueil index.php. */
.home-page { --test-space: clamp(1.25rem, 5vw, 5rem); }
.home-page :is(section[id], main[id]) { scroll-margin-top: 95px; }
.home-page .section { padding: clamp(3rem, 5.5vw, 5rem) var(--test-space); }
.home-page h2 { font-size: clamp(2rem, 3.6vw, 3.4rem); line-height: 1.08; }
.home-page h3 { font-size: 1.12rem; }
.home-page a:focus-visible, .home-page button:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.home-page .skip-link { position: fixed; top: -100px; left: 1rem; z-index: 100; padding: .75rem; background: var(--paper); color: var(--ink); }
.home-page .skip-link:focus { top: 1rem; }
.home-page .text-link { display: inline-flex; align-items: center; gap: .65rem; color: var(--accent-dark); font-weight: 750; }
.home-page .test-hero { display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 3rem; padding: 4rem var(--test-space); min-height: 650px; overflow: hidden; background: var(--paper); }
.home-page .test-hero h1 { max-width: none; font-size: clamp(2.75rem, 4.6vw, 4.9rem); line-height: 1.03; letter-spacing: -.045em; margin-bottom: 1.5rem; }
.home-page .test-hero h1 span { color: var(--accent); }
.home-page .test-lead { font-size: clamp(1.15rem, 1.5vw, 1.35rem); line-height: 1.5; max-width: 36ch; }
.home-page .hero-note { max-width: 46ch; color: var(--muted); font-size: 1rem; }
.home-page .hero-actions { align-items: center; gap: 1.25rem; }
.home-page .hero-showcase { position: relative; padding: 2rem 0 0 1.75rem; }
.home-page .showcase-landscape { position: absolute; inset: 0 0 3rem 3.5rem; width: calc(100% - 3.5rem); height: calc(100% - 3rem); object-fit: cover; border-radius: 4px; }
.home-page .showcase-site { position: relative; margin: 3.5rem 1.5rem 0 -1rem; background: white; border: 1px solid var(--line); box-shadow: 0 18px 45px #27231f26; transform: rotate(-3deg); border-radius: 5px; overflow: hidden; }
.home-page .showcase-site img { width: 100%; height: auto; }
.home-page .window-bar { display: flex; align-items: center; gap: 5px; padding: .6rem .75rem; background: #f0ebe3; }
.home-page .window-bar i { width: 7px; height: 7px; border-radius: 50%; background: #b8aea0; }
.home-page .window-bar span { font-size: .65rem; color: var(--muted); margin-left: auto; }
.home-page .showcase-site figcaption { padding: .8rem 1rem; color: var(--accent-dark); font-size: .8rem; }
.home-page .showcase-caption { position: relative; margin: 2rem 0 0; font-size: .8rem; text-align: right; color: var(--muted); }
.home-page .services-section { background: var(--soft); }
.home-page .section-intro { color: var(--muted); margin-bottom: 0; }
.home-page .service-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.5rem; margin-top: 2.5rem; }
.home-page .service-grid article { border-top: 1px solid #b5a99b; padding-top: 1.2rem; }
.home-page .service-number { display: block; color: var(--accent); font-family: Georgia, serif; font-size: 1.4rem; margin-bottom: 1rem; }
.home-page .service-grid p { color: var(--muted); font-size: .95rem; }
.home-page .service-grid .service-detail { font-size: .75rem; margin-bottom: 0; }
.home-page .technical-note { margin: 2rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .8rem; }
.home-page .tourism-section { display: grid; grid-template-columns: .8fr 1fr; gap: clamp(2rem,5vw,5rem); align-items: center; background: white; }
.home-page .territory-image { margin: 0; }
.home-page .territory-image img { width: 100%; aspect-ratio: 4/5; height: auto; object-fit: cover; object-position: 35% center; }
.home-page .territory-image figcaption { font-size: .75rem; color: var(--muted); margin-top: .8rem; }
.home-page .tourism-section p:not(.eyebrow) { color: var(--muted); font-size: 1rem; }
.home-page .beyond-tourism { border-left: 2px solid var(--accent); padding-left: 1rem; }
.home-page .case-section { background: var(--paper); }
.home-page .case-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 2rem; }
.home-page .case-heading>p { font-size: .95rem; }
.home-page .case-heading>p span { color: var(--muted); font-size: .8rem; }
.home-page .case-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 3rem; align-items: start; }
.home-page .case-image { display: block; padding: 1.25rem; background: var(--soft); }
.home-page .case-image img { width: 100%; height: auto; box-shadow: 0 8px 25px #27231f14; }
.home-page .case-story article { padding: 0 0 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--line); }
.home-page .case-story p { font-size: .95rem; color: var(--muted); margin-bottom: 0; }
.home-page .case-story .eyebrow { color: var(--accent); font-size: .65rem; margin-bottom: .5rem; }
.home-page .more-projects { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.home-page .more-projects p { margin: 0; color: var(--muted); }
.home-page .reviews-section { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; background: #e9eee7; }
.home-page .reviews-section .eyebrow { color: var(--green); }
.home-page .reviews-copy p { color: var(--muted); }
.home-page .reviews-copy .button { gap: .75rem; }
.home-page .approach-section { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.home-page .approach-heading>p:last-child { font-size: 1rem; color: var(--muted); max-width: 48ch; }
.home-page .approach-steps { list-style: none; padding: 0; margin: 0; }
.home-page .approach-steps li { display: flex; gap: 1.5rem; border-top: 1px solid var(--line); padding: 1.25rem 0; }
.home-page .approach-steps li>span { color: var(--accent); font-family: Georgia,serif; font-size: 1.5rem; }
.home-page .approach-steps p { margin: 0; color: var(--muted); font-size: .95rem; }
.home-page .contact-section { padding: 4rem var(--test-space); grid-template-columns: 1fr 1fr; }
.home-page .contact-actions { flex-direction: column; align-items: start; gap: .4rem; font-size: clamp(.95rem,1.3vw,1.2rem); }
.home-page .contact-signature { margin-top: 2rem; font-family: Georgia,serif; font-size: 1.35rem; }
.home-page .contact-signature span { font-family: system-ui,sans-serif; font-size: .8rem; }
.home-page .contact-form small { color: var(--muted); font-weight: normal; }
.home-page footer { align-items: center; font-size: .8rem; }
@media(max-width:1000px) {
 .home-page .test-hero { gap: 1.5rem; min-height: 550px; padding-block: 3rem; }
 .home-page .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .home-page .case-layout { gap: 1.5rem; }
 .home-page .tourism-section { grid-template-columns: .7fr 1fr; }
 .home-page .approach-section { gap: 2rem; }
}
@media(max-width:680px) {
 .home-page :is(section[id],main[id]) { scroll-margin-top: 1rem; }
 .home-page .topbar nav { font-size: .8rem; }
 .home-page .test-hero { grid-template-columns: 1fr; min-height: auto; padding-block: 2.5rem; gap: 2rem; }
 .home-page .test-hero h1 { font-size: clamp(2.6rem,9vw,3.5rem); }
 .home-page .hero-actions { align-items: stretch; flex-direction: column; gap: 1rem; }
 .home-page .hero-actions .text-link { justify-content: center; }
 .home-page .hero-showcase { padding-top: 1rem; }
 .home-page .showcase-site { margin-top: 1.5rem; }
 .home-page .service-grid { gap: 1.5rem; }
 .home-page .tourism-section,.home-page .case-layout,.home-page .reviews-section,.home-page .approach-section,.home-page .contact-section { grid-template-columns: 1fr; gap: 2rem; }
 .home-page .territory-image img { aspect-ratio: 3/2; }
 .home-page .case-heading { display: block; }
 .home-page .case-image { padding: .75rem; }
 .home-page .more-projects { align-items: start; flex-direction: column; }
 .home-page .contact-form .form-grid { grid-template-columns: 1fr; }
}
@media(max-width:380px) { .home-page .service-grid { grid-template-columns: 1fr; } }
@media(prefers-reduced-motion:reduce) { html:has(.home-page) { scroll-behavior: auto; } }

/* Diaporama dans la fenêtre de présentation du portfolio. */
.home-page .showcase-slides { position: relative; aspect-ratio: 800 / 503; overflow: hidden; background: var(--soft); }
.home-page .showcase-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .65s ease, visibility .65s; }
.home-page .showcase-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; }
.home-page .showcase-slide img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.home-page .showcase-site figcaption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65rem; }
.home-page .slideshow-controls { display: flex; align-items: center; gap: .25rem; }
.home-page .slideshow-controls[hidden] { display: none; }
.home-page .slideshow-controls button { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 36px; padding: .25rem .45rem; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); color: var(--accent-dark); font: inherit; font-size: .75rem; cursor: pointer; }
.home-page .slideshow-controls button:hover { background: var(--soft); }
.home-page .slideshow-count { white-space: nowrap; min-width: 2.5rem; text-align: center; font-size: .7rem; color: var(--muted); }
.home-page .window-bar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .home-page .showcase-slide { transition: none; } }


/* Témoignages issus des avis Google fournis par Vincent. */
.home-page .reviews-section { display: block; }
.home-page .reviews-heading { margin-bottom: 2rem; }
.home-page .review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.home-page .review-card { display: flex; flex-direction: column; margin: 0; padding: clamp(1.25rem, 2.2vw, 2rem); background: var(--paper); border-top: 3px solid var(--green); }
.home-page .review-topic { color: var(--green); font-size: .85rem; font-weight: 750; margin-bottom: 1.1rem; }
.home-page .review-card blockquote { margin: 0 0 1.5rem; font-size: 1rem; line-height: 1.65; }
.home-page .review-card blockquote p { margin: 0; }
.home-page .review-card figcaption { display: grid; gap: .35rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line); }
.home-page .review-card figcaption strong { font-size: .9rem; }
.home-page .review-card figcaption span { color: var(--muted); font-size: .8rem; line-height: 1.45; }
.home-page .reviews-source { margin-top: 1.75rem; }
@media (max-width: 980px) { .home-page .review-grid { grid-template-columns: 1fr; } }
