/* ==========================================================================
   Fiduciaire Chbihi — site public v1.9 (relief et profondeur)
   Feuille autonome chargée après app.css : aucune recompilation Tailwind.
   Les règles non préfixées (.btn, .card, .tile) harmonisent aussi les pages intérieures.
   ========================================================================== */
:root {
    --ps-navy-950: #071B2F;
    --ps-navy-900: #0E2A47;
    --ps-navy-800: #14395F;
    --ps-navy-700: #1D4B73;
    --ps-gold-600: #A8873F;
    --ps-gold-500: #C9A85D;
    --ps-gold-300: #E6D4A2;
    --ps-line: #E3E8EF;
    --ps-muted: #5D6B7E;
    --ps-shadow: 0 1px 0 rgba(255, 255, 255, .9) inset, 0 1px 2px rgba(14, 42, 71, .05), 0 18px 34px -22px rgba(14, 42, 71, .35);
    --ps-shadow-lift: 0 1px 0 rgba(255, 255, 255, .9) inset, 0 2px 4px rgba(14, 42, 71, .06), 0 30px 46px -24px rgba(14, 42, 71, .45);
}

/* ---------- Boutons et cartes en relief (toutes les pages) ---------- */
.btn { border-radius: 10px; transition: transform .15s, filter .15s, box-shadow .2s, background .2s; }
.btn:active { transform: translateY(1px); }
.btn-gold {
    background: linear-gradient(180deg, #E6CB86 0%, var(--ps-gold-500) 55%, #B8954B 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), inset 0 -2px 0 rgba(120, 90, 30, .35), 0 14px 22px -14px rgba(168, 135, 63, .95);
}
.btn-gold:hover { background: linear-gradient(180deg, #ECD497 0%, #D2B26A 55%, #BE9C52 100%); filter: none; transform: translateY(-1px); }
.btn-primary {
    background: linear-gradient(180deg, var(--ps-navy-700), var(--ps-navy-900));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), inset 0 -2px 0 rgba(0, 0, 0, .25), 0 12px 20px -12px rgba(14, 42, 71, .9);
}
.btn-ghost { box-shadow: 0 2px 0 var(--ps-line); }
.btn-ghost:hover { transform: translateY(-1px); box-shadow: 0 2px 0 var(--ps-gold-300), 0 12px 18px -14px rgba(14, 42, 71, .5); }
.card { border-radius: 16px; box-shadow: var(--ps-shadow); background: #fff; }
.tile { border-radius: 16px; box-shadow: var(--ps-shadow); background: #fff; transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s; }
.tile:hover { transform: translateY(-4px); box-shadow: var(--ps-shadow-lift); }
.ps-arrow { display: inline-block; vertical-align: middle; transition: transform .2s; }
a:hover > .ps-arrow, button:hover > .ps-arrow { transform: translateX(3px); }

/* ---------- Bandeau supérieur et en-tête ---------- */
.ps-topbar { background: var(--ps-navy-900); color: rgba(255, 255, 255, .85); font-size: .8rem; }
.ps-topbar .wrap { display: flex; align-items: center; justify-content: space-between; height: 40px; }
.ps-topbar__info { display: flex; align-items: center; gap: 26px; }
.ps-topbar__info a, .ps-topbar__info span { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.ps-topbar__info svg { color: var(--ps-gold-300); }
.ps-topbar__info a:hover { color: var(--ps-gold-300); }
.ps-socials { display: flex; align-items: center; gap: 6px; }
.ps-socials a {
    display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; color: rgba(255, 255, 255, .85);
    transition: background .15s, color .15s, transform .15s;
}
.ps-socials a:hover { background: rgba(255, 255, 255, .1); color: var(--ps-gold-300); transform: translateY(-1px); }

.ps-header { position: sticky; top: 0; z-index: 40; background: rgba(255, 255, 255, .94); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--ps-line); transition: box-shadow .25s; }
.ps-header.is-scrolled { box-shadow: 0 14px 30px -24px rgba(7, 27, 47, .55); }
.ps-nav { gap: 26px !important; }
.ps-nav a, .ps-nav button { position: relative; padding: 8px 0; white-space: nowrap; }
.ps-header .btn { white-space: nowrap; }
@media (max-width: 1320px) { .ps-header__client span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .ps-nav { gap: 20px !important; } }
.ps-nav .is-current { color: var(--ps-gold-600) !important; font-weight: 500; }
.ps-nav .is-current::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--ps-gold-600), var(--ps-gold-500)); }
.ps-dropdown { border-radius: 14px; box-shadow: var(--ps-shadow-lift); border: 1px solid var(--ps-line); }
.ps-dropdown a { border-radius: 9px; }

/* Entre 1024 et 1199 px, le menu complet ne tient pas : on bascule sur le menu mobile. */
@media (min-width: 1024px) and (max-width: 1199px) {
    .ps-header .ps-nav, .ps-header .ps-header__actions { display: none !important; }
    .ps-header .ps-burger { display: block !important; }
    .ps-header .ps-mobile-menu:not([style*="display: none"]) { display: block; }
}

/* ---------- Titres de section ---------- */
.ps-eyebrow { display: inline-flex; align-items: center; gap: 12px; font-size: .78rem; font-weight: 500; letter-spacing: .02em; color: var(--ps-navy-800); }
.ps-eyebrow::before { content: ""; width: 34px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--ps-gold-600), var(--ps-gold-500)); }
.ps-eyebrow--caps { text-transform: uppercase; letter-spacing: .14em; }
.ps-h2 { margin-top: 12px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.7rem, 2.6vw, 2.25rem); line-height: 1.2; color: var(--ps-navy-950); }
.ps-more { display: inline-flex; align-items: center; gap: 8px; font-size: .85rem; font-weight: 500; color: var(--ps-navy-900); text-decoration: none; }
.ps-more:hover { color: var(--ps-gold-600); }
.ps-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; }

