/* ===== Journées PwC des Reportings 2026 — design system (base.css) ===== */
/* ============================================================
   Journées PwC des Reportings 2026 — Design system
   Sobre / corporate institutionnel · orange #fd5108 + noir
   ============================================================ */

:root {
    --pwc-orange: #fd5108;
    --pwc-orange-600: #e34805;
    --pwc-orange-tint: #fff1ea;
    --ink: #111110;
    --ink-soft: #33312e;
    --muted: #6c6862;
    --muted-2: #9a958d;
    --line: #e7e3dc;
    --line-soft: #f0ece5;
    --paper: #ffffff;
    --sand: #f7f5f1;
    --sand-2: #efeae2;
    --black: #0c0b0a;

    --font-head: 'Ubuntu', system-ui, sans-serif;
    --font-body: 'Lato', system-ui, sans-serif;

    --shadow-sm: 0 1px 2px rgba(17,17,16,.04), 0 2px 8px rgba(17,17,16,.04);
    --shadow-md: 0 8px 30px rgba(17,17,16,.08);
    --shadow-lg: 0 24px 60px rgba(17,17,16,.14);

    --maxw: 1600px;
    --r-sm: 3px;
    --r-md: 6px;
    --ease: cubic-bezier(.22,.61,.36,1);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-body);
    color: var(--ink);
    background: var(--paper);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }

::selection { background: var(--pwc-orange); color: #fff; }

/* ---------- Helpers ---------- */
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 40px; }
.eyebrow {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--muted);
    display: inline-flex;
    align-items: center;
    gap: 14px;
}
.eyebrow--orange { color: var(--pwc-orange); }

/* ---------- PwC chevron motif ---------- */
.chevrons { display: inline-flex; gap: 4px; flex-shrink: 0; }
.chevrons i {
    display: block;
    width: 16px;
    height: 9px;
    background: var(--pwc-orange);
    transform: skewX(-24deg);
}
.chevrons i:nth-child(2) { opacity: .62; }
.chevrons i:nth-child(3) { opacity: .3; }
.chevrons--ink i { background: var(--ink); }
.chevrons--lg i { width: 26px; height: 15px; }

