/* LightTide — finition éditoriale (R2502)
   À charger APRÈS premium-finish.css, service-refresh.css et service-composition-v2.css.
   Technologie, Production, Service. CSS seulement : aucun HTML, texte, JS ni backend.
   Ne redéfinit ni object-fit, ni aspect-ratio, ni hauteur, ni transform des images,
   ni la grille du carnet (R2500). Dépend des variables --pf-* avec valeurs de repli. */

body.lt-finish.lt-premium-finish{
  --ef-navy:var(--pf-navy,#153b51);
  --ef-gold:var(--pf-gold,#b79a4e);
  --ef-water:#2d6b7c;
  --ef-stone:#f4f1ea;
  --ef-paper:#fbf8f0;
  --ef-line:rgba(21,59,81,.16);
  --ef-ease:var(--pf-ease,cubic-bezier(.2,.7,.2,1));
  --ef-dur:.16s;
  --ef-measure:84rem;
  --ef-read:42rem;
  --ef-gap:clamp(1.25rem,2.5vw,2.5rem);
}

/* 1. Sécurité : hidden et inert priment toujours */
body.lt-finish.lt-premium-finish :is(.sf-technology,.xp-production,.sf-services) [hidden]{
  display:none !important;
}

/* 2. Conteneurs : largeurs cohérentes dans les trois espaces */
body.lt-finish.lt-premium-finish :is(
  .sf-technology .sf-intro > .wrap, .xp-production > .wrap,
  .sf-services > .wrap.sf-service-head, .sf-services > .wrap.sc-catalogue){
  box-sizing:border-box;
  width:100%;
  max-width:var(--ef-measure);
  margin-inline:auto;
  padding-inline:clamp(16px,3vw,32px);
}

/* 3. En-têtes : hiérarchie kicker → titre → chapeau */
body.lt-finish.lt-premium-finish :is(.sf-technology .sf-head,.xp-production .xp-head,.sf-services .sf-service-head){
  padding-block:clamp(1.5rem,4vw,3.5rem) clamp(1rem,2vw,1.75rem);
}
body.lt-finish.lt-premium-finish :is(.sf-technology .sf-head,.xp-production .xp-head,.sf-services .sf-service-head) .xp-title{
  line-height:1.08;
  letter-spacing:-.01em;
  text-wrap:balance;
  overflow-wrap:anywhere;
  margin-block:.4rem .75rem;
}
body.lt-finish.lt-premium-finish :is(.sf-technology .sf-head .sf-lead,.xp-production .xp-head .xp-lead,.sf-services .sf-service-head p){
  max-width:var(--ef-read);
  line-height:1.6;
  color:var(--ef-navy);
  overflow-wrap:anywhere;
}
body.lt-finish.lt-premium-finish :is(.sf-technology .sf-head,.xp-production .xp-head,.sf-services .sf-service-head) :is(.kicker,[class*="kicker"],.pp-eyebrow){
  font-size:max(.78rem,.8em);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ef-water);
}

/* 4. Navigation de projets (Technologie + Production) */
body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav){
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-block:0 var(--ef-gap);
}
body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) > button{
  box-sizing:border-box;
  display:flex;
  align-items:center;
  gap:.75rem;
  flex:1 1 13rem;
  min-width:0;
  min-height:44px;
  padding:.6rem .85rem;
  text-align:start;
  color:var(--ef-navy);
  background:var(--ef-paper);
  border:1px solid var(--ef-line);
  border-radius:14px;
  cursor:pointer;
  transition:background-color var(--ef-dur) var(--ef-ease),
             border-color var(--ef-dur) var(--ef-ease),
             box-shadow var(--ef-dur) var(--ef-ease),
             color var(--ef-dur) var(--ef-ease);
}
body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) > button:hover{
  background:#fff;
  border-color:var(--ef-water);
}
body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) > button[aria-pressed="true"]{
  background:#fff;
  border-color:var(--ef-navy);
  box-shadow:inset 0 -3px 0 var(--ef-gold),0 1px 0 rgba(21,59,81,.08);
  font-weight:600;
}
body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) > button:focus-visible{
  outline:3px solid var(--ef-navy);
  outline-offset:3px;
}
body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) .pp-nav-thumb{
  border-radius:10px;
  border:1px solid var(--ef-line);
}
body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) .pp-nav-text{
  min-width:0;
  display:block;
  overflow-wrap:anywhere;
}
body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) .pp-nav-name{
  display:block;
  line-height:1.25;
  font-size:max(.95rem,1em);
}
body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) :is(.pp-nav-kind,.pp-nav-number){
  font-size:max(.78rem,.8em);
  letter-spacing:.06em;
  color:var(--ef-water);
}
body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) button[aria-pressed="true"] :is(.pp-nav-kind,.pp-nav-number){
  color:var(--ef-navy);
}

