/* Royal BBQ — À propos (storytelling au scroll), Contact, pages légales. */

.rb-page-hero { padding: var(--sp-6) 0 var(--sp-5); }
.rb-page-hero .rb-eyebrow { margin-bottom: 18px; }
.rb-page-hero h1 { font-size: clamp(2.4rem, 5vw, 4rem); max-width: 20ch; }

/* ================= À propos — chapitres en boîtes (même famille visuelle
   que le bento des catégories vedettes de l'Accueil : cartes sombres,
   icône en filigrane, trace dorée au survol) ================= */
.rb-story { padding: var(--sp-6) 0 var(--sp-7); }
.rb-story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--hairline); }
.rb-story-card {
	position: relative; overflow: hidden; padding: 44px; min-height: 300px;
	display: flex; flex-direction: column; justify-content: flex-end;
}
.rb-story-card--main { grid-column: 1 / -1; min-height: 340px; }
.rb-story-bg {
	position: absolute; inset: 0; z-index: 0;
	background: radial-gradient(circle at 84% 12%, rgba(217,196,138,.12), transparent 55%), linear-gradient(150deg, #241b14 0%, #14120F 65%);
}
.rb-story-icon { position: absolute; top: 40px; right: 44px; z-index: 1; width: 50px; height: 50px; opacity: .5; transition: opacity .5s ease, transform .7s var(--ease); }
.rb-story-card:hover .rb-story-icon { opacity: .85; transform: scale(1.05); }
.rb-story-edge { position: absolute; inset: 0; pointer-events: none; opacity: 0; z-index: 2; background: linear-gradient(105deg, transparent 46%, rgba(217,196,138,.65) 50%, transparent 54%); }
.rb-story-card:hover .rb-story-edge { animation: rb-edgepass .6s var(--ease); }
@media (prefers-reduced-motion: reduce) { .rb-story-card:hover .rb-story-edge { animation: none; } }
.rb-story-copy { position: relative; z-index: 3; max-width: 58ch; }
.rb-story-card--main .rb-story-copy { max-width: 70ch; }
.rb-story-num { font-family: var(--font-body); font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--champagne); margin-bottom: 16px; }
.rb-story-copy h2 { font-size: clamp(1.5rem, 2.4vw, 2.1rem); margin-bottom: 16px; }
.rb-story-card--main .rb-story-copy h2 { font-size: clamp(1.9rem, 3.2vw, 2.6rem); }
.rb-story-copy p { color: var(--champagne-dim); font-size: .95rem; }
.rb-story-copy p + p { margin-top: 12px; }
.rb-story-signature { margin-top: var(--sp-4); font-family: var(--font-display); font-style: italic; font-size: 1.15rem; color: var(--champagne); }
@media (max-width: 880px) {
	.rb-story-grid { grid-template-columns: 1fr; }
	.rb-story-card, .rb-story-card--main { grid-column: 1; padding: 32px 24px; min-height: 0; }
	.rb-story-icon { top: 28px; right: 28px; width: 40px; height: 40px; }
}

/* ================= Contact ================= */
.rb-contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: var(--sp-6); align-items: start; padding: var(--sp-6) 0 var(--sp-7); }
@media (max-width: 880px) { .rb-contact-grid { grid-template-columns: 1fr; gap: var(--sp-5); } }

.rb-contact-info { position: relative; overflow: hidden; padding: var(--sp-3); margin: calc(var(--sp-3) * -1); }
.rb-contact-info h2 { position: relative; z-index: 1; font-size: clamp(1.7rem, 3vw, 2.2rem); margin-bottom: 20px; }
.rb-contact-info p, .rb-contact-info .rb-contact-detail { position: relative; z-index: 1; }
.rb-contact-info p { color: var(--champagne-dim); margin-bottom: var(--sp-4); max-width: 42ch; }
.rb-contact-detail { border-top: 1px solid var(--hairline); padding: 18px 0; }
.rb-contact-detail strong { display: block; color: var(--ivoire); font-weight: 500; margin-bottom: 4px; }
.rb-contact-detail span, .rb-contact-detail a { color: var(--champagne-dim); }
.rb-contact-detail span a { color: var(--champagne); border-bottom: 1px solid var(--hairline-strong); white-space: nowrap; }
.rb-contact-detail a:hover { color: var(--champagne); border-color: var(--champagne); }