/* ---------- Héros ---------- */
.ps-hero { position: relative; overflow: hidden; background: #fff; }
.ps-hero__media { position: absolute; top: 0; right: 0; bottom: 0; width: 60%; overflow: hidden; }
.ps-hero__media img {
    width: 100%; height: 100%; object-fit: cover; object-position: 55% 60%; display: block;
    transform: scale(1.06) translate(var(--px, 0), var(--py, 0)); transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}
.ps-hero__media::before {
    content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .92) 14%, rgba(255, 255, 255, .35) 34%, rgba(255, 255, 255, 0) 55%);
}
.ps-hero__inner { position: relative; z-index: 2; padding-top: 72px; padding-bottom: 46px; }
.ps-hero__text { max-width: 560px; }
.ps-hero h1 { margin-top: 22px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(2.2rem, 4.2vw, 3.35rem); line-height: 1.08; color: var(--ps-navy-950); letter-spacing: -.01em; }
.ps-hero__intro { margin-top: 20px; font-size: 1.05rem; line-height: 1.65; color: #3C4A5C; max-width: 520px; }
.ps-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.ps-hero__cta .btn { padding-top: .95rem; padding-bottom: .95rem; }
.ps-hero__signature {
    position: absolute; z-index: 2; right: 26%; top: 40px; margin: 0;
    font: 500 clamp(1.6rem, 2.6vw, 2.2rem)/1.1 "Caveat", "Segoe Script", cursive; color: var(--ps-navy-900);
    transform: rotate(-8deg); text-shadow: 0 0 10px #fff, 0 0 22px rgba(255, 255, 255, .9);
}
.ps-trust { display: flex; flex-wrap: wrap; gap: 14px 30px; margin-top: 44px; }
.ps-trust li { display: flex; align-items: center; gap: 10px; font-size: .78rem; line-height: 1.3; color: var(--ps-navy-900); max-width: 175px; }
.ps-trust svg { flex-shrink: 0; color: var(--ps-gold-600); }
.ps-hero-in { animation: ps-rise .9s cubic-bezier(.2, .8, .2, 1) both; }
.ps-hero-in--2 { animation-delay: .08s; }
.ps-hero-in--3 { animation-delay: .16s; }
.ps-hero-in--4 { animation-delay: .24s; }
@keyframes ps-rise { from { opacity: 0; transform: translateY(14px); } }

/* ---------- Médaillon d'icône en relief ---------- */
.ps-medal {
    display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; color: var(--ps-gold-600);
    background: linear-gradient(150deg, #fff -20%, #FBF3E1 45%, #F1E0B6 100%);
    box-shadow: inset 0 2px 0 rgba(255, 255, 255, .95), inset 0 -3px 0 rgba(168, 135, 63, .18), 0 14px 22px -12px rgba(201, 168, 93, .75);
}
.ps-medal svg { width: 28px; height: 28px; stroke-width: 1.5; }
.ps-medal--sm { width: 42px; height: 42px; border-radius: 13px; }
.ps-medal--sm svg { width: 21px; height: 21px; }

/* ---------- Services ---------- */
.ps-services { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 26px; margin-top: 40px; align-items: stretch; }
.ps-services__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; perspective: 1200px; }
.ps-service {
    --rx: 0deg; --ry: 0deg; --gx: 50%; --gy: 0%;
    position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 26px 16px 22px;
    border-radius: 18px; background: #fff; border: 1px solid #EEF1F5; box-shadow: var(--ps-shadow); color: inherit; text-decoration: none;
    transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)); transform-style: preserve-3d;
    transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s;
}
.ps-service::after {
    content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .3s;
    background: radial-gradient(circle at var(--gx) var(--gy), rgba(255, 255, 255, .8), transparent 55%); mix-blend-mode: soft-light;
}
.ps-service:hover { box-shadow: var(--ps-shadow-lift); }
.ps-service:hover::after { opacity: 1; }
.ps-service.is-tilting { transition: transform .08s linear, box-shadow .35s; }
.ps-service .ps-medal { transform: translateZ(36px); }
.ps-service strong { margin-top: 16px; font-size: .95rem; font-weight: 600; color: var(--ps-navy-950); transform: translateZ(20px); }
.ps-service span:last-child { margin-top: 6px; font-size: .8rem; line-height: 1.45; color: var(--ps-muted); transform: translateZ(12px); }

