/* Idéal Web — socle visuel public consolidé
   Scope: pages publiques/indexables uniquement. Aucun style tunnel / paiement / espace client.
   V33.10.0: contraste sémantique imbriqué + audit global, sans couches de patch. */
.iw-public-page,.iw-public-page *,.iw-public-page *::before,.iw-public-page *::after{box-sizing:border-box}
.iw-public-page{
  --iw-surface-light-bg:#fff;
  --iw-surface-light-soft:#f4faf7;
  --iw-text-on-light:#10261f;
  --iw-muted-on-light:#4c6158;
  --iw-surface-dark-bg:#07111f;
  --iw-text-on-dark:#f8fafc;
  --iw-muted-on-dark:#c7d8d0;
  min-width:320px;max-width:100%;overflow-x:clip;text-rendering:optimizeLegibility
}
/* Contraste sémantique canonique.
   La surface la plus proche définit les variables héritées : un îlot clair peut donc vivre
   dans une section sombre (et inversement) sans qu'une règle ancêtre n'écrase son contraste. */
.iw-public-page :where(.iw-surface-light,[data-iw-surface="light"]){
  --iw-surface-text:var(--iw-text-on-light);
  --iw-surface-muted:var(--iw-muted-on-light);
  color:var(--iw-surface-text)
}
.iw-public-page :where(.iw-surface-dark,[data-iw-surface="dark"]){
  --iw-surface-text:var(--iw-text-on-dark);
  --iw-surface-muted:var(--iw-muted-on-dark);
  color:var(--iw-surface-text)
}
.iw-public-page :where(.iw-surface-light,.iw-surface-dark,[data-iw-surface="light"],[data-iw-surface="dark"]) :where(h1,h2,h3,h4,h5,h6,legend,label,summary,strong){color:var(--iw-surface-text)}
.iw-public-page :where(.iw-surface-light,.iw-surface-dark,[data-iw-surface="light"],[data-iw-surface="dark"]) :where(p,li,small){color:var(--iw-surface-muted)}
.iw-public-page main,.iw-public-page header,.iw-public-page footer,.iw-public-page nav,.iw-public-page section,.iw-public-page article,.iw-public-page aside,.iw-public-page figure{min-width:0;max-width:100%}
.iw-public-page :where(.container,.wrap,.shell,.iw-seo-shell,.page-wrap,.content-wrap,.iw-container){min-width:0;max-width:100%}
.iw-public-page :where(.grid,.grid-2,.grid-3,.grid-4,.cards,.cards-grid,.pricing-grid,.price-grid,.plans-grid,.comparison-grid,.features-grid,.footer-grid,.footer-cols,.trust,.trust-grid,.links-grid,.iw-price-summary,.iw-checklist)>*{min-width:0}
.iw-public-page :where(h1,h2,h3,h4,p,li,a,button,summary,th,td,strong,span){word-break:normal;overflow-wrap:break-word}
.iw-public-page :where(h1,h2,h3){text-wrap:balance}
.iw-public-page :where(p,li){text-wrap:pretty}
.iw-public-page :where(img,svg,video,canvas,iframe){max-width:100%;height:auto}
.iw-public-page figure{margin-inline:auto}
.iw-public-page :where(.actions,.hero-actions,.cta-actions,.button-row,.buttons){min-width:0;max-width:100%}
.iw-public-page :where(.btn,.button,.iw-btn,.btn-main,.btn-ghost,.header-cta,.iw-seo-pro,.iw-seo-cta){max-width:100%;white-space:normal;line-height:1.25;text-align:center}
.iw-public-page :where(.card,.panel,.price-card,.offer-card,.info-card,.zone-card,.sector-card,.comparison-card,.feature-card,.hero-card,.glass-card){min-width:0;overflow-wrap:break-word}
.iw-public-page :where(.table-wrap,.comparison-table,.price-table,.seo-table,.iw-price-table-wrap,.iw-table-wrap){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.iw-public-page table{max-width:100%}
.iw-public-page main>.iw-note{width:min(1120px,calc(100% - 34px));margin:22px auto;padding:16px 18px}
.iw-public-page :where(.faq-item summary,.faq details summary,details.faq-item summary){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px}
.iw-public-page :where(.faq-item summary span,.faq details summary span){min-width:0}
.iw-public-page :where(.faq-item summary i,.faq details summary i){flex:0 0 auto}
.iw-public-page .iw-seo-architecture{--iw-surface-text:var(--iw-text-on-dark);--iw-surface-muted:var(--iw-muted-on-dark);position:relative;z-index:1;margin:0;background:#07111f;color:var(--iw-surface-text)}
.iw-public-page .iw-seo-architecture__inner{padding:18px 0;gap:16px;min-width:0;max-width:100%}
.iw-public-page .iw-seo-architecture__title{font-size:.78rem}
.iw-public-page .iw-seo-architecture__links{gap:7px 8px;min-width:0;max-width:100%}
.iw-public-page .iw-seo-architecture__links a{min-height:38px;display:inline-flex;align-items:center;padding:7px 10px;font-size:.84rem;line-height:1.25}
.iw-public-page .iw-seo-footer-grid{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr))}
.iw-public-page .iw-seo-footer-grid>*{min-width:0}
.iw-public-page .iw-seo-footer :where(h2,p,a){max-width:100%;overflow-wrap:break-word}
.iw-public-page .iw-seo-footer h2{white-space:normal}

