/* =========================================================================
   reviews.css — avis passagers + espace membre.
   Importé de cruise-ship.info (partie « Reviews system » et « member center »
   de son site.css), inchangé : c'est le design qu'on veut reproduire.
   Chargé après theme.css et site.css.
   ========================================================================= */
/* ===== /reviews landing ================================================== */
.reviews-hero{background:var(--black);color:#fff;}
.reviews-hero h1{color:#fff;font-size:clamp(2.1rem,5vw,3.4rem);}

.review-engine{display:flex;align-items:stretch;background:#fff;border-radius:14px;padding:.4rem;max-width:760px;box-shadow:0 20px 50px -20px rgba(0,0,0,.6);}
.review-engine .re-field{flex:1;text-align:left;padding:.5rem .9rem;min-width:0;}
.review-engine .re-field label{display:block;font-family:var(--font-head);font-weight:700;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.review-engine .re-field select{border:0;outline:0;width:100%;font-family:var(--font-head);font-weight:700;font-size:1rem;color:var(--ink);background:#fff;padding:.15rem 0;cursor:pointer;}
.review-engine .re-sep{width:1px;background:var(--line);margin:.4rem 0;}
.review-engine .re-go{border-radius:10px;padding:.6rem 1.3rem;white-space:nowrap;align-self:center;}
.re-search{margin-top:.25rem;width:100%;max-width:760px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;border-radius:10px;padding:.6rem 1rem;}
.re-search::placeholder{color:rgba(255,255,255,.6);}
@media(max-width:640px){.review-engine{flex-direction:column;}.review-engine .re-sep{width:auto;height:1px;margin:0 .9rem;}.review-engine .re-go{margin:.5rem;}}

.kpi-row{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-top:-2.5rem;position:relative;z-index:3;}
@media(max-width:992px){.kpi-row{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.kpi-row{grid-template-columns:repeat(2,1fr);}}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem;text-align:center;box-shadow:var(--shadow);}
.kpi__ico{width:36px;height:36px;margin:0 auto .5rem;border-radius:10px;display:grid;place-items:center;background:var(--orange-050);color:var(--orange);}
.kpi--down .kpi__ico{background:#fdecea;color:#e5484d;}
.kpi__val{font-family:var(--font-head);font-weight:800;font-size:1.5rem;line-height:1.1;color:var(--ink);}
.kpi__val small{font-size:.8rem;color:var(--muted);font-weight:700;}
.kpi__val--name{font-size:1rem;}
.kpi__val--name a{color:var(--ink);}
.kpi__val--name a:hover{color:var(--orange);}
.kpi__label{font-size:.74rem;color:var(--muted);margin-top:.15rem;line-height:1.25;}

.latest-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem;height:100%;color:var(--ink);transition:.16s;}
.latest-card:hover{border-color:var(--orange);transform:translateY(-3px);box-shadow:var(--shadow);}
.latest-card__title{font-family:var(--font-head);font-weight:800;font-size:1.05rem;margin:.2rem 0 .4rem;color:var(--ink);}
.latest-card:hover .latest-card__title{color:var(--orange);}
.latest-card__excerpt{color:var(--body);font-size:.92rem;margin-bottom:.8rem;}
.latest-card__foot{display:flex;flex-direction:column;border-top:1px solid var(--line-2);padding-top:.6rem;}

/* expert review */
.expert-review{background:#fff;border:1px solid var(--line);border-top:4px solid var(--orange);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);}
.expert-review__head{display:flex;align-items:center;gap:.9rem;margin-bottom:1rem;}
.expert-review__photo{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:var(--shadow-sm);flex:0 0 auto;}
.expert-review__badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--orange);color:#fff;font-family:var(--font-head);font-weight:800;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;padding:.2rem .55rem;border-radius:5px;}
.expert-review__by{font-size:.9rem;color:var(--body);margin-top:.3rem;}
.expert-review__score{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;margin-left:auto;}
.expert-review__score strong{font-family:var(--font-head);font-size:1.1rem;}
.expert-review__score small{color:var(--muted);}
.expert-review__title{font-family:var(--font-head);font-weight:800;font-size:1.4rem;margin:.2rem 0 .8rem;}
.expert-cats{display:grid;grid-template-columns:1fr 1fr;gap:.25rem 1.5rem;background:var(--bg-soft);border-radius:var(--radius-sm);padding:.9rem 1.1rem;margin-top:1rem;}
@media(max-width:575px){.expert-cats{grid-template-columns:1fr;}}
.pros-card{border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem 1.1rem;height:100%;}
.pros-card__title{font-family:var(--font-head);font-weight:800;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem;}
.pros-card ul{list-style:none;padding:0;margin:0;}
.pros-card li{position:relative;padding-left:1.4rem;margin:.4rem 0;font-size:.92rem;}
.pros-card li::before{position:absolute;left:0;top:.05rem;font-family:"Font Awesome 6 Free";font-weight:900;}
.pros-card--love{background:#fff6f2;border-color:#ffd9c7;}
.pros-card--love .pros-card__title{color:var(--orange);}
.pros-card--love li::before{content:"\f00c";color:var(--orange);}
.pros-card--less{background:#f6f7f9;}
.pros-card--less .pros-card__title{color:var(--muted);}
.pros-card--less li::before{content:"\f068";color:var(--muted);font-size:.7rem;top:.25rem;}
.tips-card{background:var(--navy);color:#fff;border-radius:var(--radius);padding:1.1rem 1.3rem;}
.tips-card__title{font-family:var(--font-head);font-weight:800;color:#fff;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem;}
.tips-card__title i{color:var(--amber);}
.tips-card ul{list-style:none;padding:0;margin:0;}
.tips-card li{position:relative;padding-left:1.5rem;margin:.5rem 0;color:rgba(255,255,255,.9);font-size:.93rem;}
.tips-card li::before{content:"\f0eb";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:0;top:.1rem;color:var(--amber);}
.invite-card{border-style:dashed;border-color:var(--orange);}

/* author box */
.author-box{display:flex;gap:1.1rem;align-items:flex-start;background:var(--bg-soft);border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:var(--radius);padding:1.2rem 1.3rem;}
.author-box__photo{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:3px solid #fff;box-shadow:var(--shadow-sm);}
.author-box__by{font-family:var(--font-head);font-weight:700;color:var(--ink);margin-bottom:.35rem;}
.author-box__bio{font-size:.92rem;color:var(--body);margin-bottom:.5rem;}
.author-box__link{font-family:var(--font-head);font-weight:700;color:var(--orange);}
@media(max-width:520px){.author-box{flex-direction:column;}}

/* activities */
.act-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.act-card__head{background:var(--bg-soft);border-bottom:1px solid var(--line-2);font-family:var(--font-head);font-weight:800;padding:.7rem 1rem;display:flex;align-items:center;gap:.5rem;}
.act-card__head i{color:var(--orange);}
.act-list{list-style:none;padding:.4rem 1rem 1rem;margin:0;}
.act-list li{padding:.5rem 0;border-bottom:1px dashed var(--line-2);}
.act-list li:last-child{border-bottom:0;}
.act-list__name{font-family:var(--font-head);font-weight:600;font-size:.93rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;}
.act-list__note{font-size:.82rem;color:var(--muted);margin-top:.1rem;}
.act-list .pill-paid{padding:.05rem .4rem;}

/* dining */
.dining-table td{border-color:var(--line-2);}
.dining-table tbody tr:hover{background:var(--orange-050);}
.pill-free{display:inline-block;background:#e8f6ee;color:#1a8f3c;font-family:var(--font-head);font-weight:700;font-size:.72rem;padding:.2rem .55rem;border-radius:5px;white-space:nowrap;}
.pill-paid{display:inline-block;background:var(--orange-050);color:var(--orange);font-family:var(--font-head);font-weight:700;font-size:.72rem;padding:.2rem .55rem;border-radius:5px;white-space:nowrap;}
.must-try .specs-card__head{background:var(--orange);}
.must-try .specs-card__head i{color:#fff;}
.mustlist{list-style:none;padding:0;margin:.3rem 0;}
.mustlist li{position:relative;padding-left:1.4rem;margin:.5rem 0;font-size:.9rem;}
.mustlist li::before{content:"\f005";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--orange);position:absolute;left:0;top:.1rem;font-size:.75rem;}

/* cabins */
.cabins-table td{border-color:var(--line-2);vertical-align:middle;}
.cabins-table tbody tr:hover{background:var(--orange-050);}
.cap-pill{display:inline-flex;align-items:center;gap:.35rem;background:var(--orange-050);color:var(--orange);font-family:var(--font-head);font-weight:700;font-size:.78rem;padding:.15rem .5rem;border-radius:6px;white-space:nowrap;}
.cap-pill i{font-size:.7rem;}
@media(max-width:767px){
  .cabins-table thead{display:none;}
  .cabins-table tbody tr{display:block;border:1px solid var(--line);border-radius:10px;margin-bottom:.8rem;padding:.4rem .2rem;}
  .cabins-table tbody tr:hover{background:#fff;}
  .cabins-table td{display:flex;justify-content:space-between;gap:1rem;border:0;padding:.4rem .8rem;text-align:right;}
  .cabins-table td::before{content:attr(data-th);font-family:var(--font-head);font-weight:700;color:var(--muted);text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;}
  .cabins-table td[data-th="Cabin type"]{background:var(--orange-050);border-radius:8px;margin:0 .3rem .3rem;font-size:1rem;}
}
.cabin-cards{display:grid;gap:1rem;}
@media(min-width:576px){.cabin-cards{grid-template-columns:1fr 1fr;}}
.cabin-card{border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;background:#fff;transition:box-shadow .15s,border-color .15s;}
.cabin-card:hover{border-color:var(--orange);box-shadow:0 8px 24px rgba(16,16,20,.06);}
.cabin-card__name{font-family:var(--font-head);font-weight:800;font-size:1.05rem;color:var(--ink);letter-spacing:-.02em;margin:0 0 .5rem;}
.cabin-card__meta{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin-bottom:.7rem;}
.cabin-card__meta span{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-head);font-weight:600;font-size:.78rem;color:var(--body);}
.cabin-card__meta i{color:var(--orange);font-size:.75rem;}
.cabin-card__desc{font-size:.9rem;color:var(--body);margin:0 0 .8rem;}
.cabin-card__features{list-style:none;padding:0;margin:0;display:grid;gap:.35rem;}
.cabin-card__features li{position:relative;font-size:.85rem;color:var(--ink);display:flex;align-items:flex-start;gap:.5rem;}
.cabin-card__features li i{color:#1a8f3c;font-size:.72rem;margin-top:.25rem;flex:0 0 auto;}

/* deck plans */
.guide-intro{border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:12px;padding:1.1rem 1.3rem;background:#fff;}
.guide-intro__badge{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-head);font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--orange);margin-bottom:.5rem;}
.guide-intro .prose p:last-child{margin-bottom:0;}
.decks-table td{border-color:var(--line-2);vertical-align:middle;}
.decks-table tbody tr:hover{background:var(--orange-050);}
.deck-num{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--black);color:#fff;font-family:var(--font-head);font-weight:800;font-size:.9rem;}
.deck-type{display:inline-block;background:var(--orange-050);color:var(--orange);font-family:var(--font-head);font-weight:700;font-size:.72rem;padding:.15rem .5rem;border-radius:5px;}
@media(max-width:767px){
  .decks-table thead{display:none;}
  .decks-table tbody tr{display:block;border:1px solid var(--line);border-radius:10px;margin-bottom:.8rem;padding:.5rem .2rem;}
  .decks-table tbody tr:hover{background:#fff;}
  .decks-table td{display:flex;justify-content:space-between;gap:1rem;border:0;padding:.35rem .8rem;text-align:right;}
  .decks-table td::before{content:attr(data-th);font-family:var(--font-head);font-weight:700;color:var(--muted);text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;}
}
.usage-grid{display:grid;gap:1rem;}
@media(min-width:576px){.usage-grid{grid-template-columns:1fr 1fr;}}
.usage-card{border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;background:#fff;}
.usage-card__head{display:flex;align-items:center;gap:.75rem;margin-bottom:.7rem;}
.usage-card__ico{width:42px;height:42px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center;background:var(--orange-050);color:var(--orange);font-size:1.1rem;}
.usage-card__title{font-family:var(--font-head);font-weight:800;font-size:1rem;color:var(--ink);letter-spacing:-.02em;}
.usage-card__decks{font-family:var(--font-head);font-weight:600;font-size:.78rem;color:var(--muted);}
.usage-card__list{list-style:none;padding:0;margin:0;display:grid;gap:.4rem;}
.usage-card__list li{position:relative;padding-left:1.2rem;font-size:.87rem;color:var(--body);}
.usage-card__list li::before{content:"";position:absolute;left:0;top:.5rem;width:6px;height:6px;border-radius:50%;background:var(--orange);}
.deck-select{border:1.5px solid var(--line);border-radius:9px;font-family:var(--font-head);font-weight:600;max-width:420px;}
.deck-select:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-050);}
.deck-detail{display:none;}
.deck-detail.is-active{display:block;}
.deck-detail__card{border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.3rem;background:#fff;}
.deck-detail__head{display:flex;align-items:center;gap:.85rem;margin-bottom:.8rem;}
.deck-detail__num{width:48px;height:48px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;background:var(--black);color:#fff;font-family:var(--font-head);font-weight:800;font-size:1.2rem;}
.deck-detail__name{font-family:var(--font-head);font-weight:800;font-size:1.1rem;color:var(--ink);letter-spacing:-.02em;margin:0;}
.deck-detail__type{font-family:var(--font-head);font-weight:600;font-size:.8rem;color:var(--orange);}
.deck-detail__body{font-size:.92rem;color:var(--body);margin:0 0 .9rem;}
.deck-detail__highlights{list-style:none;padding:0;margin:0 0 .9rem;display:grid;gap:.4rem;}
@media(min-width:640px){.deck-detail__highlights{grid-template-columns:1fr 1fr;}}
.deck-detail__highlights li{font-size:.87rem;color:var(--ink);display:flex;align-items:flex-start;gap:.5rem;}
.deck-detail__highlights li i{color:var(--orange);font-size:.72rem;margin-top:.25rem;flex:0 0 auto;}
.deck-detail__note{background:var(--orange-050);border-radius:8px;padding:.6rem .8rem;font-size:.85rem;color:var(--ink);display:flex;align-items:flex-start;gap:.5rem;}
.deck-detail__note i{color:var(--orange);margin-top:.15rem;}
.tip-list{list-style:none;padding:0;margin:.2rem 0;display:grid;gap:.45rem;}
.tip-list li{position:relative;padding-left:1.3rem;font-size:.87rem;color:var(--body);}
.tip-list li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--orange);position:absolute;left:0;top:.1rem;font-size:.72rem;}

/* departures table */
.dep-table thead th{font-family:var(--font-head);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);}
.dep-table td{border-color:var(--line-2);}
.dep-table tbody tr:hover{background:var(--orange-050);}

/* typical itineraries */
.itin-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem 1.1rem;height:100%;}
.itin-card__head{font-family:var(--font-head);font-weight:800;color:var(--ink);display:flex;align-items:center;gap:.5rem;}
.itin-card__head i{color:var(--orange);}
.itin-card__head span{margin-left:auto;font-size:.8rem;font-weight:700;color:var(--orange);background:var(--orange-050);padding:.1rem .5rem;border-radius:5px;}
.itin-ports{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem;}
.itin-ports li{font-size:.85rem;background:var(--bg-soft);border:1px solid var(--line-2);border-radius:6px;padding:.2rem .55rem;}
.kpi-row--ship{margin-top:1.5rem;margin-bottom:0;}

/* about page */
.about-photo{width:150px;height:150px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:var(--shadow);}
.about-timeline{list-style:none;padding:0;margin:0;}
.about-timeline li{position:relative;padding:0 0 1.2rem 1.6rem;border-left:2px solid var(--line);}
.about-timeline li::before{content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--orange);}
.about-timeline .yr{font-family:var(--font-head);font-weight:800;color:var(--orange);display:inline-block;min-width:3.4rem;margin-right:.4rem;}

/* ===== Reviews system ===================================================== */
/* rating bubbles */
.bubbles{display:inline-flex;gap:4px;vertical-align:middle;}
.bubble{width:var(--b,16px);height:var(--b,16px);border:1.5px solid var(--orange);border-radius:50%;overflow:hidden;display:inline-block;background:#fff;flex:0 0 auto;}
.bubble-fill{display:block;height:100%;background:var(--orange);width:0;}

/* header sign in */
.nav-signin{background:none;border:0;color:var(--ink);font-family:var(--font-head);font-weight:700;font-size:.98rem;padding:.35rem 0;}
.nav-signin:hover{color:var(--orange);}

/* floating CTA */
.review-cta{position:fixed;right:18px;bottom:18px;z-index:1040;display:inline-flex;align-items:center;gap:.5rem;
  background:var(--orange);color:#fff;font-family:var(--font-head);font-weight:800;padding:.85rem 1.2rem;border-radius:999px;
  box-shadow:0 10px 26px -8px rgba(255,99,0,.7);transition:.16s;}
.review-cta:hover{background:var(--orange-600);color:#fff;transform:translateY(-2px);}
@media(max-width:576px){.review-cta span{display:none;}.review-cta{padding:1rem;border-radius:50%;}}

/* drawers */
.signin-drawer,.filter-drawer{width:100%;max-width:390px;}
.signin-drawer .btn-ghost:disabled{opacity:.7;}

/* line cards */
.line-card{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;color:var(--ink);transition:.16s;height:100%;}
.line-card:hover{border-color:var(--black);transform:translateY(-3px);}
.line-card__mark{width:56px;height:56px;border-radius:12px;display:grid;place-items:center;color:#fff;font-size:1.4rem;flex:0 0 auto;overflow:hidden;}
.line-card__mark--logo{background:#fff;border:1px solid var(--line);}
.line-card__mark--logo img{width:100%;height:100%;object-fit:contain;padding:6px;}
.line-card__name{font-family:var(--font-head);font-weight:800;font-size:1.1rem;margin:0;}
.line-card__cta{color:var(--orange);font-weight:700;font-size:.9rem;}

/* aggregate summary */
.agg-score{font-family:var(--font-head);font-weight:800;font-size:3.4rem;line-height:1;color:var(--ink);}
.border-end-md{border-right:1px solid var(--line-2);}
@media(max-width:767px){.border-end-md{border-right:0;border-bottom:1px solid var(--line-2);padding-bottom:1.25rem;}}
.dist-row{display:grid;grid-template-columns:80px 1fr 28px;align-items:center;gap:.6rem;margin:.35rem 0;font-size:.85rem;}
.dist-bar{height:10px;background:var(--line-2);border-radius:6px;overflow:hidden;}
.dist-bar span{display:block;height:100%;background:var(--orange);}
.dist-n{text-align:right;color:var(--muted);font-weight:600;}
.cat-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.4rem 0;}
.cat-label{font-family:var(--font-head);font-weight:600;font-size:.88rem;}
.cat-row--overall{background:var(--orange-050);border-radius:8px;padding:.6rem .75rem;margin:0 -.25rem;}
.overall-num{font-family:var(--font-head);font-weight:800;color:#fff;font-size:1.35rem;line-height:1;}
.overall-num small{font-size:.8rem;opacity:.7;font-weight:700;}

/* review card */
.reviews-list{display:flex;flex-direction:column;gap:1.25rem;}
.review-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;}
.review-card__title{font-family:var(--font-head);font-weight:800;font-size:1.2rem;margin:.5rem 0 .2rem;}
.review-card__title a{color:var(--ink);}
.review-card__title a:hover{color:var(--orange);}
.review-card__sub{color:var(--muted);font-size:.9rem;margin-bottom:.6rem;}
.review-card__meta{display:flex;flex-wrap:wrap;gap:.35rem 1rem;color:var(--muted);font-size:.82rem;margin-bottom:.5rem;}
.review-card__meta i{color:var(--orange);}
.review-card__body{color:var(--body);margin-bottom:1rem;}
.review-card__more{white-space:nowrap;font-weight:700;color:var(--orange);}
.review-card__ratings{display:grid;grid-template-columns:1fr 1fr;gap:.35rem 1.5rem;padding:1rem;background:var(--bg-soft);border-radius:var(--radius-sm);margin-bottom:1rem;}
@media(max-width:575px){.review-card__ratings{grid-template-columns:1fr;}}
.rc-rating{display:flex;align-items:center;gap:.5rem;font-size:.85rem;}
.review-card__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.review-author{display:flex;align-items:center;gap:.6rem;}
.avatar{width:40px;height:40px;border-radius:50%;background:var(--black);color:#fff;display:grid;place-items:center;font-family:var(--font-head);font-weight:800;flex:0 0 auto;}
.avatar.sm{width:32px;height:32px;font-size:.85rem;}
.review-author .name{font-family:var(--font-head);font-weight:700;font-size:.9rem;}
.review-author .who{font-size:.78rem;color:var(--muted);}
.review-actions{display:flex;gap:.5rem;}
.rev-btn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--line);border-radius:8px;padding:.45rem .8rem;font-size:.85rem;font-weight:600;color:var(--ink);background:#fff;}
a.rev-btn:hover{border-color:var(--orange);color:var(--orange);}

/* single review */
.review-body{font-size:1.05rem;color:var(--body);line-height:1.7;}
.review-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;}
.review-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;}
.comment{display:flex;gap:.7rem;padding:.9rem 0;border-top:1px solid var(--line-2);}
.comment .name{font-family:var(--font-head);font-weight:700;font-size:.9rem;}

/* review form widgets */
.review-form .form-select,.review-form .form-control{border-radius:8px;border:1.5px solid var(--line);}
.review-form .form-select:focus,.review-form .form-control:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-050);}
.bubble-rate{display:inline-flex;gap:6px;}
.bubble-rate .bubble{cursor:pointer;transition:.1s;}
.bubble-rate .bubble.on .bubble-fill{width:100%;}
.bubble-rate .bubble:hover{transform:scale(1.08);}
.pill-choice{display:inline-flex;flex-wrap:wrap;gap:.5rem;}
.pill-choice button{border:2px solid var(--black);background:#fff;color:var(--ink);font-family:var(--font-head);font-weight:700;border-radius:999px;padding:.5rem 1.4rem;transition:.12s;}
.pill-choice button:hover{background:var(--bg-soft);}
.pill-choice button.on{background:var(--black);color:#fff;}
.upload-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  border:2px dashed var(--line);border-radius:var(--radius);padding:2rem;cursor:pointer;transition:.14s;width:100%;}
.upload-drop:hover{border-color:var(--orange);background:var(--orange-050);}
.crit-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;border-top:1px solid var(--line-2);}
.crit-row:first-of-type{border-top:0;}
.crit-label{font-family:var(--font-head);font-weight:600;font-size:.92rem;}

/* auth */
.or-divider{display:flex;align-items:center;text-align:center;color:var(--muted);font-size:.85rem;margin:.25rem 0 1rem;}
.or-divider::before,.or-divider::after{content:"";flex:1;height:1px;background:var(--line);}
.or-divider span{padding:0 .8rem;}
.nav-signin .avatar.sm{width:26px;height:26px;font-size:.75rem;vertical-align:middle;}
.dropdown-menu{border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);font-family:var(--font-head);}
.mt--2{margin-top:-.75rem;}

/* member center (account pages) */
.account-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:2rem;align-items:start;}
/* `minmax(0,1fr)` ET `min-width:0` sur la barre, pas un simple `1fr` : le
   minimum d'une piste `1fr` est le CONTENU, donc sous 820 px la colonne unique
   prenait la largeur naturelle de la barre (456 px mesurés pour 375 de
   fenêtre) et TOUT l'espace membre débordait horizontalement sur téléphone. */
@media(max-width:820px){
  .account-layout{grid-template-columns:minmax(0,1fr);}
  .account-side{min-width:0;}
}
.account-side{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;position:sticky;top:80px;}
.account-side__head{display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center;padding-bottom:1rem;border-bottom:1px solid var(--line-2);margin-bottom:.75rem;}
.avatar.lg{width:72px;height:72px;font-size:1.8rem;}
.account-nav{display:flex;flex-direction:column;}
.account-nav a{display:flex;align-items:center;gap:.7rem;padding:.7rem .6rem;border-radius:8px;color:var(--ink);font-family:var(--font-head);font-weight:600;font-size:.95rem;}
.account-nav a i{width:18px;text-align:center;color:var(--muted);}
.account-nav a:hover{background:var(--bg-soft);color:var(--orange);}
.account-nav a:hover i{color:var(--orange);}
.account-nav a.is-active{background:var(--orange-050);color:var(--orange);}
.account-nav a.is-active i{color:var(--orange);}
.account-signout{margin-top:.75rem;padding-top:1rem!important;border-top:1px solid var(--line-2);color:var(--body)!important;}
.account-main{min-width:0;}
.profile-form{max-width:560px;}
.profile-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line-2);}
.profile-row label{font-family:var(--font-head);font-weight:600;font-size:.92rem;margin:0;}
@media(max-width:560px){.profile-row{grid-template-columns:1fr;gap:.4rem;}}

/* cruiser preferences */
.pref-sum{display:grid;grid-template-columns:200px 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line-2);}
.pref-sum__label{font-family:var(--font-head);font-weight:600;font-size:.92rem;}
.pref-sum__value{color:var(--ink);}
.pref-sum__value.is-empty{color:var(--muted);}
@media(max-width:560px){.pref-sum{grid-template-columns:1fr;gap:.25rem;}}
.pref-field{border:0;padding:0;margin:0 0 1.5rem;}
.pref-field legend{font-family:var(--font-head);font-weight:600;font-size:.95rem;margin-bottom:.6rem;float:none;}
.pref-radio{display:flex;align-items:center;gap:.5rem;margin:.4rem 0;cursor:pointer;font-size:.95rem;}
.pref-radio input{accent-color:var(--orange);width:1.1rem;height:1.1rem;}
.pref-checks{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.25rem;}
@media(max-width:560px){.pref-checks{grid-template-columns:1fr;}}
.pref-check{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.95rem;}
.pref-check input{accent-color:var(--orange);width:1.1rem;height:1.1rem;flex:0 0 auto;}

/* member profiles */
.avatar.xl{width:88px;height:88px;font-size:2.2rem;}
.member-link{color:inherit;text-decoration:none;border-bottom:1px dashed rgba(255,99,0,.5);}
.member-link:hover{color:var(--orange);border-bottom-color:var(--orange);}
.share-row{display:flex;gap:.5rem;}
.share-btn{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:.95rem;}
.share-btn.x{background:#111;}
.share-btn.fb{background:#1877f2;}
.share-btn.wa{background:#25d366;}
.share-btn.em{background:var(--muted);}
.share-btn:hover{color:#fff;opacity:.9;transform:translateY(-1px);}
.pos-rel{position:relative;}
.photo-del button{position:absolute;top:4px;right:4px;width:24px;height:24px;border:0;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:.7rem;}
.photo-del button:hover{background:var(--orange);}

/* empty states */
.empty-state{background:#fff;border:1px dashed var(--line);border-radius:var(--radius);padding:3rem 1.5rem;text-align:center;}
.empty-state__icon{font-size:2.4rem;color:var(--orange);margin-bottom:.75rem;}
.empty-state__text{font-family:var(--font-head);font-weight:700;font-size:1.15rem;color:var(--ink);margin-bottom:1.25rem;}

/* member menu (drawer) */
.member-menu{list-style:none;padding:0;margin:0 0 1.25rem;}
.member-menu li{border-top:1px solid var(--line-2);}
.member-menu li:last-child{border-bottom:1px solid var(--line-2);}
.member-menu a{display:flex;align-items:center;justify-content:space-between;padding:.9rem .2rem;color:var(--ink);font-family:var(--font-head);font-weight:600;}
.member-menu a:hover{color:var(--orange);}
.member-menu a .fa-chevron-right{color:var(--muted);font-size:.8rem;}
.planner-card{position:relative;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;}
.planner-beta{position:absolute;top:.9rem;right:.9rem;background:var(--orange-050);color:var(--orange);font-family:var(--font-head);font-weight:700;font-size:.68rem;padding:.15rem .5rem;border-radius:5px;}

/* filter drawer */
.filter-group{padding:1rem 0;border-bottom:1px solid var(--line-2);}
.filter-title{font-family:var(--font-head);font-weight:700;margin-bottom:.6rem;}
.filter-check{display:block;font-size:.92rem;margin:.35rem 0;cursor:pointer;}
.filter-check input{accent-color:var(--orange);margin-right:.4rem;}

@media(max-width:768px){.hub-nav{top:56px;}}

/* ============================ community (photos, hearts, comments) ============================ */
.avatar.xs{width:24px;height:24px;font-size:.7rem;}

/* heart like button */
.like-btn{display:inline-flex;margin:0;}
.like-btn__btn{display:inline-flex;align-items:center;gap:.35rem;background:#fff;border:1.5px solid var(--line);color:var(--body);border-radius:999px;padding:.28rem .7rem;font-family:var(--font-head);font-weight:700;font-size:.82rem;cursor:pointer;transition:all .12s;}
.like-btn__btn:hover{border-color:#ff5a7a;color:#ff2e59;}
.like-btn.is-liked .like-btn__btn,.like-btn__btn[aria-pressed="true"]{background:#ffeef2;border-color:#ff2e59;color:#ff2e59;}
.like-btn.is-liked .fa-heart{color:#ff2e59;animation:heart-pop .28s ease;}
@keyframes heart-pop{0%{transform:scale(.6);}60%{transform:scale(1.25);}100%{transform:scale(1);}}

.rev-btn--static{cursor:default;opacity:.85;}
.review-reactions .rev-btn{white-space:nowrap;}

/* comment threads */
.comments__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:1rem;}
.comments__title i{color:var(--orange);}
.comments__sort,.media-sort{display:inline-flex;gap:.15rem;flex-wrap:wrap;align-items:center;}
.csort,.msort{font-family:var(--font-head);font-weight:600;font-size:.8rem;color:var(--muted);text-decoration:none;padding:.15rem .55rem;border-radius:999px;}
.csort:hover,.msort:hover{color:var(--orange);}
.csort.is-active,.msort.is-active{background:var(--black);color:#fff;}
/* community section headers + toolbar */
.media-sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem;margin-bottom:1rem;}
.media-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.9rem;border-bottom:1px solid var(--line-2);}
.contribute-card__ico{width:40px;height:40px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center;background:var(--orange-050);color:var(--orange);font-size:1.1rem;}
/* media type filter pills */
.media-types{display:flex;flex-wrap:wrap;gap:.4rem;}
.mtype{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-head);font-weight:700;font-size:.82rem;color:var(--ink);text-decoration:none;border:1.5px solid var(--line);border-radius:999px;padding:.32rem .8rem;}
.mtype:hover{border-color:var(--orange);color:var(--orange);}
.mtype.is-active{background:var(--black);border-color:var(--black);color:#fff;}
.mtype.is-active .mtype__n{color:rgba(255,255,255,.7);}
.mtype__n{color:var(--muted);font-size:.78rem;}
.mtype .fa-youtube{color:#f00;}
.mtype.is-active .fa-youtube{color:#ff5252;}
.media-card.is-hidden{display:none;}
.comments__list{display:flex;flex-direction:column;gap:1.1rem;}
.comment-thread{border-bottom:1px solid var(--line-2);padding-bottom:1.1rem;}
.comment-thread:last-child{border-bottom:0;padding-bottom:0;}
.comment{display:flex;gap:.7rem;align-items:flex-start;}
.comment__main{flex:1 1 auto;min-width:0;}
.comment__head{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.9rem;}
.comment__name{font-family:var(--font-head);font-weight:700;color:var(--ink);}
.comment__name a{color:inherit;text-decoration:none;}
.comment__name a:hover{color:var(--orange);}
.comment__date{color:var(--muted);font-size:.8rem;}
.comment__replybadge{display:inline-flex;align-items:center;gap:.25rem;background:var(--orange-050);color:var(--orange);font-family:var(--font-head);font-weight:700;font-size:.68rem;padding:.05rem .4rem;border-radius:5px;text-transform:uppercase;letter-spacing:.03em;}
.comment__body{margin-top:.2rem;font-size:.92rem;color:var(--body);}
.comment__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem .35rem;margin-top:.45rem;}
.c-act{display:inline-flex;align-items:center;gap:.3rem;background:none;border:0;color:var(--muted);font-family:var(--font-head);font-weight:600;font-size:.78rem;padding:.15rem .45rem;border-radius:6px;cursor:pointer;text-decoration:none;}
.c-act:hover{background:var(--orange-050);color:var(--orange);}
.c-act--danger:hover{background:#fdecec;color:#d33;}
.c-views{display:inline-flex;align-items:center;gap:.3rem;color:var(--muted);font-family:var(--font-head);font-weight:600;font-size:.78rem;padding:.15rem .45rem;}
.js-toggle-replies .fa-rotate-180{transform:rotate(180deg);}
.comment__replies{margin-top:.8rem;margin-left:1.3rem;padding-left:1rem;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:.9rem;}
.comment--reply .avatar.sm{width:26px;height:26px;font-size:.72rem;}
.c-reply-form{margin-top:.6rem;}
.comment-cta{margin-top:1.3rem;display:flex;gap:.7rem;align-items:flex-start;}
.comment-cta .js-comment-form,.comment-cta form{display:flex;gap:.7rem;align-items:flex-start;width:100%;}

/* contribute panel */
.contribute-card{border:1px dashed var(--line);border-radius:14px;padding:1.1rem 1.2rem;background:#fff;}
.contribute-card__head{display:flex;align-items:center;gap:.7rem;margin-bottom:.8rem;}
.contribute-card__gate{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;}
.contribute-tabs{display:inline-flex;gap:.3rem;background:var(--bg,#f5f5f7);padding:.25rem;border-radius:10px;margin-bottom:.8rem;}
.contribute-tab{border:0;background:none;font-family:var(--font-head);font-weight:700;font-size:.82rem;color:var(--muted);padding:.35rem .8rem;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;}
.contribute-tab.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(16,16,20,.08);}
.contribute-tab .fa-youtube{color:#f00;}
.contribute-pane{display:none;}
.contribute-pane.is-active{display:block;}

/* member media grid */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;}
.media-card{position:relative;margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;display:flex;flex-direction:column;}
.media-card__ship{position:absolute;top:8px;left:8px;z-index:2;display:inline-flex;align-items:center;gap:.3rem;max-width:calc(100% - 16px);background:rgba(16,16,20,.72);color:#fff;font-family:var(--font-head);font-weight:700;font-size:.72rem;padding:.2rem .5rem;border-radius:6px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.media-card__ship:hover{background:var(--orange);color:#fff;}
.media-card__ship i{font-size:.68rem;flex:0 0 auto;}
.media-card__thumb{position:relative;border:0;padding:0;cursor:pointer;display:block;background:#000;aspect-ratio:4/3;overflow:hidden;}
.media-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s;}
.media-card__thumb:hover img{transform:scale(1.05);}
.media-card__thumb.is-video img{opacity:.85;}
.media-card__play{position:absolute;inset:0;margin:auto;width:54px;height:54px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;display:grid;place-items:center;font-size:1.2rem;pointer-events:none;}
.media-card__foot{padding:.6rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;}
.media-card__by{display:flex;align-items:center;gap:.4rem;font-family:var(--font-head);font-weight:600;font-size:.8rem;color:var(--ink);min-width:0;}
.media-card__by a{color:inherit;text-decoration:none;}
.media-card__by a:hover{color:var(--orange);}
.media-card__stats{display:flex;align-items:center;gap:.3rem;flex:0 0 auto;}
.stat-btn{display:inline-flex;align-items:center;gap:.3rem;background:none;border:0;color:var(--muted);font-family:var(--font-head);font-weight:700;font-size:.78rem;padding:.2rem .35rem;border-radius:6px;cursor:pointer;}
.stat-btn:hover{background:var(--orange-050);color:var(--orange);}
.stat-btn--static{cursor:default;}
.media-card__stats .like-btn__btn{padding:.2rem .5rem;font-size:.78rem;border-radius:8px;}

/* media modal */
.media-modal .modal-header{align-items:center;}
.media-stage{background:#000;border-radius:10px;overflow:hidden;}
.media-stage__img{width:100%;max-height:65vh;object-fit:contain;display:block;background:#000;}
.media-stage__video{position:relative;width:100%;aspect-ratio:16/9;}
.media-stage__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.media-caption{font-size:.95rem;color:var(--ink);}
.media-actions{display:flex;align-items:center;gap:.6rem;margin-top:.5rem;}
@media(max-width:575px){.media-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));}}

/* ============================ home: community band + latest rows ============================ */
.value-band{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1.5rem;}
@media(max-width:900px){.feat-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.feat-grid{grid-template-columns:1fr;}}
.feat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.3rem;}
.feat-card__ico{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--orange-050);color:var(--orange);font-size:1.15rem;margin-bottom:.7rem;}
.feat-card__title{font-family:var(--font-head);font-weight:800;font-size:1.05rem;color:var(--ink);margin:0 0 .35rem;letter-spacing:-.02em;}
.feat-card__text{font-size:.9rem;color:var(--body);margin:0;}
.value-cta{margin-top:1.5rem;background:var(--black);color:#fff;border-radius:16px;padding:1.4rem 1.6rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;}
.value-cta__title{font-family:var(--font-head);font-weight:800;font-size:1.2rem;letter-spacing:-.02em;}
.value-cta__sub{color:rgba(255,255,255,.7);font-size:.92rem;}
.value-cta .btn-ghost{background:transparent;border-color:rgba(255,255,255,.4);color:#fff;}
.value-cta .btn-ghost:hover{background:#fff;color:var(--black);border-color:#fff;}

/* home community media tiles */
.home-media{display:block;text-decoration:none;color:var(--ink);}
.home-media__thumb{position:relative;display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#000;}
.home-media__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .25s;}
.home-media:hover .home-media__thumb img{transform:scale(1.05);}
.home-media__foot{display:flex;align-items:center;gap:.45rem;padding:.5rem .1rem 0;min-width:0;}
.home-media__by{font-size:.82rem;color:var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ============================ newsletter capture band ============================ */
.newsletter{background:var(--ink);border-top:3px solid var(--orange);color:#fff;padding:2.6rem 0;}
.newsletter__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;}
.newsletter__copy{flex:1 1 340px;min-width:0;}
.newsletter__eyebrow{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-head);font-weight:800;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin-bottom:.4rem;}
.newsletter__title{color:#fff;font-size:clamp(1.3rem,2.4vw,1.7rem);margin:0 0 .35rem;letter-spacing:-.02em;}
.newsletter__sub{color:rgba(255,255,255,.66);font-size:.92rem;margin:0;max-width:52ch;}
.newsletter__form{flex:1 1 360px;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;}
.newsletter__field{flex:1 1 220px;display:flex;align-items:center;gap:.5rem;background:#fff;border-radius:10px;padding:0 .9rem;}
.newsletter__field i{color:var(--muted);}
.newsletter__field input{flex:1;border:0;outline:0;background:transparent;padding:.75rem 0;font-size:.95rem;color:var(--ink);min-width:0;}
.newsletter__form .btn{padding:.78rem 1.6rem;}
.newsletter__msg{flex-basis:100%;font-family:var(--font-head);font-weight:600;font-size:.88rem;}
.newsletter__msg.is-ok{color:#5bd08a;}
.newsletter__msg.is-err{color:#ff9c8a;}
@media(max-width:640px){.newsletter__form .btn{width:100%;}}
