/* Shared editorial treatment; each brand keeps its own accent and identity. */
.public-shell {
  --glow: 145, 99, 51;
  --surface: #171410;
  --ink-soft: #cec5b7;
  background: radial-gradient(ellipse at 8% 3%, rgba(var(--glow), .19), transparent 42rem), #0c0b0a;
  color: #f7f2e9;
}
html[data-brand="elite"] .public-shell {
  --glow: 76, 116, 153;
  --surface: #0e1822;
  --ink-soft: #c0cedb;
  background: radial-gradient(ellipse at 90% 2%, rgba(var(--glow), .24), transparent 46rem), #060c12;
}
.public-shell main { max-width: 1240px; }
.public-shell .mobile-header {
  max-width: 1240px;
  padding: 25px 28px;
  border-bottom-color: rgba(var(--glow), .34);
}
.public-shell .primary-nav > a { text-decoration: none; font-size: 14px; letter-spacing: .025em; }
.public-shell .member-menu > summary { border-radius: 999px; padding: 7px 20px; }
.public-shell .local-note { color: #b6b0a6; font-size: 10px; letter-spacing: .13em; padding: 16px 0; }
.public-shell h1, .public-shell h2 { text-wrap: balance; }
.public-shell .eyebrow { letter-spacing: .23em; font-size: 11px; color: var(--accent) !important; }
.public-shell .emblem { border-color: var(--accent); color: var(--accent); }
.public-shell .muted { color: var(--ink-soft); }
.public-shell .panel, .public-shell .card {
  background: linear-gradient(145deg, rgba(var(--glow), .06), transparent 70%), var(--surface);
  border-color: var(--panel-border);
  box-shadow: 0 16px 48px #0002;
}
.public-shell .button, .public-shell button { border-radius: 999px; padding: 13px 23px; }
.public-shell .button.secondary { border-color: rgba(var(--glow), .6); }
.public-shell input:not([type="checkbox"]):not([type="radio"]),
.public-shell textarea, .public-shell select {
  background: #090a0db3;
  border-color: rgba(var(--glow), .5);
  border-radius: 12px;
}
.public-shell .home-hero {
  position: relative;
  isolation: isolate;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .85fr);
  gap: clamp(28px, 5vw, 78px);
  padding: 34px 0 66px;
  margin: 0 0 34px;
  border-bottom: 1px solid var(--panel-border);
}
.public-shell .home-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: min(58vw, 690px);
  aspect-ratio: 1;
  top: -14px;
  left: -7%;
  border: 1px solid rgba(var(--glow), .22);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(var(--glow), .035), 0 0 0 116px rgba(var(--glow), .025);
  pointer-events: none;
}
.public-shell .home-hero .hero { max-width: 680px; padding: 35px 0; }
.public-shell .home-hero .hero > .eyebrow { margin-bottom: 27px; }
.public-shell .home-hero h1 { font-size: clamp(44px, 5.5vw, 76px); line-height: 1.07; letter-spacing: -.035em; }
.public-shell .home-hero .hero > p:not(.eyebrow):not(.hero-signature) { max-width: 49ch; font-size: 17px; line-height: 1.8; color: var(--ink-soft); }
.public-shell .hero-signature { font: italic 19px/1.6 Playfair, Georgia, serif; color: var(--accent); margin: 30px 0 0; }
.public-shell .home-actions { gap: 17px 24px; margin-top: 27px; }
.public-shell .home-actions > .button { min-height: 56px; }
.public-shell .home-text-link { font-size: 14px; }
.public-shell .home-search {
  padding: 30px;
  border-radius: 24px;
  border-top-color: var(--accent);
  background: linear-gradient(155deg, rgba(var(--glow), .13), transparent 70%), var(--surface);
  box-shadow: 0 24px 70px #0005;
}
.public-shell .home-search h2 { font-size: 32px; margin-bottom: 24px; }
.public-shell .home-search label { margin-top: 16px; }
.public-shell .home-search select { width: 100%; }
.public-shell .home-search .advanced-filters { background: #0001; border-radius: 14px; }
.public-shell .section-heading { margin: 34px 0 10px; align-items: baseline; }
.public-shell .section-heading h2 { font-size: clamp(30px, 3.5vw, 42px); margin: 0; }
.public-shell .cards { gap: 25px; }
.public-shell .cards > .card { padding: 22px; overflow: hidden; border-radius: 22px; }
.public-shell .cards > .card > .card-photo {
  width: calc(100% + 44px);
  max-width: none;
  margin: -22px -22px 22px;
  border-radius: 0;
  aspect-ratio: 4 / 5;
  height: auto;
  max-height: 420px;
  object-fit: cover;
}
.public-shell .cards > .card h2, .public-shell .cards > .card h3 { font: 30px/1.2 Playfair, Georgia, serif; }
.public-shell .cards > .card > p { font-size: 14px; color: var(--ink-soft); }
.public-shell .cards > .card > .button { width: 100%; }
.public-shell .home-choice { padding: 34px; margin: 20px 0 48px; }
.public-shell .home-choice h2 { font-size: 36px; }
.public-shell .journey-steps > li { padding: 24px; border: 1px solid var(--panel-border); border-radius: 20px; background: var(--surface); }
.public-shell .journey-steps > li::before { font: italic 32px Playfair, Georgia, serif; }
.public-shell .narrow:not(.profile-sheet) { max-width: 680px; }
.public-shell .profile-sheet { max-width: 1060px; margin-top: 30px; }
.public-shell .profile-heading { padding: 22px 0 18px; margin-bottom: 24px; }
.public-shell .profile-heading h1 { font-size: clamp(40px, 5.5vw, 64px); margin: 12px 0; }
.public-shell .profile-location { color: var(--ink-soft); font-size: 15px; }
.public-shell .profile-layout.has-portrait { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); gap: 34px; align-items: start; }
.public-shell .profile-portrait .profile-photo {
  margin: 0;
  max-height: 680px;
  border: 1px solid var(--panel-border);
  border-radius: 22px;
  background: var(--surface);
}
.public-shell .profile-story > .panel { margin: 0 0 22px; padding: 30px; }
.public-shell .profile-story h2 { margin-top: 0; font-size: 30px; }
.public-shell .profile-story .profile-bio { line-height: 1.85; color: var(--ink-soft); }
.public-shell .profile-gallery { padding-top: 12px; }
.public-shell .profile-gallery h2 { font-size: 34px; }
.public-shell .profile-gallery .gallery-grid { gap: 24px; }
.public-shell .profile-gallery img { border-radius: 20px; border: 1px solid var(--panel-border); }
.public-shell .profile-setup, .public-shell .owner-profile-space { margin-top: 28px; }
.public-shell .profile-field-note { padding: 18px 20px; border-left: 2px solid var(--accent); background: rgba(var(--glow), .07); border-radius: 0 12px 12px 0; font-size: 14px; color: var(--ink-soft); }
.public-shell #ma-fiche { padding: 25px; border: 1px solid var(--panel-border); background: var(--surface); border-radius: 20px; }
.public-shell .setup-steps > a, .public-shell .setup-pending { border-color: var(--panel-border); border-radius: 15px; padding: 15px 12px; }
.public-shell .setup-steps [aria-current="step"] { background: rgba(var(--glow), .16); border-color: var(--accent); color: var(--accent); }
.public-shell .review-message { border-color: var(--panel-border); }
.public-shell footer { max-width: 1240px; padding-top: 35px; margin-top: 20px; border-color: var(--panel-border); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .public-shell .card, .public-shell .button { transition: transform .18s ease, box-shadow .18s ease; }
  .public-shell .card:hover { transform: translateY(-3px); box-shadow: 0 24px 56px #0005; }
  .public-shell .button:hover { transform: translateY(-1px); }
}
@media (max-width: 850px) {
  .public-shell .home-hero { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 12px; }
  .public-shell .home-hero::before { width: 86%; top: 35px; left: 5%; }
  .public-shell .home-hero .hero { padding: 26px 0 10px; }
  .public-shell .home-hero h1 { max-width: 17ch; font-size: clamp(42px, 7.5vw, 64px); }
  .public-shell .home-search { max-width: 100%; width: 100%; }
  .public-shell .profile-layout.has-portrait { gap: 24px; }
  .public-shell .profile-story > .panel { padding: 22px; }
}
@media (max-width: 600px) {
  .public-shell .mobile-header { padding: 15px 18px; }
  .public-shell .home-hero { margin-bottom: 26px; padding-bottom: 34px; }
  .public-shell .home-hero .hero > .eyebrow { margin-bottom: 19px; }
  .public-shell .home-hero .hero > p:not(.eyebrow):not(.hero-signature) { font-size: 16px; }
  .public-shell .home-search, .public-shell .home-choice { padding: 22px; }
  .public-shell .home-choice h2 { font-size: 30px; }
  .public-shell .profile-layout.has-portrait { grid-template-columns: minmax(0, 1fr); }
  .public-shell .profile-story > .panel { padding: 24px; }
  .public-shell .profile-heading { padding-top: 15px; }
  .public-shell #ma-fiche { padding: 19px; }
  .public-shell .section-heading { align-items: flex-start; }
}

/* Public catalogue/detail14: density on desktop, no change to member editors or mobile targets. */
@media(min-width:961px){
  .public-shell .catalogue-page{padding-top:4px}
  .public-shell .catalogue-page>h1{font-size:clamp(36px,3vw,42px);line-height:1.15;margin:8px 0 12px}
  .public-shell .catalogue-page>p{margin:8px 0 14px;font-size:14px}
  .public-shell .catalogue-page .search-form{max-width:1120px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(180px,1fr);gap:12px 16px;align-items:end;margin:16px 0;padding:16px;border-radius:16px}
  .public-shell .catalogue-page .search-form>label:first-of-type{grid-column:1;grid-row:1}
  .public-shell .catalogue-page .search-form>label:not(:first-of-type):not(.search-order){grid-column:2;grid-row:1}
  .public-shell .catalogue-page .search-form>.search-order{grid-column:1;grid-row:3;margin:0}
  .public-shell .catalogue-page--fixed-city .search-form>label:first-of-type{grid-column:1/-1}
  .public-shell .catalogue-page .search-form>label{font-size:13px;line-height:1.4;margin:0}
  .public-shell .catalogue-page .search-form>label>input,.public-shell .catalogue-page .search-form>label>select{height:44px;min-height:44px;margin-top:6px;padding:8px 11px;font-size:15px}
  .public-shell .catalogue-page .search-form>.advanced-filters{grid-column:1/-1;grid-row:2;padding:5px 12px;margin:0}
  .public-shell .catalogue-page .advanced-filters>summary{min-height:44px;padding:10px 0;font-size:14px}
  .public-shell .catalogue-page .advanced-filters>.filter-grid{margin:8px 0}
  .public-shell .catalogue-page .advanced-filters .criteria-group{display:inline-block;vertical-align:top;width:calc(50% - 8px);margin:8px 3px}
  .public-shell .catalogue-page .search-form>.search-actions{grid-column:2;grid-row:3;margin:0;gap:10px 16px;justify-content:flex-end}
  .public-shell .catalogue-page .search-actions>.primary{min-height:44px;padding:9px 18px}
  .public-shell .catalogue-page .search-summary{margin:16px 0}
  .public-shell .catalogue-page .results-count{font-size:15px}
  .public-shell .catalogue-page .filter-chips{margin:10px 0;gap:6px}
  .public-shell .catalogue-page .geo-editorial{padding:18px;margin:16px 0}
  .public-shell .catalogue-page .geo-editorial h2{font-size:24px;margin:0 0 10px}
  .public-shell .catalogue-page .discovery-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
  .public-shell .catalogue-page .discovery-cards>.card{display:flex;flex-direction:column;padding:16px;border-radius:16px}
  .public-shell .catalogue-page .discovery-cards>.card>.card-photo{width:calc(100% + 32px);height:220px;max-height:220px;aspect-ratio:auto;margin:-16px -16px 14px;object-fit:contain;object-position:center;background:var(--surface)}
  .public-shell .catalogue-page .discovery-cards>.card>.profile-placeholder{height:220px;aspect-ratio:auto;margin-bottom:14px}
  .public-shell .catalogue-page .discovery-cards>.card>h2{font-size:24px;line-height:1.2;margin:0 0 8px}
  .public-shell .catalogue-page .discovery-cards>.card>p{font-size:14px;line-height:1.5;margin:6px 0 12px}
  .public-shell .catalogue-page .discovery-cards .status-tag{padding:7px 10px;font-size:13px}
  .public-shell .catalogue-page .discovery-cards>.card>.button{width:100%;min-height:44px;margin-top:auto;padding:9px 14px;font-size:14px}
  .public-shell .catalogue-page .favorite-action{margin:10px 0 0}
  .public-shell .catalogue-page .favorite-action button{width:100%;min-height:44px;padding:9px 12px;font-size:13px}
  .public-shell .catalogue-page .card-login{margin:10px 0 0!important;font-size:13px!important}
  .public-shell .catalogue-page .card-login a{display:inline-flex;align-items:center;min-height:44px}
  .public-shell .catalogue-page .pagination{margin:18px 0}
  .public-shell .profile-sheet{max-width:1000px;margin:20px auto 0}
  .public-shell .profile-sheet .profile-heading{padding:12px 0;margin-bottom:18px;gap:18px}
  .public-shell .profile-sheet .profile-heading h1{font-size:42px;line-height:1.15;margin:8px 0 12px}
  .public-shell .profile-sheet .profile-location{font-size:14px;margin:8px 0}
  .public-shell .profile-sheet .profile-layout.has-portrait{grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:24px;align-items:start}
  .public-shell .profile-sheet .profile-portrait .profile-photo{width:100%;height:320px;max-height:320px;margin:0;object-fit:contain;object-position:center;border-radius:16px}
  .public-shell .profile-sheet .profile-portrait>.profile-placeholder{height:320px;aspect-ratio:auto;border-radius:16px}
  .public-shell .profile-sheet .profile-story>.panel{padding:20px;margin:0 0 16px}
  .public-shell .profile-sheet .profile-story h2{font-size:24px;margin:0 0 12px}
  .public-shell .profile-sheet .profile-story .profile-bio{font-size:15px;line-height:1.65;margin:8px 0}
  .public-shell .profile-sheet .profile-story>.profile-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
  .public-shell .profile-sheet .profile-details h2{grid-column:1/-1;margin-bottom:4px}
  .public-shell .profile-sheet .profile-details p{min-width:0;margin:0;font-size:14px;line-height:1.55;overflow-wrap:break-word}
  .public-shell .profile-sheet .profile-gallery{padding-top:0;margin:18px 0}
  .public-shell .profile-sheet .profile-gallery h2{font-size:26px;margin:0 0 12px}
  .public-shell .profile-sheet .profile-gallery .gallery-grid{grid-template-columns:repeat(auto-fit,minmax(180px,220px));gap:16px;justify-content:start}
  .public-shell .profile-sheet .profile-gallery img{height:200px;max-height:200px;aspect-ratio:auto;margin:0;object-fit:contain;object-position:center;border-radius:14px}
  .public-shell .profile-sheet .profile-actions{margin-top:18px}
}
@media(min-width:1280px){.public-shell .catalogue-page .discovery-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Details keep their reading order and comfortable spacing in the mobile preview/public sheet. */
@media(max-width:960px){.public-shell .profile-sheet .profile-story>.profile-details{padding:24px;margin:24px 0}}