/* Pages publiques à thème sombre. */
.iw-public-dark .iw-seo-header{position:sticky;top:0;z-index:1000}
.iw-public-dark .iw-seo-header-inner{width:min(1180px,calc(100% - 32px));margin-inline:auto;min-width:0}
.iw-public-dark .iw-seo-brand{min-width:0;flex:0 0 auto}
.iw-public-dark .iw-seo-brand-mark{flex:0 0 auto}
.iw-public-dark .iw-seo-nav{min-width:0;gap:clamp(10px,1.25vw,18px)}
.iw-public-dark .iw-seo-nav a{font-size:clamp(.82rem,.95vw,.92rem);line-height:1.25;white-space:nowrap}
.iw-public-dark .iw-seo-actions{flex:0 0 auto;gap:10px}
.iw-public-dark .iw-seo-footer{margin-top:0}
.iw-public-dark main,.iw-public-dark section{overflow:visible}
.iw-public-dark :where(.grid,.grid.two,.links-grid,.iw-price-summary,.iw-checklist){align-items:stretch}
.iw-public-dark :where(.card,.link-card,.faq-item,.cta-card,.split-panel,.seo-map){height:auto}
.iw-public-dark .cta-card,.iw-public-dark .cta-actions{min-width:0}

@media(max-width:1100px){
  .iw-public-page :where(.grid-4,.pricing-grid,.price-grid,.plans-grid,.comparison-grid,.links-grid){grid-template-columns:repeat(2,minmax(0,1fr))}
  .iw-public-dark .iw-seo-header-inner{gap:14px}
  .iw-public-dark .iw-seo-nav{gap:10px}
}
@media(max-width:1050px){
  .iw-public-page .iw-seo-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Header mobile canonique: plus de navigation desktop comprimée. */
@media(max-width:820px){
  .iw-public-dark .iw-seo-header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:68px;padding:8px 0}
  .iw-public-dark .iw-seo-nav{display:none;width:0;height:0;padding:0;margin:0;overflow:hidden}
  .iw-public-dark .iw-seo-actions{display:flex;align-items:center;justify-self:end;width:auto;min-width:0;gap:8px}
  .iw-public-dark .iw-seo-pro{display:none}
  .iw-public-dark .iw-seo-cta{display:inline-flex;width:auto;max-width:138px;min-height:42px;padding:9px 13px;font-size:.82rem;line-height:1.12;white-space:normal}
  .iw-public-dark .iw-seo-brand{min-width:0;max-width:100%;font-size:1rem}
  .iw-public-dark .iw-seo-brand-mark{width:40px;height:40px;min-width:40px}
  .iw-public-page .iw-seo-architecture__inner{grid-template-columns:1fr;align-items:start}
}
@media(max-width:760px){
  .iw-public-page :where(.container,.wrap,.shell,.iw-seo-shell,.page-wrap,.content-wrap,.iw-container){width:min(100% - 24px,1180px);margin-inline:auto}
  .iw-public-page :where(.grid,.grid.two,.grid-2,.grid-3,.grid-4,.cards-grid,.pricing-grid,.price-grid,.plans-grid,.comparison-grid,.links-grid,.iw-price-summary,.iw-checklist,.footer-grid,.footer-cols,.trust,.trust-grid){grid-template-columns:1fr}
  .iw-public-page :where(.actions,.hero-actions,.cta-actions,.button-row,.buttons){width:100%}
  .iw-public-page :where(.btn,.button,.iw-btn,.btn-main,.btn-ghost,.header-cta){width:100%;justify-content:center}
  .iw-public-page main>.iw-note{width:calc(100% - 24px);margin:18px auto;padding:14px 15px}
  .iw-public-page .iw-seo-architecture__links{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .iw-public-page .iw-seo-architecture__links a{width:100%;justify-content:flex-start}
}
@media(max-width:700px){
  .iw-public-page .iw-seo-footer-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .iw-public-page .iw-seo-architecture__links{grid-template-columns:1fr}
  .iw-public-page .iw-seo-architecture__title{white-space:normal}
  .iw-public-page :where(.faq-item summary,.faq details summary,details.faq-item summary){gap:11px;padding-left:16px;padding-right:16px}
}
@media(max-width:390px){
  .iw-public-dark .iw-seo-header-inner{gap:7px}
  .iw-public-dark .iw-seo-brand{gap:8px;font-size:.94rem}
  .iw-public-dark .iw-seo-brand-mark{width:36px;height:36px;min-width:36px}
  .iw-public-dark .iw-seo-cta{max-width:124px;padding:8px 11px;font-size:.78rem}
}
@media(prefers-reduced-motion:reduce){
  .iw-public-page *,.iw-public-page *::before,.iw-public-page *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