/* 5. Technologie : le texte s'aligne en haut face à la galerie haute (pas de vide au-dessus) */
body.lt-finish.lt-premium-finish .sf-tech-stage{
  gap:var(--ef-gap);
  align-items:start;
}
body.lt-finish.lt-premium-finish .sf-topic-copy{
  align-self:start;
  min-width:0;
  max-width:var(--ef-read);
  padding-top:0;
  margin-top:0;
  overflow-wrap:anywhere;
}
body.lt-finish.lt-premium-finish .sf-topic-copy > .sf-topic > .pp-eyebrow{
  font-size:max(.78rem,.8em);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ef-water);
  margin:0 0 .5rem;
}
body.lt-finish.lt-premium-finish .sf-topic-copy > .sf-topic > h2{
  line-height:1.12;
  text-wrap:balance;
  margin:0 0 .75rem;
}
body.lt-finish.lt-premium-finish .sf-topic-copy > .sf-topic > p:not(.pp-eyebrow):not(.pp-status){
  line-height:1.65;
  margin:0 0 1rem;
}
body.lt-finish.lt-premium-finish .sf-tech-stage :is(.sf-models,.sf-specs,.sf-tech-actions){
  min-width:0;
  margin-top:1.25rem;
  padding-top:1rem;
  border-top:1px solid var(--ef-line);
  overflow-wrap:anywhere;
}
body.lt-finish.lt-premium-finish .sf-tech-actions :is(a,button){
  min-height:44px;
}

/* 6. Galeries : légende lisible et commandes soignées (Technologie + Production) */
body.lt-finish.lt-premium-finish .xp-production .pp-art:not(.bw-carousel) figcaption{
  font-size:max(.85rem,.9em);
  line-height:1.5;
  color:var(--ef-navy);
  padding-top:.6rem;
  overflow-wrap:anywhere;
}
/* 7. Production : texte de projet et faits */
body.lt-finish.lt-premium-finish .pp-content .pp-project{
  gap:var(--ef-gap);
}
body.lt-finish.lt-premium-finish .xp-production .pp-project-copy{
  min-width:0;
  max-width:var(--ef-read);
  align-self:start;
  overflow-wrap:anywhere;
}
body.lt-finish.lt-premium-finish .xp-production .pp-project-copy :is(.pp-eyebrow,.pp-project-index,.pp-status){
  font-size:max(.78rem,.8em);
  letter-spacing:.12em;
  text-transform:uppercase;
}
body.lt-finish.lt-premium-finish .xp-production .pp-project-copy .pp-project-index{
  color:var(--ef-gold);
}
body.lt-finish.lt-premium-finish .xp-production .pp-project-copy .pp-status{
  color:var(--ef-water);
}
body.lt-finish.lt-premium-finish .xp-production .pp-project-copy .pp-fact{
  padding-block:.6rem;
  border-top:1px solid var(--ef-line);
  line-height:1.5;
}
body.lt-finish.lt-premium-finish .xp-production .pp-project-copy .pp-note{
  font-size:max(.85rem,.9em);
  line-height:1.5;
  padding-inline-start:.85rem;
  border-inline-start:2px solid var(--ef-gold);
}