/* ---------- PwC logo ---------- */
.pwc-logo { display: inline-block; line-height: 0; color: var(--ink); }
.pwc-logo svg { display: block; height: 100%; width: auto; }
.pwc-logo svg path:not([fill]) { fill: currentColor; }
.pwc-logo--light { color: #ffffff; }

/* ---------- Buttons ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 14.5px;
    letter-spacing: .01em;
    padding: 15px 26px;
    border: 1.5px solid transparent;
    border-radius: var(--r-sm);
    transition: transform .35s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
    white-space: nowrap;
    cursor: pointer;
}
.btn svg { width: 17px; height: 17px; transition: transform .35s var(--ease); }
.btn--primary { background: var(--pwc-orange); color: #fff; }
.btn--primary:hover { background: var(--pwc-orange-600); }
.btn--primary:hover svg { transform: translateX(4px); }
.btn--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn--ghost:hover { background: var(--ink); color: #fff; }
.btn--ghost:hover svg { transform: translateX(4px); }
.btn--light { background: #fff; color: var(--ink); }
.btn--light:hover { background: var(--sand-2); }
.btn--onblack { background: transparent; color: #fff; border-color: rgba(255,255,255,.32); }
.btn--onblack:hover { border-color: #fff; background: rgba(255,255,255,.06); }
.btn--block { width: 100%; }
.btn--lg { padding: 18px 32px; font-size: 15.5px; }

/* ============================================================
   HEADER
   ============================================================ */
.hd {
    position: sticky; top: 0; z-index: 80;
    background: rgba(255,255,255,.86);
    backdrop-filter: saturate(180%) blur(14px);
    border-bottom: 1px solid var(--line);
}
.hd__in {
    max-width: var(--maxw); margin: 0 auto; padding: 0 40px;
    height: 76px; display: flex; align-items: center; gap: 34px;
}
.hd__brand { display: flex; align-items: center; gap: 16px; cursor: pointer; }
.hd__brand .pwc-logo { height: 34px; }
.hd__brand-sep { width: 1px; height: 30px; background: var(--line); }
.hd__brand-tag {
    font-family: var(--font-head); font-weight: 500; font-size: 13px;
    line-height: 1.15; color: var(--ink); letter-spacing: -.01em; max-width: 130px;
}
.hd__brand-tag b { color: var(--pwc-orange); font-weight: 700; }
.hd__nav { display: flex; gap: 30px; margin-left: 8px; }
.hd__link {
    font-size: 14.5px; font-weight: 600; color: var(--ink-soft);
    position: relative; padding: 6px 0; transition: color .2s;
}
.hd__link::after {
    content: ''; position: absolute; left: 0; right: 100%; bottom: -2px; height: 2px;
    background: var(--pwc-orange); transition: right .3s var(--ease);
}
.hd__link:hover { color: var(--ink); }
.hd__link:hover::after, .hd__link.is-active::after { right: 0; }
.hd__link.is-active { color: var(--ink); }
.hd__right { margin-left: auto; display: flex; align-items: center; gap: 20px; }
.hd__lang {
    font-size: 13px; font-weight: 700; letter-spacing: .04em; color: var(--muted);
    display: flex; align-items: center; gap: 6px; padding: 6px 4px;
}
.hd__signin { font-size: 14.5px; font-weight: 600; color: var(--ink); }
.hd__signin:hover { color: var(--pwc-orange); }

/* user menu */
.hd__user { position: relative; }
.hd__userbtn {
    display: flex; align-items: center; gap: 10px; background: none; border: none;
    padding: 5px 6px 5px 8px; border-radius: 40px; transition: background .2s;
}
.hd__userbtn:hover { background: var(--sand); }
.hd__avatar {
    width: 34px; height: 34px; border-radius: 50%; background: var(--ink); color: #fff;
    display: grid; place-items: center; font-family: var(--font-head); font-weight: 600; font-size: 13px;
    flex-shrink: 0;
}
.hd__uname { font-size: 14px; font-weight: 600; color: var(--ink); }
.hd__uname b { font-weight: 700; }
.hd__caret { width: 14px; height: 14px; color: var(--muted); transition: transform .2s; }
.hd__user.is-open .hd__caret { transform: rotate(180deg); }
.hd__drop {
    position: absolute; right: 0; top: calc(100% + 10px); width: 230px;
    background: #fff; border: 1px solid var(--line); border-radius: var(--r-md);
    box-shadow: var(--shadow-md); padding: 8px; opacity: 0; visibility: hidden;
    transform: translateY(-6px); transition: all .2s var(--ease);
}
.hd__user.is-open .hd__drop { opacity: 1; visibility: visible; transform: translateY(0); }
.hd__drop a {
    display: flex; align-items: center; gap: 11px; padding: 11px 12px; border-radius: var(--r-sm);
    font-size: 14px; font-weight: 500; color: var(--ink-soft); transition: background .15s;
}
.hd__drop a svg { width: 16px; height: 16px; color: var(--muted); }
.hd__drop a:hover { background: var(--sand); }
.hd__drop a.is-danger { color: var(--pwc-orange); }
.hd__drop a.is-danger svg { color: var(--pwc-orange); }
.hd__drop-sep { height: 1px; background: var(--line-soft); margin: 6px 4px; }

/* ============================================================
   FOOTER
   ============================================================ */
.ft { background: var(--black); color: #fff; padding: 80px 0 40px; }
.ft__top { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 50px; padding-bottom: 56px; border-bottom: 1px solid rgba(255,255,255,.1); }
.ft__brand .pwc-logo { height: 36px; margin-bottom: 22px; }
.ft__brand p { color: rgba(255,255,255,.62); font-size: 15px; line-height: 1.7; max-width: 320px; }
.ft__col h5 {
    font-family: var(--font-body); font-weight: 700; font-size: 12px; letter-spacing: .18em;
    text-transform: uppercase; color: rgba(255,255,255,.45); margin-bottom: 20px;
}
.ft__col ul { list-style: none; display: flex; flex-direction: column; gap: 13px; }
.ft__col a { color: rgba(255,255,255,.8); font-size: 15px; transition: color .2s; }
.ft__col a:hover { color: var(--pwc-orange); }
.ft__bottom {
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
    padding-top: 30px; flex-wrap: wrap;
}
.ft__editor { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.55); font-size: 13.5px; }
.ft__editor img { height: 22px; opacity: .85; filter: brightness(0) invert(1); }
.ft__legal { display: flex; gap: 26px; flex-wrap: wrap; }
.ft__legal a { color: rgba(255,255,255,.55); font-size: 13.5px; transition: color .2s; }
.ft__legal a:hover { color: #fff; }

/* ============================================================
   PAGE TRANSITIONS
   ============================================================ */
.page { opacity: 1; }
.reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: no-preference) {
    .page { animation: pageIn .45s var(--ease); }
    @keyframes pageIn {
        from { opacity: 1; transform: translateY(10px); }
        to { opacity: 1; transform: translateY(0); }
    }
}

/* ============================================================
   HERO
   ============================================================ */
.hero { position: relative; background: var(--paper); overflow: hidden; }
.hero__grid {
    max-width: var(--maxw); margin: 0 auto; padding: 78px 40px 90px;
    display: grid; grid-template-columns: 1.04fr .96fr; gap: 64px; align-items: center;
}
.hero__eyebrow { margin-bottom: 26px; }
.hero__date {
    display: inline-flex; align-items: center; gap: 10px;
    font-family: var(--font-head); font-weight: 500; font-size: 15px; color: var(--ink);
    padding: 9px 16px; border: 1px solid var(--line); border-radius: 40px; margin-bottom: 26px;
}
.hero__date svg { width: 16px; height: 16px; color: var(--pwc-orange); }
.hero h1 {
    font-family: var(--font-head); font-weight: 500; color: var(--ink);
    font-size: clamp(40px, 5.4vw, 76px); line-height: .98; letter-spacing: -.025em;
    margin-bottom: 26px;
}
.hero h1 em { font-style: normal; color: var(--pwc-orange); }
.hero__lead { font-size: 18px; line-height: 1.65; color: var(--ink-soft); max-width: 480px; margin-bottom: 22px; }
.hero__loc { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 15px; margin-bottom: 36px; }
.hero__loc svg { width: 17px; height: 17px; color: var(--pwc-orange); }
.hero__cta { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 48px; }
.hero__stats { display: flex; gap: 0; border-top: 1px solid var(--line); padding-top: 28px; }
.hero__stat { padding-right: 40px; margin-right: 40px; border-right: 1px solid var(--line); }
.hero__stat:last-child { border-right: none; }
.hero__stat b { display: block; font-family: var(--font-head); font-weight: 500; font-size: 34px; color: var(--ink); letter-spacing: -.02em; line-height: 1; }
.hero__stat span { font-size: 13px; color: var(--muted); margin-top: 7px; display: block; }

/* hero visual */
.hero__visual { position: relative; aspect-ratio: 4/4.6; }
.hero__panel {
    position: absolute; inset: 0; background: var(--black); border-radius: var(--r-md);
    overflow: hidden;
}
.hero__panel::after {
    content: 'Visuel \u00e0 venir'; position: absolute; right: 16px; bottom: 14px;
    font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.3);
}
.hero__chev {
    position: absolute; top: -6%; left: -6%; width: 78%;
    display: flex; flex-direction: column; gap: 18px; transform: rotate(0deg);
}
.hero__chev span { display: block; height: 46px; background: var(--pwc-orange); transform: skewX(-24deg); transform-origin: left; }
.hero__chev span:nth-child(1) { width: 100%; }
.hero__chev span:nth-child(2) { width: 78%; opacity: .7; }
.hero__chev span:nth-child(3) { width: 56%; opacity: .42; }
.hero__chev span:nth-child(4) { width: 34%; opacity: .22; }
.hero__glow { position: absolute; right: -30%; bottom: -25%; width: 420px; height: 420px; background: radial-gradient(circle, rgba(253,81,8,.5), transparent 65%); }
.hero__card {
    position: absolute; left: -34px; bottom: 40px; width: 270px;
    background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow-lg); padding: 22px 24px;
}
.hero__card h4 { font-family: var(--font-head); font-weight: 500; font-size: 17px; margin-bottom: 4px; }
.hero__card p { font-size: 13px; color: var(--muted); margin-bottom: 16px; }
.hero__card-row { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line-soft); font-size: 13.5px; color: var(--ink-soft); white-space: nowrap; }
.hero__card-row svg { width: 15px; height: 15px; color: var(--pwc-orange); flex-shrink: 0; }

/* trust strip */
.trust { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--sand); }
.trust__in { max-width: var(--maxw); margin: 0 auto; padding: 22px 40px; display: flex; align-items: center; gap: 40px; flex-wrap: wrap; }
.trust__label { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted-2); }
.trust__items { display: flex; gap: 38px; flex-wrap: wrap; align-items: center; }
.trust__item { display: flex; align-items: center; gap: 9px; font-size: 14px; color: var(--ink-soft); font-weight: 600; }
.trust__item svg { width: 16px; height: 16px; color: var(--pwc-orange); }