.ps-navycard {
    position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end;
    padding: 30px 28px; border-radius: 20px; color: #fff; background: var(--ps-navy-950); min-height: 380px;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .08) inset, 0 34px 50px -28px rgba(7, 27, 47, .95);
}
.ps-navycard img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; }
.ps-navycard::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(7, 27, 47, .94) 0%, rgba(7, 27, 47, .86) 55%, rgba(7, 27, 47, .55) 100%); }
.ps-navycard > *:not(img) { position: relative; z-index: 2; }
.ps-navycard h3 { margin: 0 0 auto; font-family: "Playfair Display", Georgia, serif; font-size: 1.55rem; line-height: 1.3; color: #fff; }
.ps-checks { list-style: none; margin: 26px 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ps-checks li { display: flex; align-items: center; gap: 12px; font-size: .92rem; color: rgba(255, 255, 255, .92); }
.ps-checks svg { flex-shrink: 0; color: var(--ps-gold-500); }

/* ---------- À propos ---------- */
.ps-about { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.2fr) minmax(0, .75fr); gap: 46px; align-items: center; }
.ps-photo3d { position: relative; perspective: 1200px; }
.ps-photo3d__frame {
    position: relative; border-radius: 20px; overflow: hidden; transform: rotateY(var(--ry, 8deg)) rotateX(var(--rx, 2deg));
    transform-style: preserve-3d; transition: transform .6s cubic-bezier(.2, .8, .2, 1);
    box-shadow: 0 40px 60px -34px rgba(7, 27, 47, .7), 0 1px 0 rgba(255, 255, 255, .5) inset;
}
.ps-photo3d__frame img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ps-photo3d::after { content: ""; position: absolute; left: 8%; right: 8%; bottom: -22px; height: 26px; border-radius: 50%; background: radial-gradient(closest-side, rgba(7, 27, 47, .32), transparent); filter: blur(4px); z-index: -1; }
.ps-stats { list-style: none; margin: 0; padding: 0 0 0 30px; border-left: 1px solid var(--ps-line); display: flex; flex-direction: column; gap: 22px; }
.ps-stats li { display: flex; align-items: center; gap: 14px; }
.ps-stats strong { display: block; font-family: "Playfair Display", Georgia, serif; font-size: 1.5rem; color: var(--ps-navy-950); line-height: 1.1; }
.ps-stats span { font-size: .8rem; color: var(--ps-muted); }

/* ---------- Secteurs ---------- */
.ps-sectors { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; margin-top: 36px; }
.ps-sector { display: flex; flex-direction: column; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: var(--ps-shadow); color: inherit; text-decoration: none; transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s; }
.ps-sector:hover { transform: translateY(-6px) rotateX(4deg); box-shadow: var(--ps-shadow-lift); }
.ps-sector img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.ps-sector:hover img { transform: scale(1.06); }
.ps-sector__tile {
    display: grid; place-items: center; aspect-ratio: 3 / 2;
    background: radial-gradient(circle at 25% 20%, rgba(255, 255, 255, .85), transparent 45%), repeating-linear-gradient(135deg, transparent 0 14px, rgba(255, 255, 255, .4) 14px 15px), linear-gradient(150deg, #E9EEF6, #CCD8E8);
}
.ps-sector:nth-child(2n) .ps-sector__tile { background: radial-gradient(circle at 25% 20%, rgba(255, 255, 255, .85), transparent 45%), repeating-linear-gradient(135deg, transparent 0 14px, rgba(255, 255, 255, .4) 14px 15px), linear-gradient(150deg, #FBF3E1, #EBD8A8); }
.ps-sector strong { padding: 12px 10px 14px; font-size: .82rem; font-weight: 600; text-align: center; color: var(--ps-navy-950); }

/* ---------- Bandeaux ---------- */
.ps-band { position: relative; overflow: hidden; color: #fff; background: var(--ps-navy-950); }
.ps-band__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 75% 45%; }
.ps-band::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(7, 27, 47, .97) 0%, rgba(7, 27, 47, .9) 42%, rgba(7, 27, 47, .3) 100%); }
.ps-band .wrap { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 26px; padding-top: 48px; padding-bottom: 48px; }
.ps-band h2 { font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.6rem, 2.6vw, 2.05rem); line-height: 1.25; color: #fff; }
.ps-band p { margin-top: 12px; max-width: 560px; color: rgba(255, 255, 255, .82); }

/* ---------- Méthode ---------- */
.ps-steps { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; counter-reset: step; }
.ps-step { display: flex; gap: 16px; padding: 22px; border-radius: 18px; background: #fff; box-shadow: var(--ps-shadow); transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s; }
.ps-step:hover { transform: translateY(-4px); box-shadow: var(--ps-shadow-lift); }
.ps-coin {
    display: grid; place-items: center; width: 50px; height: 50px; flex-shrink: 0; border-radius: 50%;
    font-family: "Playfair Display", Georgia, serif; font-size: 1rem; font-weight: 600; color: var(--ps-navy-950);
    background: radial-gradient(circle at 34% 28%, #fff 0%, #F8EBC8 40%, #DDBE77 100%);
    box-shadow: inset 0 -3px 6px rgba(168, 135, 63, .35), inset 0 2px 1px #fff, 0 0 0 3px #fff, 0 0 0 4px var(--ps-gold-300), 0 14px 20px -10px rgba(168, 135, 63, .8);
}
.ps-step em { display: block; font-style: normal; font-family: "Playfair Display", Georgia, serif; font-size: 1.3rem; color: var(--ps-gold-600); line-height: 1; }
.ps-step h3 { font-family: "DM Sans", ui-sans-serif, system-ui, sans-serif; margin-top: 6px; font-size: .95rem; font-weight: 600; color: var(--ps-navy-950); }
.ps-step p { margin-top: 6px; font-size: .84rem; line-height: 1.5; color: var(--ps-muted); }

/* ---------- Avis (carrousel) ---------- */
.ps-carousel { position: relative; margin-top: 36px; }
.ps-carousel__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 22px) / 2); gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 6px 4px 26px; }
.ps-carousel__track::-webkit-scrollbar { display: none; }
.ps-quote { scroll-snap-align: start; display: flex; gap: 18px; padding: 26px; border-radius: 18px; background: #fff; box-shadow: var(--ps-shadow); margin: 0; }
.ps-quote__mark {
    display: grid; place-items: center; width: 42px; height: 42px; flex-shrink: 0; border-radius: 50%; color: #fff;
    font: 600 1.6rem/1 "Playfair Display", Georgia, serif;
    background: radial-gradient(circle at 34% 28%, #E9CE8A 0%, var(--ps-gold-500) 50%, var(--ps-gold-600) 100%);
    box-shadow: inset 0 2px 2px rgba(255, 255, 255, .45), 0 10px 16px -8px rgba(168, 135, 63, .8);
}
.ps-quote blockquote { margin: 0; font-size: .94rem; line-height: 1.65; color: #2D3A4B; }
.ps-quote figcaption { margin-top: 16px; font-size: .84rem; }
.ps-quote figcaption strong { display: block; color: var(--ps-navy-950); }
.ps-quote figcaption span { color: var(--ps-muted); }
.ps-carousel__nav { display: flex; align-items: center; justify-content: center; gap: 14px; }
.ps-carousel__btn { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--ps-line); background: #fff; color: var(--ps-navy-900); cursor: pointer; box-shadow: 0 2px 0 var(--ps-line); }
.ps-carousel__btn:hover { border-color: var(--ps-gold-500); color: var(--ps-gold-600); }
.ps-carousel__dots { display: flex; gap: 8px; }
.ps-carousel__dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: #CED6E0; cursor: pointer; transition: width .2s, background .2s; }
.ps-carousel__dots button[aria-current="true"] { width: 22px; border-radius: 4px; background: var(--ps-gold-500); }

/* ---------- Articles ---------- */
.ps-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 36px; }
.ps-post { display: grid; grid-template-columns: 42% minmax(0, 1fr); border-radius: 16px; overflow: hidden; background: #fff; box-shadow: var(--ps-shadow); color: inherit; text-decoration: none; transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s; }
.ps-post:hover { transform: translateY(-5px); box-shadow: var(--ps-shadow-lift); }
.ps-post__media { position: relative; overflow: hidden; min-height: 150px; }
.ps-post__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.ps-post:hover .ps-post__media img { transform: scale(1.06); }
.ps-post__tile { position: absolute; inset: 0; display: grid; place-items: center; background: radial-gradient(circle at 25% 20%, rgba(255, 255, 255, .85), transparent 45%), repeating-linear-gradient(135deg, transparent 0 14px, rgba(255, 255, 255, .4) 14px 15px), linear-gradient(150deg, #FBF3E1, #EBD8A8); }
.ps-post__body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 16px; }
.ps-pill { display: inline-block; padding: 3px 10px; border-radius: 7px; font-size: .7rem; font-weight: 600; color: var(--ps-navy-800); background: #EAF0F8; }
.ps-post__body strong { font-size: .92rem; line-height: 1.35; color: var(--ps-navy-950); }
.ps-post:hover strong { color: var(--ps-gold-600); }
.ps-post__foot { margin-top: auto; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; width: 100%; font-size: .74rem; color: var(--ps-muted); }
.ps-post__foot b { font-weight: 600; color: var(--ps-navy-700); }

/* Carte d'article des pages Ressources */
article.ps-card-post { border-radius: 16px; overflow: hidden; background: #fff; box-shadow: var(--ps-shadow); transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s; }
article.ps-card-post:hover { transform: translateY(-5px); box-shadow: var(--ps-shadow-lift); }
article.ps-card-post > a:first-child { margin-bottom: 0 !important; overflow: hidden; }
article.ps-card-post > a:first-child img { transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
article.ps-card-post:hover > a:first-child img { transform: scale(1.05); }
.ps-card-post__body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }

/* ---------- Appel final ---------- */
.ps-final { position: relative; overflow: hidden; color: #fff; background: var(--ps-navy-950); }
.ps-final img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; opacity: .55; }
.ps-final::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(7, 27, 47, .96) 0%, rgba(7, 27, 47, .82) 55%, rgba(7, 27, 47, .5) 100%); }
.ps-final .wrap { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding-top: 44px; padding-bottom: 44px; }
.ps-final h2 { font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.5rem, 2.4vw, 1.95rem); color: #fff; }
.ps-final p { margin-top: 8px; color: rgba(255, 255, 255, .82); }
.ps-final__cta { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- En-tête des pages intérieures ---------- */
.ps-pagehero { position: relative; overflow: hidden; background: var(--ps-navy-950); }
.ps-pagehero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 75% 45%; opacity: .5; }
.ps-pagehero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(7, 27, 47, .97) 0%, rgba(7, 27, 47, .88) 50%, rgba(7, 27, 47, .45) 100%); }
.ps-pagehero .wrap { position: relative; z-index: 2; }
.ps-pagehero h1::after { content: ""; display: block; width: 64px; height: 3px; margin-top: 18px; border-radius: 3px; background: linear-gradient(90deg, var(--ps-gold-600), var(--ps-gold-500)); }

/* ---------- Pied de page ---------- */
.ps-footer { background: var(--ps-navy-950); color: #C9D4E1; margin-top: 0; }
.ps-footer__logo { display: inline-flex; padding: 8px 12px; border-radius: 12px; background: #fff; box-shadow: 0 12px 22px -14px rgba(0, 0, 0, .8); }
.ps-footer__logo img { display: block; height: 40px; width: auto; max-width: 210px; object-fit: contain; }
.ps-footer h2 { font-family: "DM Sans", ui-sans-serif, system-ui, sans-serif; font-size: .85rem; font-weight: 600; color: #fff; margin-bottom: 14px; }
.ps-footer ul a { color: #C9D4E1; text-decoration: none; }
.ps-footer ul a:hover { color: var(--ps-gold-300); }
.ps-footer__contact li { display: flex; align-items: flex-start; gap: 10px; }
.ps-footer__contact svg { flex-shrink: 0; margin-top: 2px; color: var(--ps-gold-500); }
.ps-footer .ps-socials a { width: 34px; height: 34px; border-radius: 10px; background: rgba(255, 255, 255, .07); }
.ps-newsletter { display: flex; border-radius: 10px; overflow: hidden; box-shadow: 0 10px 18px -12px rgba(0, 0, 0, .7); }
.ps-newsletter input { flex: 1; min-width: 0; padding: 11px 12px; border: 1px solid rgba(255, 255, 255, .16); border-right: 0; border-radius: 10px 0 0 10px; background: rgba(255, 255, 255, .07); color: #fff; font-size: .85rem; }
.ps-newsletter input::placeholder { color: rgba(255, 255, 255, .5); }
.ps-newsletter input:focus { outline: none; border-color: var(--ps-gold-500); }
.ps-newsletter .btn { border-radius: 0 10px 10px 0; padding-left: 14px; padding-right: 14px; }
.ps-footer__bottom { background: #050F1B; }
.ps-heart { color: #E53935; }

/* ---------- Adaptatif ---------- */
@media (max-width: 1180px) {
    .ps-services { grid-template-columns: 1fr; }
    .ps-navycard { min-height: 0; }
    .ps-about { grid-template-columns: 1fr 1.2fr; }
    .ps-stats { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; border-left: 0; padding: 0; gap: 22px 40px; }
    .ps-sectors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ps-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ps-posts { grid-template-columns: 1fr; max-width: 680px; }
    .ps-hero__signature { display: none; }
}
@media (max-width: 1023px) {
    .ps-hero__media { position: relative; width: 100%; height: 300px; }
    .ps-hero__media::before { background: linear-gradient(180deg, rgba(255, 255, 255, 0) 55%, #fff 100%); }
    .ps-hero__inner { padding-top: 6px; }
}
@media (max-width: 860px) {
    .ps-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ps-about { grid-template-columns: 1fr; gap: 34px; }
    .ps-carousel__track { grid-auto-columns: 88%; }
}
@media (max-width: 560px) {
    .ps-sectors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ps-steps { grid-template-columns: 1fr; }
    .ps-post { grid-template-columns: 38% minmax(0, 1fr); }
    .ps-hero__media { height: 230px; }
    .ps-hero__cta .btn { width: 100%; justify-content: center; }
    .ps-trust { gap: 14px 18px; }
    .ps-trust li { max-width: calc(50% - 10px); }
    .ps-service { padding: 20px 10px 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .ps-hero-in { animation: none; }
    .ps-service, .ps-photo3d__frame { transform: none !important; }
    .ps-hero__media img { transform: none !important; }
}