/* 8. Service : filtres et barre d'outils */
body.lt-finish.lt-premium-finish .sc-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.75rem 1rem;
  margin-bottom:var(--ef-gap);
}
body.lt-finish.lt-premium-finish .sc-filters{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
body.lt-finish.lt-premium-finish .sc-filters button[data-sc-filter]{
  min-height:44px;
  padding-inline:1rem;
  color:var(--ef-navy);
  background:var(--ef-paper);
  border:1px solid var(--ef-line);
  border-radius:999px;
  cursor:pointer;
  transition:background-color var(--ef-dur) var(--ef-ease),
             border-color var(--ef-dur) var(--ef-ease),
             color var(--ef-dur) var(--ef-ease);
}
body.lt-finish.lt-premium-finish .sc-filters button[data-sc-filter]:hover{
  border-color:var(--ef-water);
  background:#fff;
}
body.lt-finish.lt-premium-finish .sc-filters button[data-sc-filter][aria-pressed="true"]{
  color:#fff;
  background:var(--ef-navy);
  border-color:var(--ef-navy);
}
body.lt-finish.lt-premium-finish .sc-filters button[data-sc-filter]:focus-visible{
  outline:3px solid var(--ef-navy);
  outline-offset:3px;
}

/* 9. Service : cartes (sans toucher aux images) */
body.lt-finish.lt-premium-finish .sc-grid{
  gap:var(--ef-gap);
}
body.lt-finish.lt-premium-finish .sc-card[data-sc-card]{
  display:flex;
  flex-direction:column;
  min-width:0;
  background:var(--ef-paper);
  border:1px solid var(--ef-line);
  border-radius:16px;
  transition:border-color var(--ef-dur) var(--ef-ease),box-shadow var(--ef-dur) var(--ef-ease);
}
body.lt-finish.lt-premium-finish .sc-card[data-sc-card]:hover,
body.lt-finish.lt-premium-finish .sc-card[data-sc-card]:focus-within{
  border-color:var(--ef-water);
  box-shadow:0 6px 18px rgba(21,59,81,.1);
}
body.lt-finish.lt-premium-finish .sc-card[data-sc-card] .sc-card-body{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  gap:.5rem;
  padding:1rem 1.15rem 1.25rem;
  min-width:0;
  overflow-wrap:anywhere;
}
body.lt-finish.lt-premium-finish .sc-card .sc-card-kicker{
  font-size:max(.78rem,.8em);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ef-water);
}
body.lt-finish.lt-premium-finish .sc-card .sc-card-body h2{
  font-size:clamp(1.2rem,1.6vw,1.45rem);
  line-height:1.2;
  margin:0;
}
body.lt-finish.lt-premium-finish .sc-card .sc-card-lead{
  font-weight:600;
  line-height:1.45;
  margin:0;
}
body.lt-finish.lt-premium-finish .sc-card .sc-card-desc{
  line-height:1.6;
  margin:0;
}
body.lt-finish.lt-premium-finish .sc-card button[data-sc-open]{
  align-self:flex-start;
  margin-top:auto;
  min-height:44px;
  padding-inline:1.1rem;
  color:var(--ef-navy);
  background:#fff;
  border:1px solid var(--ef-navy);
  border-radius:999px;
  border-bottom:3px solid var(--ef-gold);
  cursor:pointer;
  transition:background-color var(--ef-dur) var(--ef-ease),color var(--ef-dur) var(--ef-ease);
}
body.lt-finish.lt-premium-finish .sc-card button[data-sc-open]:hover{
  background:var(--ef-navy);
  color:#fff;
}
body.lt-finish.lt-premium-finish .sc-card button[data-sc-open]:focus-visible{
  outline:3px solid var(--ef-navy);
  outline-offset:3px;
}