/* ============================================================
   SECTION SHELL
   ============================================================ */
.section { padding: 100px 0; }
.section--sand { background: var(--sand); }
.section--ink { background: var(--black); color: #fff; }
.section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 56px; }
.section__head-l { max-width: 640px; }
.section__kicker { margin-bottom: 18px; }
.section h2 { font-family: var(--font-head); font-weight: 500; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.02; letter-spacing: -.02em; }
.section--ink h2 { color: #fff; }
.section__sub { font-size: 17px; line-height: 1.7; color: var(--muted); margin-top: 20px; }
.section--ink .section__sub { color: rgba(255,255,255,.65); }

/* ============================================================
   PROGRAMME
   ============================================================ */
.prog__tabs { display: flex; gap: 10px; margin-bottom: 14px; }
.prog__tab {
    background: transparent; border: 1px solid var(--line); border-radius: var(--r-sm);
    padding: 16px 24px; text-align: left; transition: all .25s var(--ease); min-width: 220px;
}
.prog__tab b { display: block; font-family: var(--font-head); font-weight: 500; font-size: 18px; color: var(--ink); }
.prog__tab span { font-size: 13px; color: var(--muted); margin-top: 3px; display: block; }
.prog__tab:hover { border-color: var(--muted-2); }
.prog__tab.is-active { background: var(--ink); border-color: var(--ink); }
.prog__tab.is-active b { color: #fff; }
.prog__tab.is-active span { color: rgba(255,255,255,.6); }
.prog__list { border-top: 1px solid var(--line); }
.prog__row {
    display: grid; grid-template-columns: 130px 1fr auto; gap: 28px; align-items: center;
    padding: 24px 8px; border-bottom: 1px solid var(--line); transition: background .25s, padding .25s;
}
.prog__row:hover { background: var(--paper); padding-left: 20px; padding-right: 20px; }
.section--sand .prog__row:hover { background: #fff; }
.prog__time { font-family: var(--font-head); font-weight: 500; font-size: 16px; color: var(--pwc-orange); }
.prog__time small { display: block; color: var(--muted-2); font-weight: 400; font-size: 12px; margin-top: 2px; }
.prog__info h4 { font-family: var(--font-head); font-weight: 500; font-size: 19px; color: var(--ink); margin-bottom: 6px; }
.prog__info p { font-size: 14px; color: var(--muted); }
.prog__meta { display: flex; align-items: center; gap: 16px; }
.prog__tag { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); padding: 6px 12px; border: 1px solid var(--line); border-radius: 40px; white-space: nowrap; }
.prog__tag--key { background: var(--pwc-orange-tint); border-color: transparent; color: var(--pwc-orange-600); }
.prog__speaker { display: flex; align-items: center; gap: 10px; }
.prog__speaker .av { width: 32px; height: 32px; border-radius: 50%; background: var(--sand-2); color: var(--muted); display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.prog__speaker span { font-size: 13.5px; color: var(--ink-soft); font-weight: 600; }
.prog__row--break { opacity: .58; }
.prog__row--break .prog__time { color: var(--muted-2); }
.prog__row--break .prog__info h4 { font-weight: 400; color: var(--muted); }
.prog__row--link { cursor: pointer; }
.prog__info h4 { display: flex; align-items: center; gap: 8px; }
.prog__more { display: inline-flex; opacity: 0; transform: translateX(-4px); transition: opacity .25s var(--ease), transform .25s var(--ease); color: var(--pwc-orange); }
.prog__more svg { width: 16px; height: 16px; }
.prog__row--link:hover .prog__more { opacity: 1; transform: translateX(0); }
.prog__row--link:hover .prog__info h4 { color: var(--pwc-orange); }

/* ============================================================
   LIEU / VENUE
   ============================================================ */
.venue__grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; height: 480px; margin-bottom: 36px; }
.venue__main, .venue__side > div {
    position: relative; border-radius: var(--r-md); overflow: hidden; background: var(--sand-2);
}
.venue__main { height: 480px; }
.venue__side { display: grid; grid-template-rows: 1fr 1fr; gap: 16px; }
.ph-img { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(135deg, var(--sand-2), #e4ded4); color: var(--muted-2); }
.ph-img svg { width: 40px; height: 40px; opacity: .5; }
.ph-img--dark { background: linear-gradient(135deg, #1a1916, #2c2a25); color: rgba(255,255,255,.4); }
.venue__nav { position: absolute; bottom: 16px; right: 16px; display: flex; gap: 8px; z-index: 4; }
.venue__navbtn { width: 44px; height: 44px; border-radius: var(--r-sm); border: none; background: rgba(12,11,10,.55); backdrop-filter: blur(6px); color: #fff; display: grid; place-items: center; transition: background .2s; }
.venue__navbtn:hover { background: var(--pwc-orange); }
.venue__navbtn svg { width: 20px; height: 20px; }
.venue__count { position: absolute; bottom: 16px; left: 16px; z-index: 4; background: rgba(12,11,10,.55); backdrop-filter: blur(6px); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .05em; padding: 7px 12px; border-radius: 40px; white-space: nowrap; }
.venue__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s var(--ease); }
.venue__slide.is-active { opacity: 1; }

.venue__info { display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: start; }
.venue__name { font-family: var(--font-head); font-weight: 500; font-size: 28px; margin-bottom: 12px; }
.venue__addr { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 15px; margin-bottom: 22px; }
.venue__addr svg { width: 16px; height: 16px; color: var(--pwc-orange); }
.venue__desc { font-size: 16px; line-height: 1.75; color: var(--ink-soft); }
.venue__chips { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.venue__chip { display: flex; align-items: center; gap: 13px; padding: 18px; border: 1px solid var(--line); border-radius: var(--r-md); }
.venue__chip svg { width: 22px; height: 22px; color: var(--pwc-orange); flex-shrink: 0; }
.venue__chip b { display: block; font-family: var(--font-head); font-weight: 500; font-size: 19px; color: var(--ink); }
.venue__chip span { font-size: 12.5px; color: var(--muted); }
.venue__map { margin-top: 56px; height: 360px; border-radius: var(--r-md); overflow: hidden; border: 1px solid var(--line); }
.venue__map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(.3) contrast(1.02); }

/* ============================================================
   CTA BAND
   ============================================================ */
.ctaband { position: relative; overflow: hidden; }
.ctaband__in { max-width: var(--maxw); margin: 0 auto; padding: 96px 40px; position: relative; z-index: 2; text-align: center; }
.ctaband h2 { font-family: var(--font-head); font-weight: 500; color: #fff; font-size: clamp(32px, 4.4vw, 60px); line-height: 1.02; letter-spacing: -.02em; max-width: 760px; margin: 24px auto 18px; }
.ctaband p { color: rgba(255,255,255,.66); font-size: 18px; max-width: 520px; margin: 0 auto 40px; }
.ctaband__deco { position: absolute; bottom: -40px; right: -20px; display: flex; gap: 12px; opacity: .9; }
.ctaband__deco span { display: block; width: 90px; height: 220px; background: var(--pwc-orange); transform: skewX(-24deg); }
.ctaband__deco span:nth-child(2){ opacity:.55;} .ctaband__deco span:nth-child(3){ opacity:.25;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1080px) {
    .hero__grid { grid-template-columns: 1fr; gap: 48px; }
    .hero__visual { aspect-ratio: 16/10; max-width: 560px; }
    .hd__nav { display: none; }
    .section__head { flex-direction: column; align-items: flex-start; }
    .venue__info { grid-template-columns: 1fr; gap: 32px; }
    .ft__top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
    .wrap, .hd__in, .hero__grid, .trust__in { padding-left: 22px; padding-right: 22px; }
    .hero__stats { flex-wrap: wrap; gap: 20px; }
    .hero__stat { border-right: none; padding-right: 0; margin-right: 0; }
    .venue__grid { grid-template-columns: 1fr; height: auto; }
    .venue__main { height: 280px; }
    .venue__side { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; height: 160px; }
    .prog__row { grid-template-columns: 84px 1fr; }
    .prog__meta { display: none; }
    .ft__top { grid-template-columns: 1fr; gap: 36px; }
    .hd__uname { display: none; }
}

/* ===== Screens (screens.css) — tunnel, compte, login, FAQ, module ===== */
/* ============================================================
   SCREENS — inscription · compte · connexion
   ============================================================ */

/* ---------- Sub-page shell ---------- */
.sub { background: var(--sand); min-height: calc(100vh - 76px); padding: 0 0 90px; }
.sub__bar { background: #fff; border-bottom: 1px solid var(--line); }
.sub__bar-in { max-width: 1600px; margin: 0 auto; padding: 22px 40px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.sub__back { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--muted); transition: color .2s; }
.sub__back:hover { color: var(--ink); }
.sub__back svg { width: 16px; height: 16px; }
.sub__title { font-family: var(--font-head); font-weight: 500; font-size: 18px; }
.sub__in { max-width: 1600px; margin: 0 auto; padding: 44px 40px 0; }

/* ---------- Stepper ---------- */
.stepper { display: flex; align-items: center; gap: 0; margin: 0 auto 40px; max-width: 720px; }
.stepper__item { display: flex; align-items: center; gap: 12px; flex: 1; }
.stepper__num { width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--line); display: grid; place-items: center; font-family: var(--font-head); font-weight: 500; font-size: 14px; color: var(--muted-2); background: #fff; flex-shrink: 0; transition: all .3s var(--ease); }
.stepper__num svg { width: 16px; height: 16px; }
.stepper__lbl { font-size: 13.5px; font-weight: 600; color: var(--muted-2); white-space: nowrap; transition: color .3s; }
.stepper__line { flex: 1; height: 1.5px; background: var(--line); margin: 0 14px; min-width: 16px; }
.stepper__item.is-active .stepper__num { border-color: var(--pwc-orange); color: var(--pwc-orange); }
.stepper__item.is-active .stepper__lbl { color: var(--ink); }
.stepper__item.is-done .stepper__num { background: var(--pwc-orange); border-color: var(--pwc-orange); color: #fff; }
.stepper__item.is-done .stepper__lbl { color: var(--ink); }

/* ---------- Reservation layout ---------- */
.resv { display: grid; grid-template-columns: 1fr 360px; gap: 32px; align-items: start; }
.resv__main { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 38px 40px; }
.resv__step-h { margin-bottom: 28px; }
.resv__step-h h3 { font-family: var(--font-head); font-weight: 500; font-size: 26px; letter-spacing: -.01em; margin-bottom: 8px; }
.resv__step-h p { font-size: 15px; color: var(--muted); }

/* pass cards */
.pass { display: flex; flex-direction: column; gap: 14px; margin-bottom: 30px; }
.pass__card { position: relative; display: flex; align-items: center; gap: 20px; padding: 22px 24px; border: 1.5px solid var(--line); border-radius: var(--r-md); cursor: pointer; transition: border-color .2s, background .2s; }
.pass__card:hover { border-color: var(--muted-2); }
.pass__card.is-sel { border-color: var(--pwc-orange); background: var(--pwc-orange-tint); }
.pass__radio { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--line); flex-shrink: 0; display: grid; place-items: center; transition: border-color .2s; }
.pass__card.is-sel .pass__radio { border-color: var(--pwc-orange); }
.pass__radio i { width: 11px; height: 11px; border-radius: 50%; background: var(--pwc-orange); transform: scale(0); transition: transform .2s var(--ease); }
.pass__card.is-sel .pass__radio i { transform: scale(1); }
.pass__body { flex: 1; }
.pass__body h4 { font-family: var(--font-head); font-weight: 500; font-size: 18px; margin-bottom: 4px; display: flex; align-items: center; gap: 10px; }
.pass__body p { font-size: 13.5px; color: var(--muted); }
.pass__badge { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; background: var(--pwc-orange); padding: 4px 9px; border-radius: 40px; }
.pass__price { text-align: right; flex-shrink: 0; }
.pass__price b { font-family: var(--font-head); font-weight: 500; font-size: 22px; }
.pass__price span { display: block; font-size: 12px; color: var(--muted); margin-top: 2px; }

/* qty + addons */
.field-row { display: flex; align-items: center; justify-content: space-between; padding: 20px 0; border-top: 1px solid var(--line-soft); }
.field-row__l h5 { font-family: var(--font-head); font-weight: 500; font-size: 16px; margin-bottom: 3px; }
.field-row__l p { font-size: 13px; color: var(--muted); }
.qty { display: flex; align-items: center; gap: 4px; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 4px; }
.qty button { width: 34px; height: 34px; border: none; background: var(--sand); border-radius: 2px; font-size: 18px; color: var(--ink); display: grid; place-items: center; transition: background .15s; }
.qty button:hover { background: var(--sand-2); }
.qty span { min-width: 40px; text-align: center; font-family: var(--font-head); font-weight: 500; font-size: 16px; }
.switch { width: 46px; height: 26px; border-radius: 40px; background: var(--line); border: none; position: relative; transition: background .25s; flex-shrink: 0; }
.switch i { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: transform .25s var(--ease); }
.switch.is-on { background: var(--pwc-orange); }
.switch.is-on i { transform: translateX(20px); }

/* forms */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.fld { display: flex; flex-direction: column; gap: 7px; }
.fld--full { grid-column: 1 / -1; }
.fld label { font-size: 13px; font-weight: 600; color: var(--ink-soft); }
.fld label span { color: var(--pwc-orange); }
.fld input, .fld select { font-family: var(--font-body); font-size: 15px; padding: 13px 15px; border: 1.5px solid var(--line); border-radius: var(--r-sm); background: #fff; color: var(--ink); transition: border-color .2s, box-shadow .2s; width: 100%; }
.fld input:focus, .fld select:focus { outline: none; border-color: var(--pwc-orange); box-shadow: 0 0 0 3px rgba(253,81,8,.12); }
.fld input::placeholder { color: var(--muted-2); }
.participant { border: 1px solid var(--line); border-radius: var(--r-md); padding: 26px 28px; margin-bottom: 18px; }
.participant__h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.participant__h b { font-family: var(--font-head); font-weight: 500; font-size: 16px; display: flex; align-items: center; gap: 10px; }
.participant__chip { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--pwc-orange-600); background: var(--pwc-orange-tint); padding: 4px 10px; border-radius: 40px; }
.section-label { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted-2); margin: 30px 0 16px; padding-top: 24px; border-top: 1px solid var(--line-soft); }
.section-label:first-child { margin-top: 0; padding-top: 0; border-top: none; }

/* payment */
.pay-methods { display: flex; gap: 10px; margin-bottom: 24px; }
.pay-method { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border: 1.5px solid var(--line); border-radius: var(--r-sm); font-size: 14px; font-weight: 600; cursor: pointer; transition: border-color .2s; }
.pay-method.is-sel { border-color: var(--pwc-orange); background: var(--pwc-orange-tint); }
.pay-method__dot { width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--line); display: grid; place-items: center; }
.pay-method.is-sel .pay-method__dot { border-color: var(--pwc-orange); }
.pay-method.is-sel .pay-method__dot::after { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--pwc-orange); }
.card-brands { display: flex; gap: 6px; margin-left: auto; }
.card-brand { width: 34px; height: 22px; border-radius: 3px; border: 1px solid var(--line); display: grid; place-items: center; font-size: 8px; font-weight: 800; letter-spacing: .02em; color: var(--muted); background: #fff; }
.secure-note { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--muted); margin-top: 20px; }
.secure-note svg { width: 15px; height: 15px; color: #1f8a4c; }

/* order summary */
.summary { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 28px; position: sticky; top: 96px; }
.summary h4 { font-family: var(--font-head); font-weight: 500; font-size: 17px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.summary__item { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; font-size: 14px; }
.summary__item span:first-child { color: var(--ink-soft); }
.summary__item span:last-child { font-weight: 600; white-space: nowrap; }
.summary__item--muted span { color: var(--muted); font-weight: 400; }
.summary__divider { height: 1px; background: var(--line-soft); margin: 14px 0; }
.summary__total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 16px; margin-top: 8px; border-top: 1.5px solid var(--ink); }
.summary__total span { font-family: var(--font-head); font-weight: 500; }
.summary__total .lbl { font-size: 16px; }
.summary__total .val { font-size: 26px; color: var(--pwc-orange); letter-spacing: -.01em; }
.summary__note { font-size: 12px; color: var(--muted); margin-top: 14px; line-height: 1.5; }
.summary__cta { margin-top: 20px; }

.resv__actions { display: flex; justify-content: space-between; gap: 14px; margin-top: 32px; }

/* selection by day */
.seldays { margin-bottom: 30px; }
.seldays__h { display: flex; align-items: center; gap: 14px; padding: 0 0 14px; margin-bottom: 8px; border-bottom: 1.5px solid var(--ink); }
.seldays__date { display: inline-flex; align-items: center; gap: 9px; font-family: var(--font-head); font-weight: 500; font-size: 17px; color: var(--ink); }
.seldays__date svg { width: 17px; height: 17px; color: var(--pwc-orange); }
.seldays__sub { font-size: 13px; color: var(--muted); }
.selmod { display: grid; grid-template-columns: 88px 1fr auto; gap: 20px; align-items: center; padding: 16px 8px; border-bottom: 1px solid var(--line-soft); transition: background .2s; }
.selmod:hover { background: #fff; }
.selmod.is-on { background: var(--pwc-orange-tint); border-radius: var(--r-sm); border-color: transparent; }
.selmod__time { font-family: var(--font-head); font-weight: 500; font-size: 15px; color: var(--pwc-orange); }
.selmod__time small { display: block; color: var(--muted-2); font-weight: 400; font-size: 11px; margin-top: 2px; }
.selmod__body h4 { font-family: var(--font-head); font-weight: 500; font-size: 16px; color: var(--ink); margin-bottom: 4px; display: flex; align-items: center; gap: 10px; }
.selmod__body p { font-size: 13px; color: var(--muted); }
.selmod__tag { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--pwc-orange-600); background: #fff; border: 1px solid var(--line); padding: 3px 8px; border-radius: 40px; }

/* same-participant toggle */
.resv__same { display: flex; align-items: center; gap: 11px; padding: 16px 18px; background: var(--sand); border-radius: var(--r-sm); font-size: 14.5px; font-weight: 600; color: var(--ink-soft); cursor: pointer; margin-bottom: 20px; }
.resv__same input { width: 18px; height: 18px; accent-color: var(--pwc-orange); }

/* summary sessions */
.summary__empty { font-size: 14px; color: var(--muted); line-height: 1.6; }
.summary__sess { padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.summary__sess-t { font-size: 14px; font-weight: 600; color: var(--ink); margin-bottom: 4px; line-height: 1.35; }
.summary__sess-m { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 12.5px; color: var(--muted); }
.summary__sess-q { color: var(--pwc-orange-600); font-weight: 700; white-space: nowrap; }

/* confirmation */
.confirm { max-width: 720px; margin: 0 auto; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 56px 56px 48px; text-align: center; }
.confirm__icon { width: 76px; height: 76px; border-radius: 50%; background: var(--pwc-orange-tint); color: var(--pwc-orange); display: grid; place-items: center; margin: 0 auto 26px; }
.confirm__icon svg { width: 38px; height: 38px; }
.confirm h2 { font-family: var(--font-head); font-weight: 500; font-size: 32px; letter-spacing: -.01em; margin-bottom: 12px; }
.confirm > p { font-size: 16px; color: var(--muted); max-width: 460px; margin: 0 auto 32px; line-height: 1.6; }
.confirm__ref { display: inline-flex; flex-direction: column; gap: 4px; padding: 18px 40px; background: var(--sand); border-radius: var(--r-md); margin-bottom: 32px; }
.confirm__ref small { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.confirm__ref b { font-family: var(--font-head); font-weight: 500; font-size: 24px; letter-spacing: .02em; }
.confirm__recap { text-align: left; border: 1px solid var(--line); border-radius: var(--r-md); padding: 24px 28px; margin-bottom: 28px; }
.confirm__recap-row { display: flex; align-items: center; gap: 12px; padding: 11px 0; font-size: 14.5px; border-bottom: 1px solid var(--line-soft); }
.confirm__recap-row:last-child { border-bottom: none; }
.confirm__recap-row svg { width: 17px; height: 17px; color: var(--pwc-orange); flex-shrink: 0; }
.confirm__recap-row b { margin-left: auto; font-weight: 700; }
.confirm__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ============================================================
   LOGIN
   ============================================================ */
.auth { min-height: calc(100vh - 76px); display: grid; grid-template-columns: 1fr 1fr; }
.auth__aside { background: var(--black); color: #fff; padding: 70px 64px; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; }
.auth__aside .pwc-logo { height: 38px; position: relative; z-index: 2; }
.auth__aside-body { position: relative; z-index: 2; }
.auth__aside-body .eyebrow { color: var(--pwc-orange); margin-bottom: 20px; }
.auth__aside-body h2 { font-family: var(--font-head); font-weight: 500; font-size: 40px; line-height: 1.04; letter-spacing: -.02em; margin-bottom: 18px; }
.auth__aside-body p { color: rgba(255,255,255,.6); font-size: 16px; line-height: 1.7; max-width: 380px; }
.auth__aside-foot { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 14px; }
.auth__aside-foot div { display: flex; align-items: center; gap: 12px; font-size: 14.5px; color: rgba(255,255,255,.82); }
.auth__aside-foot svg { width: 18px; height: 18px; color: var(--pwc-orange); }
.auth__chev { position: absolute; top: -8%; right: -6%; display: flex; flex-direction: column; gap: 16px; z-index: 1; }
.auth__chev span { display: block; height: 40px; background: var(--pwc-orange); transform: skewX(-24deg); }
.auth__chev span:nth-child(1){width:240px;} .auth__chev span:nth-child(2){width:180px;opacity:.6;} .auth__chev span:nth-child(3){width:120px;opacity:.3;}
.auth__main { display: grid; place-items: center; padding: 60px 40px; background: var(--paper); }
.auth__form { width: 100%; max-width: 400px; }
.auth__form h1 { font-family: var(--font-head); font-weight: 500; font-size: 30px; letter-spacing: -.01em; margin-bottom: 8px; }
.auth__form > p { font-size: 15px; color: var(--muted); margin-bottom: 32px; }
.auth__fields { display: flex; flex-direction: column; gap: 18px; }
.auth__row { display: flex; align-items: center; justify-content: space-between; font-size: 13.5px; }
.auth__row a { color: var(--pwc-orange); font-weight: 600; }
.auth__check { display: flex; align-items: center; gap: 9px; color: var(--ink-soft); cursor: pointer; }
.auth__check input { width: 17px; height: 17px; accent-color: var(--pwc-orange); }
.auth__sep { display: flex; align-items: center; gap: 16px; margin: 26px 0; color: var(--muted-2); font-size: 13px; }
.auth__sep::before, .auth__sep::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.auth__alt { text-align: center; font-size: 14px; color: var(--muted); margin-top: 26px; }
.auth__alt a { color: var(--pwc-orange); font-weight: 700; }

/* ============================================================
   COMPTE / ESPACE PERSONNEL
   ============================================================ */
.acct { background: var(--sand); min-height: calc(100vh - 76px); padding: 48px 0 90px; }
.acct__in { max-width: 1600px; margin: 0 auto; padding: 0 40px; }
.acct__head { margin-bottom: 36px; }
.acct__head h1 { font-family: var(--font-head); font-weight: 500; font-size: 34px; letter-spacing: -.02em; }
.acct__head p { font-size: 15px; color: var(--muted); margin-top: 8px; }
.acct__grid { display: grid; grid-template-columns: 250px 1fr; gap: 36px; align-items: start; }
.acct__nav { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px; position: sticky; top: 96px; }
.acct__navlink { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-radius: var(--r-sm); font-size: 14.5px; font-weight: 600; color: var(--ink-soft); cursor: pointer; transition: background .15s, color .15s; }
.acct__navlink svg { width: 18px; height: 18px; color: var(--muted); transition: color .15s; }
.acct__navlink:hover { background: var(--sand); }
.acct__navlink.is-active { background: var(--ink); color: #fff; }
.acct__navlink.is-active svg { color: var(--pwc-orange); }
.acct__panel { display: flex; flex-direction: column; gap: 22px; }

/* booking card */
.bk { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
.bk__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 28px; border-bottom: 1px solid var(--line); background: var(--sand); }
.bk__ref small { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); display: block; margin-bottom: 3px; }
.bk__ref b { font-family: var(--font-head); font-weight: 500; font-size: 18px; letter-spacing: .02em; }
.bk__status { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; padding: 7px 14px; border-radius: 40px; }
.bk__status--ok { background: #e7f6ec; color: #1f8a4c; }
.bk__status--ok::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #1f8a4c; }
.bk__status--pending { background: #fef3e2; color: #c47d12; }
.bk__status--pending::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #c47d12; }
.bk__body { padding: 26px 28px; }
.bk__title { font-family: var(--font-head); font-weight: 500; font-size: 20px; margin-bottom: 8px; }
.bk__loc { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--muted); margin-bottom: 20px; }
.bk__loc svg { width: 15px; height: 15px; color: var(--pwc-orange); }
.bk__meta { display: flex; flex-wrap: wrap; gap: 24px; padding: 18px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); margin-bottom: 18px; }
.bk__metaitem { display: flex; align-items: center; gap: 9px; font-size: 14px; color: var(--ink-soft); white-space: nowrap; }
.bk__metaitem svg { width: 16px; height: 16px; color: var(--muted); }
.bk__lines { background: var(--sand); border-radius: var(--r-sm); padding: 18px 20px; margin-bottom: 18px; }
.bk__line { display: flex; justify-content: space-between; font-size: 14px; padding: 6px 0; }
.bk__line span { white-space: nowrap; }
.bk__line span:last-child { font-weight: 600; }
.bk__line--total { border-top: 1.5px solid var(--ink); margin-top: 8px; padding-top: 12px; }
.bk__line--total span { font-family: var(--font-head); font-weight: 500; font-size: 17px; }
.bk__line--total span:last-child { color: var(--pwc-orange); }
.bk__sessions { background: var(--sand); border-radius: var(--r-sm); padding: 8px 18px; margin-bottom: 18px; }
.bk__sess { display: grid; grid-template-columns: 92px 1fr auto; gap: 16px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line-soft); }
.bk__sess:last-child { border-bottom: none; }
.bk__sess-time { font-family: var(--font-head); font-weight: 500; font-size: 13.5px; color: var(--pwc-orange); white-space: nowrap; }
.bk__sess-title { font-size: 14px; color: var(--ink-soft); font-weight: 600; }
.bk__sess-p { font-size: 12.5px; color: var(--muted); font-weight: 600; white-space: nowrap; }
.bk__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.bk__foot-info { font-size: 12.5px; color: var(--muted-2); }
.bk__foot-actions { display: flex; gap: 10px; }
.btn--sm { padding: 10px 18px; font-size: 13.5px; }

/* profile panel */
.card-panel { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 32px 34px; }
.card-panel__h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 26px; }
.card-panel__h h3 { font-family: var(--font-head); font-weight: 500; font-size: 20px; }
.empty { text-align: center; padding: 60px 20px; color: var(--muted); }

/* ============================================================
   FAQ
   ============================================================ */
.faqp__hero { background: var(--paper); padding: 70px 0 56px; }
.faqp__hero .eyebrow { justify-content: flex-start; }
.faqp__hero h1 { font-family: var(--font-head); font-weight: 500; font-size: clamp(34px, 4.4vw, 56px); letter-spacing: -.02em; margin-bottom: 14px; }
.faqp__hero > .wrap > p { font-size: 18px; color: var(--muted); max-width: 560px; margin-bottom: 32px; }
.faqp__search { position: relative; max-width: 540px; }
.faqp__search > svg { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--muted-2); }
.faqp__search input { width: 100%; font-family: var(--font-body); font-size: 16px; padding: 16px 46px 16px 48px; border: 1.5px solid var(--line); border-radius: var(--r-sm); background: #fff; transition: border-color .2s, box-shadow .2s; }
.faqp__search input:focus { outline: none; border-color: var(--pwc-orange); box-shadow: 0 0 0 3px rgba(253,81,8,.12); }
.faqp__search-clear { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border: none; background: var(--sand-2); border-radius: 50%; font-size: 18px; color: var(--muted); line-height: 1; }
.faqp__search-clear:hover { background: var(--line); }

.faqp__body { padding: 72px 0 100px; }
.faqp__grid { display: grid; grid-template-columns: 300px 1fr; gap: 48px; align-items: start; }
.faqp__side { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 22px; }
.faqp__catnav { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 12px; }
.faqp__catnav-label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted-2); padding: 10px 12px 8px; }
.faqp__catlink { display: flex; align-items: center; justify-content: space-between; padding: 12px; border-radius: var(--r-sm); font-size: 14.5px; font-weight: 600; color: var(--ink-soft); cursor: pointer; transition: background .15s; }
.faqp__catlink:hover { background: var(--sand); color: var(--ink); }
.faqp__catlink span { width: 24px; height: 24px; border-radius: 50%; background: var(--sand-2); color: var(--muted); font-size: 12px; font-weight: 700; display: grid; place-items: center; }
.faqp__catlink:hover span { background: var(--pwc-orange); color: #fff; }

.faqp__contact { background: var(--black); color: #fff; border-radius: var(--r-md); padding: 26px; }
.faqp__contact-av { width: 46px; height: 46px; border-radius: 50%; background: var(--pwc-orange); color: #fff; display: grid; place-items: center; font-family: var(--font-head); font-weight: 600; font-size: 16px; margin-bottom: 16px; }
.faqp__contact-txt { font-size: 14.5px; line-height: 1.55; color: rgba(255,255,255,.82); margin-bottom: 18px; }
.faqp__contact-txt strong { color: #fff; }
.faqp__contact-row { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: rgba(255,255,255,.72); padding: 7px 0; white-space: nowrap; }
.faqp__contact-row svg { width: 15px; height: 15px; color: var(--pwc-orange); flex-shrink: 0; }
.faqp__contact-btn { margin-top: 16px; color: #fff; border-color: rgba(255,255,255,.3); }
.faqp__contact-btn:hover { background: rgba(255,255,255,.08); color: #fff; border-color: #fff; }

.faqcat { margin-bottom: 44px; }
.faqcat__title { margin-bottom: 16px; }
.faqcat__num { font-family: var(--font-head); font-weight: 500; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--pwc-orange); display: inline-flex; align-items: center; gap: 12px; }
.faqcat__num::before { content: ''; width: 26px; height: 2px; background: var(--pwc-orange); }
.faqcat__list { display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--line); }

.acc { border-bottom: 1px solid var(--line); background: transparent; }
.acc__head { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 4px; background: none; border: none; text-align: left; transition: padding .25s var(--ease); }
.acc__head:hover { padding-left: 12px; }
.acc__q { font-family: var(--font-head); font-weight: 500; font-size: 18px; color: var(--ink); }
.acc.is-open .acc__q { color: var(--pwc-orange); }
.acc__icon { flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--line); display: grid; place-items: center; color: var(--ink); transition: all .25s var(--ease); }
.acc__icon svg { width: 18px; height: 18px; }
.acc.is-open .acc__icon { background: var(--pwc-orange); border-color: var(--pwc-orange); color: #fff; transform: rotate(180deg); }
.acc__vbar { transition: opacity .2s; transform-origin: center; }
.acc.is-open .acc__vbar { opacity: 0; }
.acc__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s var(--ease); }
.acc.is-open .acc__panel { grid-template-rows: 1fr; }
.acc__inner { overflow: hidden; }
.acc__inner p { font-size: 15.5px; line-height: 1.75; color: var(--ink-soft); padding: 0 60px 24px 4px; max-width: 760px; }

.faqp__empty { text-align: center; padding: 70px 20px; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); }
.faqp__empty svg { width: 34px; height: 34px; color: var(--muted-2); margin-bottom: 14px; }
.faqp__empty h3 { font-family: var(--font-head); font-weight: 500; font-size: 22px; color: var(--ink); margin-bottom: 8px; }

.faqp__cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 30px 34px; margin-top: 12px; }
.faqp__cta h3 { font-family: var(--font-head); font-weight: 500; font-size: 21px; margin-bottom: 6px; }
.faqp__cta p { font-size: 15px; color: var(--muted); }

/* ============================================================
   MODULE DETAIL
   ============================================================ */
.modp__hero { position: relative; overflow: hidden; background: var(--black); color: #fff; padding: 44px 0 56px; }
.modp__chev { position: absolute; top: -10%; right: -4%; display: flex; flex-direction: column; gap: 14px; z-index: 1; opacity: .9; }
.modp__chev span { display: block; height: 36px; background: var(--pwc-orange); transform: skewX(-24deg); }
.modp__chev span:nth-child(1) { width: 220px; } .modp__chev span:nth-child(2) { width: 160px; opacity: .6; } .modp__chev span:nth-child(3) { width: 100px; opacity: .3; }
.modp__hero-in { position: relative; z-index: 2; }
.modp__back { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: rgba(255,255,255,.75); cursor: pointer; transition: color .2s; }
.modp__back:hover { color: #fff; }
.modp__back svg { width: 16px; height: 16px; }
.modp__theme { display: inline-flex; align-items: center; gap: 14px; margin: 26px 0 16px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--pwc-orange); }
.modp h1 { font-family: var(--font-head); font-weight: 500; font-size: clamp(30px, 4.2vw, 50px); line-height: 1.04; letter-spacing: -.02em; max-width: 820px; margin-bottom: 14px; }
.modp__sub { font-size: 18px; color: rgba(255,255,255,.7); max-width: 640px; margin-bottom: 26px; }
.modp__chips { display: flex; flex-wrap: wrap; gap: 10px; }
.modp__chip { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); padding: 9px 15px; border-radius: 40px; font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.modp__chip svg { width: 15px; height: 15px; color: var(--pwc-orange); }
.modp__chip--tag { background: var(--pwc-orange); border-color: transparent; color: #fff; }

.modp__body { display: grid; grid-template-columns: 1fr 340px; gap: 56px; align-items: start; padding-top: 60px; padding-bottom: 90px; }
.modp__block { margin-bottom: 40px; }
.modp__block-title { font-family: var(--font-head); font-weight: 500; font-size: 23px; letter-spacing: -.01em; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.modp__lead { font-size: 17px; line-height: 1.8; color: var(--ink-soft); max-width: 680px; }
.modp__goals { list-style: none; display: flex; flex-direction: column; gap: 14px; }
.modp__goals li { display: flex; align-items: flex-start; gap: 13px; font-size: 16px; line-height: 1.6; color: var(--ink-soft); }
.modp__goals svg { width: 20px; height: 20px; color: var(--pwc-orange); flex-shrink: 0; margin-top: 1px; }
.modp__speakers { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.modp__speaker { display: flex; align-items: center; gap: 14px; border: 1px solid var(--line); border-radius: var(--r-md); padding: 16px 18px; }
.modp__speaker-av { width: 48px; height: 48px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; font-family: var(--font-head); font-weight: 600; font-size: 15px; flex-shrink: 0; }
.modp__speaker-name { font-family: var(--font-head); font-weight: 500; font-size: 16px; }
.modp__speaker-role { font-size: 13px; color: var(--muted); margin-top: 2px; }
.modp__audience { display: flex; align-items: center; gap: 14px; background: var(--sand); border-radius: var(--r-md); padding: 20px 24px; font-size: 15px; color: var(--ink-soft); }
.modp__audience svg { width: 22px; height: 22px; color: var(--pwc-orange); flex-shrink: 0; }
.modp__audience b { font-family: var(--font-head); font-weight: 500; }
.modp__nav { display: flex; justify-content: space-between; gap: 16px; margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--line); }
.modp__navlink { display: inline-flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 600; color: var(--ink-soft); cursor: pointer; max-width: 45%; transition: color .2s; }
.modp__navlink:hover { color: var(--pwc-orange); }
.modp__navlink--next { margin-left: auto; text-align: right; }
.modp__navlink svg { width: 16px; height: 16px; flex-shrink: 0; }

.modp__aside { position: sticky; top: 96px; }
.modp__aside-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 28px; box-shadow: var(--shadow-md); }
.modp__price { padding-bottom: 18px; border-bottom: 1px solid var(--line); margin-bottom: 18px; }
.modp__price span { font-size: 13px; color: var(--muted); }
.modp__price strong { display: block; font-family: var(--font-head); font-weight: 500; font-size: 30px; color: var(--ink); letter-spacing: -.01em; margin-top: 4px; }
.modp__meta { list-style: none; margin-bottom: 22px; }
.modp__meta li { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line-soft); font-size: 14.5px; color: var(--ink-soft); }
.modp__meta li:last-child { border-bottom: none; }
.modp__meta li span { white-space: nowrap; }
.modp__theme span { white-space: nowrap; }
.modp__meta svg { width: 17px; height: 17px; color: var(--pwc-orange); flex-shrink: 0; }

@media (max-width: 1080px) {
    .resv { grid-template-columns: 1fr; }
    .summary { position: static; }
    .auth { grid-template-columns: 1fr; }
    .auth__aside { display: none; }
    .acct__grid { grid-template-columns: 1fr; }
    .acct__nav { position: static; display: flex; overflow-x: auto; }
    .faqp__grid { grid-template-columns: 1fr; }
    .faqp__side { position: static; flex-direction: row; flex-wrap: wrap; }
    .faqp__catnav { flex: 1; min-width: 240px; }
    .faqp__contact { flex: 1; min-width: 240px; }
    .modp__body { grid-template-columns: 1fr; gap: 8px; }
    .modp__aside { position: static; }
}
@media (max-width: 680px) {
    .sub__in, .acct__in, .sub__bar-in { padding-left: 22px; padding-right: 22px; }
    .form-grid { grid-template-columns: 1fr; }
    .resv__main, .card-panel { padding: 26px 22px; }
    .stepper__lbl { display: none; }
    .confirm { padding: 40px 24px; }
    .acc__q { font-size: 16px; }
    .acc__inner p { padding-right: 4px; }
}
