/* ==========================================================================
   Leila Luxe — inner pages: services, FAQ, journal, converted builder content
   (loaded after luxe.css)
   ========================================================================== */

/* ---- Image hero for inner pages --------------------------------------- */
.lx-page-hero { position: relative; display: flex; align-items: flex-end; min-height: clamp(380px, 62vh, 620px); overflow: hidden; background: var(--ll-charcoal); color: #fff; isolation: isolate; }
.lx-page-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; animation: lx-zoom 14s var(--ll-ease) both; }
.lx-page-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20,17,15,.15) 0%, rgba(20,17,15,.35) 45%, rgba(20,17,15,.78) 100%); }
.lx-page-hero__inner { width: 100%; padding-block: clamp(3rem, 8vw, 6rem); }
.lx-page-hero .lx-kicker { color: #E3CFA6; }
.lx-page-hero__title { margin: 0; font-family: var(--ll-serif); font-weight: 300; font-size: clamp(2.8rem, 6vw + 1rem, 6rem); line-height: 1; text-transform: capitalize; letter-spacing: -.01em; }
.lx-page-hero__lead { max-width: 34rem; margin: 1.2rem 0 0; font-size: 1.05rem; color: rgba(255,255,255,.85); }
@keyframes lx-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }

/* ---- Services --------------------------------------------------------- */
.lx-services { padding-block: var(--ll-section); background: var(--ll-ivory); }
.lx-services__grid { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); }
.lx-service { position: relative; padding: clamp(2rem, 3.5vw, 3rem); background: #fff; border: 1px solid #EFE7DA; transition: transform .45s var(--ll-ease), box-shadow .45s var(--ll-ease), border-color .45s; }
.lx-service:hover { transform: translateY(-6px); box-shadow: var(--ll-shadow); border-color: var(--ll-sand); }
.lx-service__icon { display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%; border: 1px solid var(--ll-sand); color: var(--ll-gold-btn); }
.lx-service__icon .ll-icon { width: 24px; height: 24px; }
.lx-service__num { position: absolute; top: clamp(1.5rem, 3vw, 2.4rem); right: clamp(1.5rem, 3vw, 2.4rem); font-family: var(--ll-serif); font-size: 2.6rem; font-weight: 300; line-height: 1; color: #EADFCB; }
.lx-service__title { margin: 1.6rem 0 .9rem; font-family: var(--ll-serif); font-weight: 400; font-size: clamp(1.6rem, 1.4vw + 1rem, 2.1rem); line-height: 1.15; color: var(--ll-ink); }
.lx-service p { margin: 0 0 .8rem; color: var(--ll-taupe); font-size: 1rem; }
.lx-atelier--services { background: var(--ll-cream); }
.lx-atelier--services .ll-actions { margin-top: 2rem; }
@media (min-width: 900px) { .lx-services__grid { grid-template-columns: repeat(3, 1fr); } }

/* ---- Contact / visit -------------------------------------------------- */
.lx-page-hero--short { min-height: clamp(380px, 56vh, 560px); }
.lx-page-hero--short .lx-page-hero__inner { padding-bottom: calc(clamp(5rem, 10vw, 8rem) + 2.5rem); }
.lx-contact { padding-block: var(--ll-section); }
.lx-contact__cards { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin-top: calc(-1 * clamp(5rem, 10vw, 8rem)); position: relative; z-index: 2; }
.lx-contact__card { display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; padding: clamp(1.6rem, 3vw, 2.2rem); background: #fff; border: 1px solid #EFE7DA; box-shadow: 0 30px 50px -40px rgba(43,39,36,.35); transition: transform .4s var(--ll-ease), border-color .3s; }
a.lx-contact__card:hover { transform: translateY(-5px); border-color: var(--ll-gold-btn); }
.lx-contact__card .ll-label { margin: 1rem 0 0; }
.lx-contact__card p { margin: 0; color: var(--ll-ink); font-size: 1.02rem; }
.lx-contact__card .lx-link { margin-top: .8rem; color: var(--ll-gold-btn); }
.lx-contact__note { margin-top: .7rem !important; font-size: .7rem !important; letter-spacing: .22em; text-transform: uppercase; color: var(--ll-gold-btn) !important; }
.lx-contact__visit { display: grid; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; margin-top: var(--ll-section); }
.lx-contact__text p { color: var(--ll-taupe); }
.lx-contact__text .ll-actions { margin-top: 2rem; }
.lx-contact__map { position: relative; min-height: 420px; background: var(--ll-cream); }
.lx-contact__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.85) contrast(1.05); }
@media (min-width: 960px) { .lx-contact__visit { grid-template-columns: 5fr 6fr; } .lx-contact__map { min-height: 520px; } }

.lx-quote { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--ll-section); background: var(--ll-charcoal); color: #fff; text-align: center; }
.lx-quote__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.lx-quote::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(20,17,15,.62); }
.lx-quote blockquote { max-width: 54rem; margin: 0 auto; }
.lx-quote blockquote p { margin: 0; font-family: var(--ll-serif); font-style: italic; font-weight: 300; font-size: clamp(1.25rem, .9vw + 1rem, 1.75rem); line-height: 1.55; }
.lx-quote cite { display: block; margin-top: 1.8rem; font-style: normal; font-size: .72rem; letter-spacing: .3em; text-transform: uppercase; color: #E3CFA6; }

/* ---- FAQ accordion ---------------------------------------------------- */
.lx-faq { padding-bottom: var(--ll-section); }
.lx-faq__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-bottom: 2rem; }
.lx-faq__search { flex: 1 1 260px; display: flex; align-items: center; gap: .7rem; min-height: 52px; padding: 0 1.2rem; background: #fff; border: 1px solid var(--ll-line); border-radius: 999px; transition: border-color .3s; }
.lx-faq__search:focus-within { border-color: var(--ll-gold-btn); }
.lx-faq__search .ll-icon { width: 18px; height: 18px; color: var(--ll-gold-btn); flex: none; }
.lx-faq__search input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: 1rem; color: var(--ll-ink); }
.lx-faq__search input:focus { outline: none; }
.lx-faq__toggle { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ll-gold-btn); padding: .5rem 0; border-bottom: 1px solid currentColor; }
.lx-faq__list { border-top: 1px solid var(--ll-line); }
.lx-faq__item { border-bottom: 1px solid var(--ll-line); }
.lx-faq__item summary { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.2rem; padding: 1.5rem .25rem; cursor: pointer; list-style: none; }
.lx-faq__item summary::-webkit-details-marker { display: none; }
.lx-faq__item summary:focus-visible { outline: 2px solid var(--ll-gold-btn); outline-offset: 4px; }
.lx-faq__num { font-family: var(--ll-serif); font-size: 1.05rem; color: var(--ll-gold-btn); min-width: 2ch; }
.lx-faq__q { font-family: var(--ll-serif); font-size: clamp(1.25rem, .8vw + 1rem, 1.6rem); font-weight: 400; line-height: 1.3; color: var(--ll-ink); transition: color .3s; }
.lx-faq__item summary:hover .lx-faq__q, .lx-faq__item[open] .lx-faq__q { color: var(--ll-gold-btn-dark); }
.lx-faq__sign { position: relative; width: 38px; height: 38px; border: 1px solid var(--ll-sand); border-radius: 50%; transition: background .3s, border-color .3s, transform .4s var(--ll-ease); }
.lx-faq__sign::before, .lx-faq__sign::after { content: ""; position: absolute; top: 50%; left: 50%; width: 12px; height: 1px; background: var(--ll-gold-btn); transform: translate(-50%, -50%); transition: transform .4s var(--ll-ease), background .3s; }
.lx-faq__sign::after { transform: translate(-50%, -50%) rotate(90deg); }
.lx-faq__item[open] .lx-faq__sign { background: var(--ll-gold-btn); border-color: var(--ll-gold-btn); transform: rotate(180deg); }
.lx-faq__item[open] .lx-faq__sign::before { background: #fff; }
.lx-faq__item[open] .lx-faq__sign::after { transform: translate(-50%, -50%) rotate(0deg); background: #fff; }
.lx-faq__a { padding: 0 3.5rem 1.8rem calc(2ch + 1.45rem); color: var(--ll-taupe); animation: lx-faq-in .45s var(--ll-ease); }
.lx-faq__a p { margin: 0 0 .9rem; }
.lx-faq__a a { color: var(--ll-gold-btn-dark); border-bottom: 1px solid currentColor; }
.lx-faq__empty { padding: 2rem 0; text-align: center; color: var(--ll-muted); }
.lx-faq__help { margin-top: clamp(3rem, 6vw, 5rem); padding: clamp(2rem, 5vw, 3.5rem); text-align: center; background: var(--ll-cream); }
.lx-faq__help h2 { margin: 0 0 .6rem; font-family: var(--ll-serif); font-weight: 300; font-size: clamp(2rem, 2vw + 1rem, 2.8rem); }
.lx-faq__help h2 em { color: var(--ll-gold-btn); }
.lx-faq__help p { margin: 0 auto 1.6rem; max-width: 32rem; color: var(--ll-taupe); }
.lx-faq__help .ll-actions { justify-content: center; }
@keyframes lx-faq-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (max-width: 600px) {
	.lx-faq__item summary { gap: .8rem; }
	.lx-faq__a { padding: 0 .25rem 1.5rem; }
}

/* ---- Journal / Real brides -------------------------------------------- */
.lx-journal { padding-bottom: var(--ll-section); }
.lx-journal__grid { display: grid; gap: clamp(2rem, 4vw, 3.5rem); }
.lx-story { display: grid; gap: 1.4rem; }
.lx-story__media { display: block; overflow: hidden; aspect-ratio: 4 / 5; background: var(--ll-cream); }
.lx-story__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ll-ease); }
.lx-story:hover .lx-story__media img { transform: scale(1.05); }
.lx-story__date { margin: 0 0 .5rem; font-size: .7rem; letter-spacing: .28em; text-transform: uppercase; color: var(--ll-gold-btn); }
.lx-story__title { margin: 0 0 .8rem; font-family: var(--ll-serif); font-weight: 400; font-size: clamp(1.7rem, 1.4vw + 1rem, 2.4rem); line-height: 1.1; color: var(--ll-ink); }
.lx-story__title a:hover { color: var(--ll-gold-btn-dark); }
.lx-story__excerpt { margin: 0 0 1.3rem; color: var(--ll-taupe); }
@media (min-width: 720px) { .lx-journal__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .lx-journal__grid { grid-template-columns: repeat(3, 1fr); } }