.rb-form-field { margin-bottom: var(--sp-3); }
.rb-form-field label { display: block; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--champagne-dim); margin-bottom: 8px; }
.rb-form-field input, .rb-form-field textarea {
	width: 100%; background: none; border: none; border-bottom: 1px solid var(--hairline-strong);
	color: var(--ivoire); font-family: var(--font-body); font-size: .95rem; padding: 10px 0; resize: vertical;
}
.rb-form-field input:focus, .rb-form-field textarea:focus { outline: none; border-color: var(--champagne); }
.rb-form-notice { margin-bottom: var(--sp-3); padding: 14px 18px; border: 1px solid var(--hairline-strong); font-size: .88rem; }
.rb-form-notice.is-success { color: var(--champagne); }
.rb-form-notice.is-error { color: #e8a0a0; border-color: rgba(232,160,160,.4); }

/* ================= FAQ — groupes en boîtes (même famille visuelle que le
   bento des catégories vedettes de l'Accueil et les chapitres À propos) ================= */
.rb-faq-boxes { padding: var(--sp-6) 0 var(--sp-7); }
.rb-faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--hairline); }
.rb-faq-card { position: relative; overflow: hidden; padding: 40px; }
.rb-faq-bg {
	position: absolute; inset: 0; z-index: 0;
	background: radial-gradient(circle at 84% 12%, rgba(217,196,138,.12), transparent 55%), linear-gradient(150deg, #241b14 0%, #14120F 65%);
}
.rb-faq-icon { position: absolute; top: 38px; right: 38px; z-index: 1; width: 44px; height: 44px; opacity: .5; transition: opacity .5s ease, transform .7s var(--ease); }
.rb-faq-card:hover .rb-faq-icon { opacity: .85; transform: scale(1.05); }
.rb-faq-edge { position: absolute; inset: 0; pointer-events: none; opacity: 0; z-index: 2; background: linear-gradient(105deg, transparent 46%, rgba(217,196,138,.65) 50%, transparent 54%); }
.rb-faq-card:hover .rb-faq-edge { animation: rb-edgepass .6s var(--ease); }
@media (prefers-reduced-motion: reduce) { .rb-faq-card:hover .rb-faq-edge { animation: none; } }
.rb-faq-copy { position: relative; z-index: 3; }
.rb-faq-group-label { font-size: clamp(1.3rem, 2.2vw, 1.7rem); margin-bottom: var(--sp-3); padding-right: 70px; }
.rb-faq-list { border-top: 1px solid var(--hairline); }
.rb-faq-item { border-bottom: 1px solid var(--hairline); }
.rb-faq-item > summary {
	list-style: none; cursor: pointer; padding: 22px 30px 22px 0; position: relative;
	font-family: var(--font-display); font-size: 1.05rem; color: var(--ivoire);
}
.rb-faq-item > summary::-webkit-details-marker { display: none; }
.rb-faq-item > summary::after {
	content: "+"; position: absolute; right: 4px; top: 22px; font-family: var(--font-body); font-size: 1.1rem;
	color: var(--champagne); transition: transform .3s var(--ease);
}
.rb-faq-item[open] > summary::after { transform: rotate(45deg); }
.rb-faq-answer { padding: 0 0 24px; color: var(--champagne-dim); max-width: 68ch; }
.rb-faq-answer a { color: var(--champagne); border-bottom: 1px solid var(--hairline-strong); }
.rb-faq-answer a:hover { border-color: var(--champagne); }
@media (max-width: 880px) {
	.rb-faq-grid { grid-template-columns: 1fr; }
	.rb-faq-card { padding: 28px 22px; }
	.rb-faq-icon { top: 26px; right: 26px; width: 36px; height: 36px; }
	.rb-faq-group-label { padding-right: 54px; }
}

/* ================= Pages légales / prose générique ================= */
.rb-prose { max-width: 760px; padding: var(--sp-5) 0 var(--sp-7); font-size: .98rem; color: var(--champagne-dim); }
.rb-prose h1 { color: var(--ivoire); font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: var(--sp-4); }
.rb-prose h2, .rb-prose h3 { color: var(--ivoire); font-family: var(--font-accent); font-weight: 400; margin: var(--sp-4) 0 14px; }
.rb-prose p, .rb-prose ul, .rb-prose ol { margin-bottom: 16px; }
.rb-prose a { color: var(--champagne); border-bottom: 1px solid var(--hairline-strong); }
.rb-prose a:hover { border-color: var(--champagne); }
.rb-prose strong { color: var(--ivoire); font-weight: 500; }
.rb-prose ul, .rb-prose ol { padding-left: 1.2em; }