/* 10. Service : détail inline, h2 dominant et h3 secondaire */
body.lt-finish.lt-premium-finish .sc-inline-detail{
  box-sizing:border-box;
  min-width:0;
  padding:clamp(1rem,2.5vw,2rem);
  background:var(--ef-stone);
  border:1px solid var(--ef-line);
  border-inline-start:4px solid var(--ef-gold);
  border-radius:16px;
}
body.lt-finish.lt-premium-finish .sc-inline-detail .sc-detail-copy{
  min-width:0;
  max-width:var(--ef-read);
  overflow-wrap:anywhere;
}
body.lt-finish.lt-premium-finish .sc-inline-detail .sc-detail-copy h2{
  font-size:clamp(1.6rem,2.6vw,2.2rem);
  line-height:1.12;
  margin:0 0 .75rem;
}
body.lt-finish.lt-premium-finish .sc-inline-detail .sc-detail-copy h3{
  font-size:max(1rem,1.05rem);
  line-height:1.3;
  letter-spacing:.02em;
  color:var(--ef-water);
  margin:1.25rem 0 .4rem;
}
body.lt-finish.lt-premium-finish .sc-inline-detail :is(.sc-prepare,.sc-close,.sc-return){
  min-height:44px;
  min-width:44px;
  cursor:pointer;
}
body.lt-finish.lt-premium-finish .sc-inline-detail :is(.sc-prepare,.sc-close,.sc-return):focus-visible,
body.lt-finish.lt-premium-finish .sc-request-head .sc-return:focus-visible{
  outline:3px solid var(--ef-navy);
  outline-offset:3px;
}
body.lt-finish.lt-premium-finish .sc-request-head h2{
  line-height:1.15;
  text-wrap:balance;
  overflow-wrap:anywhere;
}
body.lt-finish.lt-premium-finish .sc-request-head .sc-return{
  min-height:44px;
  min-width:44px;
}

/* 11. Carnet : hiérarchie des champs seulement (grille R2500 intacte) */
body.lt-finish.lt-premium-finish .sf-services .xp-field{
  min-width:0;
}
body.lt-finish.lt-premium-finish .sf-services .xp-field :is(label,.xp-help,small,[class*="help"],[class*="hint"]){
  font-size:max(.82rem,.85em);
  line-height:1.45;
  overflow-wrap:anywhere;
}
body.lt-finish.lt-premium-finish .sf-services .xp-field :is(input,select,textarea){
  min-height:44px;
  max-width:100%;
}
body.lt-finish.lt-premium-finish .sf-services .xp-field :is(input,select,textarea):focus-visible{
  outline:3px solid var(--ef-navy);
  outline-offset:2px;
}

/* 12. Petits écrans : une colonne, commandes pleine largeur */
@media (max-width:700px){
  body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) > button{
    flex-basis:100%;
  }
  body.lt-finish.lt-premium-finish .sc-filters button[data-sc-filter]{
    flex:1 1 auto;
  }
}

/* 13. Contraste forcé */
@media (forced-colors:active){
  body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) > button[aria-pressed="true"],
  body.lt-finish.lt-premium-finish .sc-filters button[data-sc-filter][aria-pressed="true"]{
    border-color:Highlight;
    box-shadow:none;
  }
  body.lt-finish.lt-premium-finish .sc-inline-detail{
    border-inline-start-color:Highlight;
  }
}

/* 14. Mouvement réduit : plus aucune transition */
@media (prefers-reduced-motion:reduce){
  body.lt-finish.lt-premium-finish :is(.pp-project-nav,.sf-topic-nav) > button,
  body.lt-finish.lt-premium-finish .sc-filters button[data-sc-filter],
  body.lt-finish.lt-premium-finish .sc-card[data-sc-card],
  body.lt-finish.lt-premium-finish .sc-card button[data-sc-open]{
    transition:none !important;
  }
}

/* Local review: preserve readable caption over approved dark storyboard surround. */
body.lt-finish.lt-premium-finish .pp-art.bw-carousel figcaption{color:#f6f0df;}

/* Actual art gallery controls only; geometry and behavior remain unchanged. */
body.lt-finish.lt-premium-finish :is(.sf-technology,.xp-production) .art-carousel :is(.art-step,.art-choice) {font-size:.875rem;border-radius:10px;transition:background-color .16s ease,border-color .16s ease;}
body.lt-finish.lt-premium-finish :is(.sf-technology,.xp-production) .art-carousel :is(.art-step,.art-choice):focus-visible{outline:3px solid #153b51;outline-offset:3px;}
@media(prefers-reduced-motion:reduce){body.lt-finish.lt-premium-finish :is(.sf-technology,.xp-production) .art-carousel :is(.art-step,.art-choice){transition:none!important;}}