/* ---- Converted Fusion Builder content --------------------------------- */
.ll-fb-section { margin-block: clamp(2rem, 5vw, 3.5rem); display: grid; gap: clamp(1.25rem, 3vw, 2rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.ll-fb-section > .ll-fb-banner, .ll-fb-section > .ll-fb-title, .ll-fb-section > .ll-fb-text, .ll-fb-section > .ll-fb-boxes, .ll-fb-section > .ll-fb-gallery, .ll-fb-section > .ll-fb-portfolio, .ll-fb-section > .ll-fb-col--1-1 { grid-column: 1 / -1; }
.ll-fb-banner { margin: 0; overflow: hidden; aspect-ratio: 16 / 7; background: var(--ll-cream); }
.ll-fb-banner img { width: 100%; height: 100%; object-fit: cover; }
.ll-fb-figure { margin: 0 0 1.2rem; }
.ll-fb-figure img { width: 100%; height: auto; }
.ll-fb-title { margin: 0; font-family: var(--ll-serif); font-weight: 300; font-size: clamp(2rem, 2vw + 1rem, 3rem); line-height: 1.1; text-align: center; }
.ll-fb-col { min-width: 0; }
.ll-fb-col--link { display: block; padding: clamp(1.5rem, 3vw, 2.2rem); background: #fff; border: 1px solid #EFE7DA; text-align: center; transition: border-color .3s, transform .4s var(--ll-ease); }
.ll-fb-col--link:hover { border-color: var(--ll-gold-btn); transform: translateY(-4px); }
.ll-fb-boxes { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.ll-fb-box { padding: 2rem; background: #fff; border: 1px solid #EFE7DA; }
.ll-fb-box h3 { margin: 0 0 .7rem; font-family: var(--ll-serif); font-weight: 400; font-size: 1.6rem; }
.ll-fb-gallery { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); }
.ll-fb-gallery__item { display: block; overflow: hidden; aspect-ratio: 3 / 4; }
.ll-fb-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ll-ease); }
.ll-fb-gallery__item:hover img { transform: scale(1.05); }
.ll-fb-button { margin: 1.4rem 0; }
.ll-fb-button .ll-pill { padding-left: 1.4rem; }
