/* V304 — cadrage mobile intégral des services et lieux d’exception */

#view-search .services-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:14px;align-items:start}
#view-search .service-card{min-height:0;grid-template-rows:auto auto;align-content:start;border-radius:16px;background:#fff}
#view-search .service-art{width:100%;min-height:0;aspect-ratio:1/1;background:#eef2f6}
#view-search .service-body{min-height:58px;padding:10px 12px;text-align:center;align-content:center}
#view-search .service-body strong{line-height:1.22}
#view-search .services-grid:has(.service-card:only-child){display:block}
#view-search .service-card:only-child{width:100%;grid-template-columns:minmax(138px,38%) 1fr;grid-template-rows:auto;align-items:stretch}
#view-search .service-card:only-child .service-body{text-align:left;padding:16px;font-size:17px}
.featured-exception-places .exception-place-card{padding:0;grid-template-rows:auto 1fr auto;background:#fff}
.featured-exception-places .exception-place-visual{position:relative;width:100%;min-height:0;aspect-ratio:16/10;overflow:hidden;border-radius:0;background:linear-gradient(135deg,#dceadf,#eef5ee)}
.featured-exception-places .exception-place-visual img{position:absolute;inset:0;width:100%;height:100%;border-radius:0;object-fit:cover;object-position:center}
.featured-exception-places .exception-place-copy{padding:0 15px}
.featured-exception-places .booking-action{margin:0 15px 15px}
.advanced-search-panel{border:2px solid #f28a36!important;background:#fff8ee!important;box-shadow:0 10px 28px rgba(242,138,54,.16)}
.advanced-search-panel summary{min-height:52px!important;color:#8a3900!important;font-size:14px!important}

.delivery-simple-panel{width:min(100%,760px);margin:0 auto;display:grid;gap:18px}
.delivery-kind-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.delivery-kind-tab{min-height:56px;border:2px solid #0b326a;border-radius:14px;background:#fff;color:#0b326a;font-weight:950;font-size:16px}
.delivery-kind-tab.selected{border-color:transparent;color:#fff;background:linear-gradient(135deg,#0b326a,#079285);box-shadow:0 12px 26px rgba(11,50,106,.2)}
.delivery-simple-form{display:grid;gap:14px}
.delivery-simple-form>label{font-size:15px}
.delivery-client-name,.delivery-client-phone{padding:12px;border:1px solid rgba(242,138,54,.35);border-radius:14px;background:#fff8ee}
.delivery-client-name small,.delivery-client-phone small{color:#7a4a23;font-size:12px;font-weight:650}
.delivery-simple-form input:not([type=hidden]){min-height:56px;font-size:16px}
.delivery-fare-summary{min-height:74px;border:1px solid rgba(7,146,133,.28);border-radius:14px;background:#effbf8;display:grid;align-content:center}
.delivery-payment-box[hidden]{display:none!important}

.client-access-dialog{width:min(92vw,460px);max-height:90vh;margin:auto;padding:0;border:0;border-radius:22px;background:transparent;color:#10233f;box-shadow:0 26px 80px rgba(4,20,44,.38)}
.client-access-dialog::backdrop{background:rgba(5,18,38,.72);backdrop-filter:blur(5px)}
.client-access-card{position:relative;display:grid;gap:14px;padding:26px;background:#fff;border-radius:22px}
.client-access-card h2,.client-access-card p{margin:0}
.client-access-card label{display:grid;gap:7px;font-weight:850}
.client-access-card input{width:100%;min-height:54px;border:1px solid #c9d3df;border-radius:12px;padding:0 14px;font:inherit;background:#fff;color:#10233f}
.client-access-card input:focus{outline:3px solid rgba(242,138,54,.22);border-color:#f28a36}
.client-access-card small{color:#5c6878;line-height:1.45}
.client-access-close{position:absolute;top:12px;right:14px;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:#eef2f6;color:#10233f;font-size:26px;line-height:1}
.client-access-dialog[open]{animation:clientAccessIn .18s ease-out}
@keyframes clientAccessIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}

.food-layout{grid-template-columns:1fr!important}
.food-submit-toggle{justify-self:start;min-height:48px}
.food-submit-panel[hidden],.food-order-panel[hidden]{display:none!important}
.food-order-panel{display:grid;gap:14px;border-color:rgba(7,146,133,.3);background:linear-gradient(135deg,#effbf8,#fff)}
.food-order-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.food-order-summary span{padding:12px;border-radius:10px;background:#fff;display:grid;gap:4px}
.food-order-summary strong{color:#0b326a}

.event-actions{grid-template-columns:1fr}
.event-actions a{text-align:center}

@media(max-width:560px){
  .premium-paths-priority .premium-path-grid button,
  .premium-paths-priority .premium-path-grid button:last-child{min-height:0;padding:10px 10px 13px;grid-template-rows:auto auto auto}
  .premium-paths-priority .premium-path-visual,
  .premium-paths-priority .premium-path-grid [data-go] .premium-path-visual{width:100%;height:auto;aspect-ratio:4/3;margin:0 0 3px}
  .premium-paths-priority .premium-path-visual img,
  .premium-paths-priority .premium-path-grid [data-go="jobs"] .premium-path-visual img{width:100%;height:100%;padding:0;object-fit:cover;object-position:center}
  .premium-paths-priority .premium-path-grid [data-go="food"] .premium-path-visual img{object-position:center 44%}
  .premium-paths-priority .premium-path-grid [data-go="events"] .premium-path-visual img{object-position:center 30%}
  #view-search .services-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  #view-search .service-card:only-child{grid-template-columns:132px 1fr}
  #view-search .service-card:only-child .service-body{padding:13px;font-size:16px}
  .featured-exception-places{grid-auto-columns:min(82vw,320px)}
  .featured-exception-places .exception-place-card{grid-template-rows:auto 1fr auto;min-height:355px}
  .featured-exception-places .exception-place-visual{aspect-ratio:16/10}
  .delivery-simple-panel{padding:18px 14px}
  .client-access-card{padding:24px 18px 20px}
  .food-order-summary{grid-template-columns:1fr}
}

/* V304 — inscription et classement des lieux d’exception */
.exception-directory-hero {
  overflow: hidden;
  background: linear-gradient(135deg, #111827 0%, #243c32 58%, #8a641f 140%);
  color: #fff;
}
.exception-directory-hero h2 { color: #fff; margin-bottom: .55rem; }
.exception-directory-hero p { max-width: 760px; }
.exception-hero-actions { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin-top: 1rem; }
.exception-submit-panel { max-width: 980px; margin-inline: auto; }
.exception-plan-fieldset { border: 0; padding: 0; margin: .5rem 0 0; }
.exception-plan-fieldset legend { font-weight: 800; margin-bottom: .7rem; }
.exception-plan-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.exception-plan-card { min-height: 132px; padding: .9rem; border: 1px solid #d8ddd9; border-radius: 18px; background: #fff; color: #18211d; text-align: left; display: grid; align-content: start; gap: .35rem; }
.exception-plan-card span { color: #9a5b0b; font-size: 1.05rem; font-weight: 900; }
.exception-plan-card small { color: #68736d; line-height: 1.35; }
.exception-plan-card.selected { border-color: #d8932f; box-shadow: 0 0 0 3px rgba(216,147,47,.16); background: #fff9ed; }
.exception-payment-fields { padding: .9rem; border-radius: 16px; background: #fff8e9; }
.exception-admin-grant { padding: .85rem; border: 1px dashed #d8932f; border-radius: 14px; background: #fffaf0; }
.exception-directory-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.exception-place-card { position: relative; }
.exception-place-card.is-boosted { border-color: rgba(216,147,47,.7); box-shadow: 0 12px 30px rgba(99,67,11,.14); }
.exception-boost-badge { position: absolute; z-index: 2; top: .75rem; left: .75rem; padding: .35rem .65rem; border-radius: 999px; color: #251800; background: #ffd975; font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.exception-directory-list .exception-place-visual { aspect-ratio: 16 / 10; min-height: 0; }
.exception-directory-list .exception-place-visual img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 800px) {
  .exception-plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .exception-directory-list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: .8rem; padding-bottom: .5rem; }
  .exception-directory-list .exception-place-card { flex: 0 0 min(84vw, 340px); scroll-snap-align: start; }
}

@media (max-width: 480px) {
  .exception-plan-grid { grid-template-columns: 1fr; }
}

@media(max-width:340px){
  .premium-paths-priority .premium-path-grid{grid-template-columns:1fr}
  .premium-paths-priority .premium-path-visual{aspect-ratio:16/9}
}
