/* Épicures 2027 — espace participant. Styles exclusivement locaux au shortcode. */
.ep27-portal{--ep27-navy:#062746;--ep27-ink:#102e42;--ep27-muted:#617687;--ep27-accent:#dcebea;max-width:1320px;margin:32px auto 65px;color:var(--ep27-ink);font-family:inherit;box-sizing:border-box}
.ep27-portal *{box-sizing:border-box}
.ep27-portal h2,.ep27-portal h3,.ep27-portal h4,.ep27-portal p{line-height:1.35}
.ep27-portal h2,.ep27-portal h3,.ep27-portal h4{color:inherit;margin:0}
.ep27-portal a:focus-visible{outline:3px solid #5c9ed2;outline-offset:3px}
.ep27-portal-shell{display:grid;grid-template-columns:minmax(198px,240px) minmax(0,1fr);gap:24px;align-items:start}
.ep27-portal-side{position:sticky;top:22px;display:flex;flex-direction:column;gap:23px;border-radius:17px;background:var(--ep27-navy);color:white;padding:25px 14px;min-height:410px;box-shadow:0 14px 30px rgba(6,39,70,.12)}
.ep27-portal-side-brand{display:flex;gap:10px;align-items:center;padding:0 10px 21px;border-bottom:1px solid rgba(255,255,255,.18)}
.ep27-portal-side-brand strong{display:block;color:#fff;font-size:16px;line-height:1.15}
.ep27-portal-side-brand small{display:block;color:#b8cdda;font-size:12px;margin-top:3px}
.ep27-portal-side-symbol{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:10px;background:#e9dfba;color:#092845;font:700 25px Georgia,serif}
.ep27-portal-side-nav{display:grid;gap:5px}
.ep27-portal-side-nav a{display:block;text-decoration:none!important;border-radius:9px;padding:12px 13px;font-weight:600;font-size:14px;line-height:1.25;color:#e9f2fa!important;transition:background .16s ease}
.ep27-portal-side-nav a:hover,.ep27-portal-side-nav a.is-current{background:rgba(255,255,255,.16)}
.ep27-portal-side-bottom{margin-top:auto;padding:8px 12px 0;border-top:1px solid rgba(255,255,255,.18)}
.ep27-portal-side-bottom a{color:#dbe7f0!important;font-size:13px;text-decoration:none}
.ep27-portal-side-bottom a:hover{text-decoration:underline}
.ep27-portal-main{min-width:0}
.ep27-portal-welcome{background:linear-gradient(110deg,#f4f0e0 0%,#f7f7f1 100%);border:1px solid #eae6d9;border-radius:16px;padding:27px 31px;margin-bottom:26px}
.ep27-portal-eyebrow,.ep27-portal-overline{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;color:#5d787f;margin-bottom:8px}
.ep27-portal-welcome h2{font-size:clamp(25px,3vw,34px);line-height:1.15;margin:0 0 8px;color:var(--ep27-navy)}
.ep27-portal-welcome p{margin:0;color:#506a77;font-size:15px}
.ep27-portal-section{margin-bottom:30px;scroll-margin-top:30px}
.ep27-portal-section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 0 15px}
.ep27-portal-section-head h3{font-size:23px;color:var(--ep27-navy);letter-spacing:-.025em}
.ep27-portal-section-head .ep27-portal-icon{color:#164b62}
.ep27-portal-counter{background:#edf1f4;border-radius:30px;padding:7px 13px;color:#4d6473;font-size:12px;font-weight:800}
.ep27-portal-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.ep27-portal-tile{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;min-height:244px;padding:22px;color:#fff!important;text-decoration:none!important;border-radius:17px;background:#0b4465;box-shadow:0 9px 19px rgba(6,39,70,.12);transition:transform .18s,box-shadow .18s}
.ep27-portal-tile:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(6,39,70,.20)}
.ep27-portal-tile--commerce{background:linear-gradient(135deg,#042e48,#075b71 66%,#418f91)}
.ep27-portal-tile--food{background:linear-gradient(125deg,#18283e,#43697b 70%,#8fa89c)}
.ep27-portal-tile--packaging{background:linear-gradient(130deg,#342b50,#836e89 76%,#c3abb8)}
.ep27-portal-tile--mixed{background:linear-gradient(125deg,#0f364c,#64728a 63%,#999f89)}
.ep27-portal-tile:before{content:"";position:absolute;z-index:-1;width:230px;height:230px;border-radius:50%;background:rgba(255,255,255,.10);right:-68px;bottom:-100px;border:36px solid rgba(255,255,255,.08)}
.ep27-portal-tile:after{content:"";position:absolute;z-index:-1;width:160px;height:160px;border-radius:28px;border:1px solid rgba(255,255,255,.12);transform:rotate(26deg);right:24px;top:55px}
.ep27-portal-tile-illustration{position:absolute;right:20px;top:61px;opacity:.28;transform:rotate(-11deg)}
.ep27-portal-tile-illustration svg{width:113px;height:113px;stroke-width:1.1}
.ep27-portal-tile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ep27-portal-tile-label{font-size:10px;line-height:1.4;letter-spacing:.09em;font-weight:800;text-transform:uppercase;color:#f2f8fa}
.ep27-portal-state{font-size:11px;font-weight:700;border-radius:30px;padding:5px 8px;background:rgba(255,255,255,.18);color:#fff;white-space:nowrap;text-align:center}
.ep27-portal-state--attention{background:#fff0d5;color:#694510}
.ep27-portal-state--success{background:#d7f2e7;color:#0c6549}
.ep27-portal-tile-content{display:flex;flex-direction:column;align-items:flex-start;margin-top:auto;position:relative;z-index:1}
.ep27-portal-tile-content strong{font-size:23px;line-height:1.15;color:#fff;max-width:90%;word-break:break-word}
.ep27-portal-tile-ref{font-size:12px;opacity:.85;margin-top:5px}
.ep27-portal-tile-action{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:750;margin-top:15px;border-bottom:1px solid rgba(255,255,255,.7);padding-bottom:3px}
.ep27-portal-tile-action .ep27-portal-icon,.ep27-portal-panel-help a .ep27-portal-icon,.ep27-portal-button .ep27-portal-icon{width:17px;height:17px}
.ep27-portal-invoices{background:#fff;border:1px solid #e0e8ed;border-radius:16px;padding:9px 20px;box-shadow:0 3px 14px rgba(2,31,55,.04)}
.ep27-portal-invoices>p:first-child{margin:18px 0}
.ep27-portal-invoice-row{display:flex;gap:15px;align-items:center;border-bottom:1px solid #ebeff2;padding:17px 0}
.ep27-portal-invoice-row:last-of-type{border-bottom:0}
.ep27-portal-invoice-symbol{display:grid;place-items:center;flex:0 0 46px;height:46px;border-radius:12px;background:#eff4f6;color:#21556f}
.ep27-portal-invoice-symbol svg{width:22px;height:22px}
.ep27-portal-invoice-body{display:grid;gap:3px;min-width:0;flex:1}
.ep27-portal-invoice-body strong{font-size:14px;word-break:break-word}
.ep27-portal-invoice-body small{font-size:12px;color:#758896}
.ep27-portal-invoice-body span{font-size:13px;color:#4b6573}
.ep27-portal-invoice-badge{font-size:11px;font-weight:700;background:#f3f4f4;color:#445d69;padding:7px 11px;border-radius:22px;white-space:nowrap}
.ep27-portal-subtle{color:#70828c;font-size:12px;margin:8px 0 14px}
.ep27-portal-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ep27-portal-panel{border:1px solid #e0e8ed;border-radius:16px;background:#fff;padding:22px;scroll-margin-top:30px}
.ep27-portal-panel-icon{display:grid;place-items:center;width:48px;height:48px;background:#f0f5f6;border-radius:13px;color:#18536d;margin-bottom:14px}
.ep27-portal-panel-icon svg{width:26px;height:26px}
.ep27-portal-panel h3{font-size:19px;margin-bottom:8px;color:var(--ep27-navy)}
.ep27-portal-panel p{font-size:14px;line-height:1.6;color:#435e6d;margin:0 0 12px;overflow-wrap:anywhere}
.ep27-portal-panel>span{font-size:12px;color:#748792}
.ep27-portal-panel-help{background:linear-gradient(140deg,#e7eeed,#f7f8f3)}
.ep27-portal-panel-help a{display:inline-flex;gap:8px;align-items:center;font-weight:750;font-size:14px;text-decoration:none;color:#073f62}
.ep27-portal-empty{padding:28px;border:1px dashed #b8cdd7;border-radius:16px;background:#f7fafb}
.ep27-portal-empty h4,.ep27-portal-empty h2{font-size:23px;margin-bottom:8px}
.ep27-portal-empty p{font-size:14px;margin:0 0 12px}
.ep27-portal-login{max-width:720px}
.ep27-portal-login .ep27-portal-welcome{padding:35px}
.ep27-portal-button{display:inline-flex;align-items:center;gap:9px;color:#fff!important;text-decoration:none;background:var(--ep27-navy);border-radius:9px;padding:12px 20px;font-size:14px;font-weight:700;margin-top:22px}
.ep27-portal-login-help{margin-top:14px!important}
.ep27-portal-login-help a{color:var(--ep27-navy)}
.ep27-portal-form{max-width:1200px}
@media(min-width:1200px){.ep27-portal-tiles:has(> :only-child){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:950px){.ep27-portal-shell{grid-template-columns:200px minmax(0,1fr);gap:15px}.ep27-portal-tile{min-height:235px}.ep27-portal-tiles{grid-template-columns:1fr}.ep27-portal-side{padding:20px 10px}}
@media(max-width:720px){.ep27-portal{margin:20px auto 40px}.ep27-portal-shell{display:block}.ep27-portal-side{position:static;min-height:0;padding:15px;margin-bottom:18px;gap:12px}.ep27-portal-side-brand{padding-bottom:12px}.ep27-portal-side-nav{display:flex;overflow:auto;gap:5px;padding-bottom:4px}.ep27-portal-side-nav a{flex-shrink:0;font-size:12px;padding:10px 11px}.ep27-portal-side-bottom{display:none}.ep27-portal-welcome{padding:24px 20px;margin-bottom:22px}.ep27-portal-welcome h2{font-size:28px}.ep27-portal-tile{min-height:220px}.ep27-portal-tiles,.ep27-portal-bottom-grid{grid-template-columns:1fr}.ep27-portal-section-head h3{font-size:21px}.ep27-portal-invoices{padding:8px 14px}.ep27-portal-invoice-row{gap:9px}.ep27-portal-invoice-symbol{flex-basis:38px;height:38px}.ep27-portal-invoice-badge{font-size:10px;padding:5px 7px}}
@media(prefers-reduced-motion:reduce){.ep27-portal-tile{transition:none}.ep27-portal-tile:hover{transform:none}}

/* V0.3.6 : connexion intégrée et suivi des règlements. */
.ep27-portal-login-form{display:grid;gap:14px;margin-top:24px}
.ep27-portal-login-form>label{font-size:13px;font-weight:700;display:grid;gap:5px}
.ep27-portal-login-form input[type=email],.ep27-portal-login-form input[type=password]{background:white;border:1px solid #b9c9d3;border-radius:9px;min-height:46px;width:100%;padding:11px 13px;font-size:16px}
.ep27-portal-login-form .ep27-login-remember{display:flex;gap:9px;align-items:center;font-size:13px}
.ep27-portal-login-form button.ep27-portal-button{border:0;cursor:pointer;justify-self:start;margin-top:0}
.ep27-portal-login-error{color:#962d2d!important;padding:12px 15px;background:#fff2f0;border-radius:8px;margin-top:15px!important}
.ep27-portal-invoice-badge--paye{color:#075b41;background:#ddf4e8}
.ep27-portal-invoice-badge--partiel{color:#785012;background:#fff1ce}
.ep27-portal-invoice-badge--non_paye{color:#8f4a0a;background:#fff1df}
.ep27-invoice-pay{display:inline-flex;gap:6px;align-items:center;color:#06496f;font-weight:800;margin-top:8px;font-size:13px;text-decoration:underline}
.ep27-invoice-pay svg{height:14px;width:14px}
.ep27-invoice-bank{margin-top:8px;background:#f0f6f6;border-radius:8px;padding:9px 12px}
.ep27-invoice-bank summary{cursor:pointer;font-size:13px;font-weight:700;color:#154967}
.ep27-invoice-bank p{font-size:13px;line-height:1.8;margin:8px 0;color:#23465b;overflow-wrap:anywhere}
.ep27-invoice-bank small{color:#5d6f7a}
.ep27-invoice-refresh{margin:12px 0}
.ep27-invoice-refresh button{border:1px solid #c4d6df;border-radius:8px;padding:9px 12px;font-weight:700;color:#0b4768;background:#f1f6f8;cursor:pointer}
@media(max-width:720px){.ep27-portal-invoice-row{flex-wrap:wrap}.ep27-portal-invoice-badge{margin-left:47px}}

/* V0.3.13 : deux accès immédiats Alimentaire et factures. */
.ep27-portal-tile--invoices{background:linear-gradient(130deg,#e7ede4,#eaf4ef 64%,#bdced0);color:#0a3349!important;border:1px solid #d4e0da}
.ep27-portal-tile--invoices .ep27-portal-tile-content strong{color:#0a3349}
.ep27-portal-tile--invoices .ep27-portal-tile-label{color:#375f63}
.ep27-portal-tile--invoices .ep27-portal-state{background:#fff;color:#1f6460}
.ep27-portal-tile--invoices .ep27-portal-tile-action{border-color:#1c5967}
.ep27-portal-tile--invoices:before{background:rgba(9,72,80,.06);border-color:rgba(9,72,80,.06)}
.ep27-portal-tile--invoices:after{border-color:rgba(9,72,80,.15)}
.ep27-food-form{max-width:850px;margin:12px auto 48px}
.ep27-food-back{display:inline-flex;color:#0c506b;font-weight:700;margin:0 0 17px;text-decoration:none}
.ep27-food-intro{margin:0 0 20px;color:#455f6c;font-size:14px;line-height:1.7}
.ep27-food-fieldset{border:1px solid #dce7eb;background:#fff;border-radius:16px;padding:20px 24px;margin:0 0 20px;display:grid;gap:18px}
.ep27-food-fieldset legend{font-size:20px;color:#0b344c;font-weight:800;padding:0 8px}
.ep27-food-label{display:grid;gap:6px;color:#153d54;font-size:14px;font-weight:750}
.ep27-food-label input,.ep27-food-label textarea,.ep27-food-label select{background:#fff;border:1px solid #bdcdd5;border-radius:9px;padding:11px 13px;min-height:44px;width:100%;font-size:15px;color:#233d4c;font-weight:400;box-sizing:border-box}
.ep27-food-label textarea{resize:vertical;line-height:1.5}
.ep27-food-actions{display:flex;align-items:center;flex-wrap:wrap;gap:15px}
.ep27-food-actions .ep27-portal-button{border:0;cursor:pointer;margin-top:0}
.ep27-food-actions>span{font-size:13px;color:#637786}
.ep27-food-success{background:#e3f4ed;border:1px solid #a1d6bf;color:#0b5e46;padding:14px 18px;border-radius:10px;margin:0 0 15px}
@media(max-width:720px){.ep27-food-fieldset{padding:18px 15px}}
.ep27-food-footer{border-top:1px solid #dae3e5;padding-top:16px;margin-top:16px;color:#567080;font-size:13px}
.ep27-food-footer a{color:#065474;font-weight:750}

/* V0.3.15 — présentation photo fidèle à l'ancien tableau de bord exposants. */
.ep27-portal-photo-layout{max-width:1440px}
.ep27-portal-photo-layout .ep27-portal-shell{grid-template-columns:minmax(190px,250px) minmax(0,1fr);gap:24px}
.ep27-portal-photo-layout .ep27-portal-side{background:transparent;box-shadow:none;border-radius:0;padding:0;gap:14px;min-height:0;top:24px}
.ep27-portal-photo-layout .ep27-portal-side-brand{background:#f5f1e3;border:1px solid #0a2d4c;color:#0a2d4c;padding:14px;border-radius:0}
.ep27-portal-photo-layout .ep27-portal-side-brand strong{color:#0a2d4c}
.ep27-portal-photo-layout .ep27-portal-side-brand small{color:#436072}
.ep27-portal-photo-layout .ep27-portal-nav-heading{display:none}
.ep27-portal-photo-layout .ep27-portal-side-nav{gap:9px}
.ep27-portal-photo-layout .ep27-portal-side-nav a{border-radius:0;background:#062545;color:#fff!important;padding:16px 15px;font-weight:750}
.ep27-portal-photo-layout .ep27-portal-side-nav a:hover,.ep27-portal-photo-layout .ep27-portal-side-nav a.is-current{background:#154466}
.ep27-portal-photo-layout .ep27-portal-side-bottom{border:0;padding:0}
.ep27-portal-photo-layout .ep27-portal-side-bottom a{color:#0b344d!important;text-decoration:underline}
.ep27-portal-photo-layout .ep27-portal-welcome{padding:18px 22px;margin-bottom:18px;border-radius:12px}
.ep27-portal-photo-layout .ep27-portal-welcome h2{font-size:clamp(22px,2.6vw,28px)}
.ep27-portal-photo-layout .ep27-portal-section-head{margin-bottom:13px}
.ep27-portal-photo-layout .ep27-portal-section-head h3{font-size:21px}
.ep27-portal-photo-layout .ep27-portal-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 22px}
.ep27-portal-photo-card{isolation:isolate;position:relative;display:flex;overflow:hidden;align-items:flex-end;min-height:190px;aspect-ratio:1.38;border-radius:16px;text-decoration:none!important;color:#fff!important;background:#d0ccc6;box-shadow:0 6px 13px rgba(7,33,50,.06);transition:transform .16s ease,box-shadow .16s ease}
.ep27-portal-photo-card:hover{transform:translateY(-2px);box-shadow:0 10px 21px rgba(7,33,50,.18)}
.ep27-portal-photo-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;display:block}
.ep27-portal-photo-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(0,17,32,.76) 0%,rgba(0,20,35,.17) 60%,rgba(0,20,35,.07) 100%)}
.ep27-portal-photo-bottom{display:grid;gap:5px;align-items:end;padding:16px;width:100%;text-shadow:0 2px 7px rgba(0,0,0,.56)}
.ep27-portal-photo-bottom strong{display:block;color:white;font-size:clamp(16px,1.55vw,21px);line-height:1.13;font-weight:850;overflow-wrap:anywhere}
.ep27-portal-photo-bottom small{display:block;color:#fff;font-size:10px;line-height:1.3;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep27-portal-photo-status{position:absolute;left:12px;top:12px;border-radius:24px;background:#092940;color:white;padding:5px 9px;font-size:10px;font-weight:700;line-height:1.2;box-shadow:0 3px 9px rgba(0,0,0,.2)}
.ep27-portal-rubrique{max-width:920px;margin-top:26px}
.ep27-portal-rubrique-content{background:#f6f2e5;border:1px solid #e7e1d2;border-radius:15px;padding:38px 36px;min-height:235px}
.ep27-portal-rubrique-content h2{font-size:clamp(24px,3vw,34px);color:#092a48;margin-bottom:22px}
.ep27-portal-rubrique-content p{font-size:16px;line-height:1.65;color:#355265}
.ep27-portal-rubrique-content a{color:#0a5275;font-weight:700}
@media(max-width:1100px){.ep27-portal-photo-layout .ep27-portal-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ep27-portal-photo-layout .ep27-portal-shell{grid-template-columns:190px minmax(0,1fr);gap:16px}.ep27-portal-photo-card{min-height:180px}}
@media(max-width:720px){.ep27-portal-photo-layout .ep27-portal-shell{display:block}.ep27-portal-photo-layout .ep27-portal-side{position:static;margin-bottom:20px}.ep27-portal-photo-layout .ep27-portal-side-nav{display:flex;overflow-x:auto}.ep27-portal-photo-layout .ep27-portal-side-nav a{white-space:nowrap;padding:12px;font-size:12px}.ep27-portal-photo-layout .ep27-portal-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ep27-portal-photo-card{min-height:153px;aspect-ratio:1.1}.ep27-portal-photo-bottom{padding:12px}.ep27-portal-photo-bottom strong{font-size:15px}.ep27-portal-photo-status{font-size:9px;top:8px;left:8px}.ep27-portal-rubrique-content{padding:24px 20px}}
@media(max-width:430px){.ep27-portal-photo-layout .ep27-portal-photos{grid-template-columns:1fr}.ep27-portal-photo-card{aspect-ratio:1.75;min-height:190px}.ep27-portal-photo-bottom strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){.ep27-portal-photo-card{transition:none}}

/* V0.3.16 — correctif de compatibilité des pages WordPress à contenu contraint.
   Force les colonnes photo même si le thème surcharge .ep27-portal-tiles.
   La largeur s'adapte à la fenêtre plutôt qu'à la colonne étroite de l'éditeur. */
.ep27-portal.ep27-portal-photo-layout {
  width: min(1440px, calc(100vw - 72px)) !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  font-family: system-ui, -apple-system, "Segoe UI", Arial, Helvetica, sans-serif !important;
}
.ep27-portal-photo-layout .ep27-portal-shell {
  display: grid !important;
  grid-template-columns: minmax(190px, 250px) minmax(0, 1fr) !important;
  gap: 24px !important;
  width: 100% !important;
}
.ep27-portal-photo-layout .ep27-portal-main,
.ep27-portal-photo-layout #ep27-mes-participations {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}
.ep27-portal-photo-layout .ep27-portal-tiles.ep27-portal-photos {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px 22px !important;
  width: 100% !important;
  max-width: none !important;
  align-items: stretch;
}
.ep27-portal-photo-layout .ep27-portal-photos > .ep27-portal-photo-card {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  float: none !important;
}
@media (max-width: 1100px) {
  .ep27-portal-photo-layout .ep27-portal-shell {
    grid-template-columns: 190px minmax(0, 1fr) !important;
    gap: 16px !important;
  }
  .ep27-portal-photo-layout .ep27-portal-tiles.ep27-portal-photos {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }
}
@media (max-width: 720px) {
  .ep27-portal.ep27-portal-photo-layout {
    width: calc(100vw - 48px) !important;
  }
  .ep27-portal-photo-layout .ep27-portal-shell {
    display: block !important;
  }
  .ep27-portal-photo-layout .ep27-portal-tiles.ep27-portal-photos {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 13px !important;
  }
  .ep27-portal-photo-layout .ep27-portal-photo-card {
    aspect-ratio: 1.75;
    min-height: 188px;
  }
  .ep27-portal-photo-layout .ep27-portal-photo-bottom strong {
    font-size: 19px;
  }
}

/* V0.3.17 — trois accents de concours très discrets, sur la même grille historique. */
.ep27-portal-photo-card--commerce{border-top:4px solid #718f7f!important}
.ep27-portal-photo-card--food{border-top:4px solid #bf9962!important}
.ep27-portal-photo-card--packaging{border-top:4px solid #788da4!important}

/* V0.3.18 — page factures séparée et réaffirmation de la grille photo après le formulaire Alimentaire. */
.ep27-portal.ep27-portal-invoices-page{width:min(100%,920px);max-width:920px;margin-left:auto;margin-right:auto;font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important}
.ep27-portal-invoices-page .ep27-portal-billing-content{background:#faf9f5;border-color:#e6e9e4}
.ep27-portal-photo-layout .ep27-portal-main .ep27-portal-tiles.ep27-portal-photos{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-flow:row!important;gap:20px 22px!important}
.ep27-portal-photo-layout .ep27-portal-main .ep27-portal-tiles.ep27-portal-photos>.ep27-portal-photo-card{width:100%!important;max-width:none!important;min-width:0!important;float:none!important;display:flex!important}
@media(max-width:1100px){.ep27-portal-photo-layout .ep27-portal-main .ep27-portal-tiles.ep27-portal-photos{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:720px){.ep27-portal-photo-layout .ep27-portal-main .ep27-portal-tiles.ep27-portal-photos{grid-template-columns:minmax(0,1fr)!important}}

/* V0.3.22 — grille robuste face aux styles imposés par le thème.
   Les dimensions sont définies dans des variables responsives, utilisées par
   les styles critiques inline du shortcode (sans dépendre d'un ordre CSS). */
#ep27-mon-espace{--ep27-shell-cols:minmax(190px,250px) minmax(0,1fr);--ep27-photo-cols:repeat(3,minmax(0,1fr))}
#ep27-mon-espace .ep27-portal-main{width:100%!important;min-width:0!important;max-width:none!important}
#ep27-mon-espace .ep27-portal-photo-card{min-width:0!important;max-width:none!important;width:100%!important;float:none!important;margin:0!important}
@media(max-width:1100px){#ep27-mon-espace{--ep27-shell-cols:190px minmax(0,1fr);--ep27-photo-cols:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){#ep27-mon-espace{--ep27-shell-cols:minmax(0,1fr);--ep27-photo-cols:minmax(0,1fr)}#ep27-mon-espace .ep27-portal-shell{gap:15px!important}}

/* Connexion autonome, compatible avec une colonne Elementor. */
.ep27-connection{width:100%;max-width:600px;margin:0 auto;font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
.ep27-connection .ep27-portal-login{width:100%;max-width:100%;margin:0}
.ep27-connection .ep27-portal-welcome{padding:28px}
.ep27-connection .ep27-portal-button{white-space:normal;text-align:center}
