/* =====================================================================
 * Surf Community Morocco
 * ===================================================================== */
.post-type-archive-scv_post .inner-main, .single-scv_post .inner-main{ padding-top:0; }

/* ---------- Hero ---------- */
.cm-hero{ position:relative; overflow:hidden; color:#EAF7F4; padding:calc(96px + env(safe-area-inset-top,0px)) 0 0;
  background:radial-gradient(120% 90% at 85% -10%, #2CA698 0%, transparent 55%), radial-gradient(90% 80% at -10% 20%, #1F7E73 0%, transparent 60%), linear-gradient(180deg,#0B2E2B 0%,#0F3E39 55%,#12514A 100%); }
.cm-hero::before{ content:""; position:absolute; inset:0; background-image:var(--zellige-dark); opacity:.35; pointer-events:none; }
.cm-hero::after{ content:""; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E"); pointer-events:none; mix-blend-mode:overlay; }
.cm-hero-in{ position:relative; z-index:2; padding-bottom:clamp(2rem,4vw,3rem); }
.cm-hero .crumbs ol{ color:rgba(234,247,244,.6); }
.cm-hero .crumbs a{ color:rgba(234,247,244,.8); }
.cm-eyebrow{ display:inline-flex; align-items:center; gap:.55rem; font-family:'Cairo',sans-serif; font-weight:700; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:#9FE3D8; margin:0; padding:.45rem .9rem; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); backdrop-filter:blur(6px); }
.cm-live-dot{ width:8px; height:8px; border-radius:50%; background:#3BE38C; box-shadow:0 0 0 0 rgba(59,227,140,.6); animation:cmPulse 2s infinite; flex:none; display:inline-block; }
@keyframes cmPulse{ 0%{ box-shadow:0 0 0 0 rgba(59,227,140,.55); } 70%{ box-shadow:0 0 0 10px rgba(59,227,140,0); } 100%{ box-shadow:0 0 0 0 rgba(59,227,140,0); } }
.cm-hero h1{ font-size:clamp(2.4rem,6vw,4.4rem); line-height:1.02; letter-spacing:-.02em; color:#FFF8EF; margin-top:1rem; max-width:17ch; }
.cm-hero h1 em{ font-style:italic; font-weight:440; background:linear-gradient(90deg,#9FE3D8,#F6DCC0); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cm-lede{ max-width:56ch; color:#BFE3DC; font-size:1.1rem; margin:1rem 0 0; }
.cm-hero-row{ display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem 2rem; margin-top:1.8rem; }
.cm-stats{ display:flex; gap:.6rem; }
.cm-stats div{ padding:.7rem 1rem; border-radius:16px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); backdrop-filter:blur(8px); min-width:88px; }
.cm-stats b{ display:block; font-family:'Fraunces',serif; font-size:1.7rem; font-weight:560; color:#FFF8EF; font-variant-numeric:tabular-nums; line-height:1; }
.cm-stats span{ font-family:'Cairo',sans-serif; font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#8FCFC4; }
.cm-faces{ display:flex; }
.cm-faces .cm-av{ margin-left:-10px; box-shadow:0 0 0 3px #0F3E39; }
.cm-faces .cm-av:first-child{ margin-left:0; }
.cm-hero-cta{ display:flex; gap:.6rem; flex-wrap:wrap; margin-left:auto; }
.cm-glow{ position:relative; box-shadow:0 10px 30px -8px rgba(44,166,152,.8); }
.cm-glow::after{ content:""; position:absolute; inset:-3px; border-radius:inherit; background:conic-gradient(from var(--a,0deg), transparent 0 70%, rgba(255,255,255,.7) 80%, transparent 90%); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; padding:2px; animation:cmSpin 3.5s linear infinite; pointer-events:none; }
@property --a{ syntax:'<angle>'; inherits:false; initial-value:0deg; }
@keyframes cmSpin{ to{ --a:360deg; } }
.cm-hero .btn-ghost{ color:#FFF8EF; border-color:rgba(255,255,255,.35); }

.cm-hero-sea{ position:absolute; left:0; right:0; bottom:44px; height:120px; z-index:1; pointer-events:none; }
.cm-wave{ position:absolute; left:0; bottom:0; width:200%; height:100%; }
.cm-wave path{ fill:rgba(159,227,216,.08); }
.cm-wave.w1{ animation:cmSea 18s linear infinite; }
.cm-wave.w2{ animation:cmSea 12s linear infinite reverse; bottom:-10px; }
.cm-wave.w2 path{ fill:rgba(159,227,216,.06); }
.cm-wave.w3{ animation:cmSea 8s linear infinite; bottom:-22px; }
.cm-wave.w3 path{ fill:var(--bg); }
@keyframes cmSea{ to{ transform:translateX(-50%); } }

.cm-ticker{ position:relative; z-index:2; background:var(--bg); padding:.9rem 0 .2rem; overflow:hidden; }
.cm-ticker-track{ -webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.cm-ticker-track{ display:flex; gap:.6rem; width:max-content; animation:cmTick 40s linear infinite; }
.cm-ticker:hover .cm-ticker-track, .cm-ticker:focus-within .cm-ticker-track{ animation-play-state:paused; }
@keyframes cmTick{ to{ transform:translateX(-50%); } }
.cm-idea{ flex:none; border:1px solid var(--line-soft); background:var(--surface); color:var(--ink); border-radius:999px; padding:.55rem 1rem; font:600 .9rem 'Karla',sans-serif; cursor:pointer; box-shadow:0 8px 20px -16px rgba(var(--shadow)/.5); transition:transform .2s, border-color .2s, box-shadow .2s; }
.cm-idea:hover{ transform:translateY(-2px); border-color:var(--terracotta); box-shadow:0 14px 26px -16px rgba(var(--shadow)/.6); }

/* ---------- Layout ---------- */
.cm-layout{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:clamp(1.5rem,3vw,2.5rem); padding-top:clamp(1.4rem,3vw,2rem); padding-bottom:clamp(3rem,6vw,5rem); align-items:start; }
.cm-main{ min-width:0; max-width:720px; }
@media (max-width:1020px){ .cm-layout{ grid-template-columns:1fr; } .cm-main{ max-width:none; } }

/* ---------- Avatars ---------- */
.cm-av{ --h:180; flex:none; display:inline-grid; place-items:center; border-radius:50%; color:#fff; font-family:'Cairo',sans-serif; font-weight:800; letter-spacing:.02em;
  background:linear-gradient(135deg, hsl(var(--h) 55% 48%), hsl(calc(var(--h) + 40) 60% 38%)); text-shadow:0 1px 2px rgba(0,0,0,.25); }
.cm-av-md{ width:44px; height:44px; font-size:.95rem; }
.cm-av-sm{ width:34px; height:34px; font-size:.78rem; }

/* ---------- Composer ---------- */
.cm-compose{ background:var(--surface); border:1px solid var(--line-soft); border-radius:24px; padding:1rem 1.1rem; box-shadow:0 26px 50px -36px rgba(var(--shadow)/.6); transition:box-shadow .3s, border-color .3s; scroll-margin-top:100px; }
.cm-compose.open, .cm-compose:focus-within{ border-color:rgba(44,166,152,.5); box-shadow:0 30px 60px -36px rgba(var(--shadow)/.7), 0 0 0 5px var(--terracotta-tint); }
.cm-compose-top{ display:flex; gap:.8rem; align-items:flex-start; }
.cm-compose textarea{ flex:1; border:0; background:transparent; resize:none; font:1.08rem/1.5 'Karla',sans-serif; color:var(--ink); padding:.55rem 0; min-height:44px; outline:none; }
.cm-compose-body{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1); }
.cm-compose-body > *{ min-height:0; overflow:hidden; }
.cm-compose-body{ overflow:hidden; }
.cm-compose.open .cm-compose-body{ grid-template-rows:1fr; }
.cm-compose-body > .cm-inner{ overflow:hidden; }
.cm-types{ position:relative; display:flex; gap:.25rem; padding:.3rem; margin-top:.8rem; border-radius:999px; background:var(--bg); overflow-x:auto; scrollbar-width:none; }
.cm-types::-webkit-scrollbar{ display:none; }
.cm-types-ind{ position:absolute; top:.3rem; bottom:.3rem; left:0; width:0; border-radius:999px; background:var(--tc,#2CA698); box-shadow:0 8px 18px -8px var(--tc,#2CA698); transition:transform .4s cubic-bezier(.2,.8,.2,1), width .4s cubic-bezier(.2,.8,.2,1), background .3s; }
.cm-type-opt{ position:relative; z-index:1; flex:none; cursor:pointer; }
.cm-type-opt input{ position:absolute; opacity:0; inset:0; cursor:pointer; }
.cm-type-opt > span{ display:inline-flex; align-items:center; gap:.35rem; padding:.55rem .95rem; border-radius:999px; font:700 .84rem 'Cairo',sans-serif; color:var(--ink-soft); transition:color .3s; white-space:nowrap; }
.cm-type-opt input:checked + span{ color:#fff; }
.cm-type-opt input:focus-visible + span{ outline:3px solid var(--turquoise); outline-offset:2px; }
.cm-type-hint{ margin:.55rem 0 0 .3rem; font-size:.88rem; color:var(--ink-faint); min-height:1.3em; }
.cm-fields{ display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem .8rem; margin-top:.9rem; }
.cm-f{ display:flex; flex-direction:column; gap:.3rem; min-width:0; }
.cm-f[hidden]{ display:none; }
.cm-f label, .cm-lab{ font:700 .74rem 'Cairo',sans-serif; color:var(--ink-soft); letter-spacing:.02em; }
.cm-f input, .cm-f select{ font:inherit; font-size:.95rem; color:var(--ink); background:var(--bg); border:1.5px solid var(--line); border-radius:12px; padding:.62rem .75rem; width:100%; box-sizing:border-box; transition:border-color .2s, box-shadow .2s; }
.cm-f input:focus, .cm-f select:focus{ outline:none; border-color:var(--terracotta); box-shadow:0 0 0 3px var(--terracotta-tint); }
.cm-rate{ display:flex; gap:.15rem; }
.cm-rate label{ cursor:pointer; position:relative; }
.cm-rate input{ position:absolute; opacity:0; inset:0; cursor:pointer; }
.cm-rate span[aria-hidden]{ font-size:1.7rem; line-height:1; color:var(--line); transition:color .15s, transform .2s cubic-bezier(.3,1.6,.5,1); display:inline-block; }
.cm-rate:hover span[aria-hidden]{ color:#E7B24A; }
.cm-rate label:hover ~ label span[aria-hidden]{ color:var(--line); }
.cm-rate.has label.on span[aria-hidden]{ color:#E7B24A; }
.cm-rate label:active span[aria-hidden]{ transform:scale(1.35); }
.cm-rate input:focus-visible + span{ outline:2px solid var(--turquoise); border-radius:4px; }
@media (max-width:640px){ .cm-fields{ grid-template-columns:1fr 1fr; } }

.cm-drop{ position:relative; margin-top:.9rem; }
.cm-drop input[type=file]{ position:absolute; opacity:0; width:1px; height:1px; }
.cm-drop-lab{ display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; padding:.95rem 1rem; border:1.5px dashed var(--line); border-radius:16px; cursor:pointer; color:var(--ink-soft); font-size:.9rem; transition:border-color .2s, background .2s; }
.cm-drop-lab b{ color:var(--ink); }
.cm-drop-lab span:last-child{ color:var(--ink-faint); font-size:.8rem; }
.cm-drop.over .cm-drop-lab, .cm-drop-lab:hover{ border-color:var(--terracotta); background:var(--terracotta-tint); }
.cm-drop input:focus-visible + .cm-drop-lab{ outline:3px solid var(--turquoise); outline-offset:2px; }
.cm-preview{ position:relative; margin-top:.6rem; border-radius:16px; overflow:hidden; max-height:320px; animation:cmPop .35s cubic-bezier(.2,.8,.2,1); }
.cm-preview[hidden]{ display:none; }
.cm-preview img{ width:100%; max-height:320px; object-fit:cover; display:block; }
.cm-preview-x{ position:absolute; top:.6rem; right:.6rem; width:34px; height:34px; border-radius:50%; border:0; background:rgba(0,0,0,.6); color:#fff; cursor:pointer; backdrop-filter:blur(4px); }
.cm-compose-foot{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; flex-wrap:wrap; }
.cm-note{ margin:0; font-size:.82rem; color:var(--ink-faint); }
#cmSubmit{ gap:.5rem; }
#cmSubmit.loading{ pointer-events:none; opacity:.8; }
#cmSubmit.loading svg{ animation:cmFly .8s ease-in-out infinite alternate; }
@keyframes cmFly{ to{ transform:translate(4px,-4px); } }

.cm-join-card{ display:grid; grid-template-columns:auto 1fr; gap:.4rem 1rem; align-items:center; padding:1.3rem 1.4rem; border-radius:24px; color:#EAF7F4; scroll-margin-top:100px;
  background-color:#136155; background-image:var(--zellige-dark), linear-gradient(135deg,#136155,#2CA698); box-shadow:0 30px 60px -36px rgba(19,97,85,.8); }
.cm-join-ico{ font-size:2.4rem; grid-row:span 2; animation:cmShaka 3s ease-in-out infinite; transform-origin:70% 70%; }
@keyframes cmShaka{ 0%,70%,100%{ transform:rotate(0); } 75%{ transform:rotate(-14deg); } 85%{ transform:rotate(12deg); } 92%{ transform:rotate(-6deg); } }
.cm-join-card h2{ font-size:1.5rem; color:#FFF8EF; }
.cm-join-card p{ margin:.2rem 0 0; color:#CDEAE4; font-size:.95rem; }
.cm-join-btns{ grid-column:1/-1; display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.7rem; }
.cm-join-card .btn-primary{ background:#FFF8EF; color:#136155; }
.cm-join-card .btn-line{ color:#FFF8EF; border-color:rgba(255,255,255,.4); }

/* ---------- Filters ---------- */
.cm-filters{ position:sticky; top:calc(72px + env(safe-area-inset-top,0px)); z-index:5; display:flex; gap:.6rem; align-items:center; margin:1.4rem 0 1rem; padding:.55rem; border-radius:18px; background:color-mix(in srgb, var(--bg) 82%, transparent); backdrop-filter:blur(10px); border:1px solid var(--line-soft); }
.cm-chips{ display:flex; gap:.3rem; overflow-x:auto; scrollbar-width:none; flex:1; }
.cm-chips::-webkit-scrollbar{ display:none; }
.cm-chips button{ flex:none; border:1.5px solid transparent; background:transparent; color:var(--ink-soft); border-radius:999px; padding:.45rem .85rem; font:700 .82rem 'Cairo',sans-serif; cursor:pointer; transition:all .2s; }
.cm-chips button:hover{ background:var(--surface); color:var(--ink); }
.cm-chips button[aria-pressed="true"]{ background:var(--surface); color:var(--ink); border-color:var(--tc,var(--ink)); box-shadow:0 6px 14px -10px rgba(var(--shadow)/.6); }
.cm-fspot{ border:1.5px solid var(--line); background:var(--surface); border-radius:999px; padding:.45rem .8rem; font:600 .85rem 'Karla',sans-serif; color:var(--ink); max-width:44%; }
@media (max-width:640px){ .cm-filters{ flex-wrap:wrap; } .cm-fspot{ max-width:none; width:100%; } }

/* ---------- Cards ---------- */
.cm-feed{ display:flex; flex-direction:column; gap:1rem; }
.cm-card{ --tc:#2CA698; position:relative; background:var(--surface); border:1px solid var(--line-soft); border-radius:24px; padding:1.1rem 1.2rem 1rem; box-shadow:0 20px 44px -34px rgba(var(--shadow)/.6); transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s; overflow:hidden; }
.cm-card::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg,var(--tc),transparent 70%); opacity:.9; }
.cm-card:hover{ transform:translateY(-3px); box-shadow:0 30px 56px -34px rgba(var(--shadow)/.7); }
.cm-card.cm-in{ animation:cmUp .6s cubic-bezier(.2,.8,.2,1) both; animation-delay:var(--d,0ms); }
.cm-card.cm-new{ animation:cmNew 1.2s cubic-bezier(.2,.8,.2,1) both; }
@keyframes cmUp{ from{ opacity:0; transform:translateY(22px) scale(.985); } to{ opacity:1; transform:none; } }
@keyframes cmNew{ 0%{ opacity:0; transform:translateY(-14px) scale(.97); box-shadow:0 0 0 0 rgba(44,166,152,.6); } 40%{ opacity:1; transform:none; box-shadow:0 0 0 10px rgba(44,166,152,.15); } 100%{ box-shadow:0 20px 44px -34px rgba(var(--shadow)/.6); } }
@keyframes cmPop{ from{ opacity:0; transform:scale(.96); } to{ opacity:1; transform:none; } }
.cm-card-head{ display:flex; align-items:center; gap:.75rem; }
.cm-who{ min-width:0; flex:1; display:flex; flex-direction:column; }
.cm-name{ font-weight:700; color:var(--ink); line-height:1.25; }
.cm-team{ display:inline-block; font:800 .62rem 'Cairo',sans-serif; letter-spacing:.08em; text-transform:uppercase; color:#fff; background:linear-gradient(135deg,#1F7E73,#2CA698); padding:.12rem .45rem; border-radius:6px; vertical-align:2px; }
.cm-meta{ font-size:.8rem; color:var(--ink-faint); }
.cm-type{ flex:none; display:inline-flex; align-items:center; gap:.3rem; font:700 .74rem 'Cairo',sans-serif; color:var(--tc); background:color-mix(in srgb, var(--tc) 12%, transparent); padding:.32rem .7rem; border-radius:999px; }
.cm-spot{ display:flex; align-items:center; gap:.35rem; margin:.8rem 0 0; font:700 .88rem 'Cairo',sans-serif; color:var(--ink-soft); }
.cm-spot svg{ width:16px; height:16px; color:var(--tc); }
.cm-spot a{ color:var(--ink); text-decoration:none; background:linear-gradient(var(--tc),var(--tc)) 0 100%/0 2px no-repeat; transition:background-size .3s; }
.cm-spot a:hover{ background-size:100% 2px; }
.cm-facts{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.6rem; }
.cm-facts > span{ font-size:.82rem; font-weight:600; background:var(--bg); border:1px solid var(--line-soft); border-radius:999px; padding:.25rem .65rem; color:var(--ink-soft); }
.cm-facts > .cm-stars{ background:none; border:0; padding:0; }
.cm-stars{ display:inline-flex; gap:2px; align-items:center; }
.cm-stars i{ width:15px; height:15px; background:var(--line); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3 6.5 7 .8-5.2 4.8 1.5 7L12 17.6 5.7 21l1.5-7L2 9.3l7-.8z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3 6.5 7 .8-5.2 4.8 1.5 7L12 17.6 5.7 21l1.5-7L2 9.3l7-.8z'/%3E%3C/svg%3E") center/contain no-repeat; }
.cm-stars i.on{ background:#E7B24A; }
.cm-stars.sm i{ width:12px; height:12px; }
.cm-route{ display:flex; align-items:center; gap:.7rem; margin-top:.8rem; font-family:'Fraunces',serif; font-size:1.2rem; }
.cm-route-line{ flex:1; height:2px; background:repeating-linear-gradient(90deg,var(--tc) 0 8px,transparent 8px 14px); position:relative; border-radius:2px; min-width:40px; }
.cm-route-line i{ position:absolute; top:50%; left:0; width:22px; height:22px; margin-top:-11px; border-radius:50%; background:var(--surface); border:2px solid var(--tc); animation:cmDrive 4s ease-in-out infinite; }
.cm-route-line i::after{ content:"🚐"; position:absolute; inset:0; display:grid; place-items:center; font-size:12px; }
@keyframes cmDrive{ 0%{ left:0; } 50%{ left:calc(100% - 22px); } 100%{ left:0; } }
.cm-text{ margin-top:.7rem; color:var(--ink); font-size:1rem; line-height:1.6; overflow-wrap:anywhere; }
.cm-text p{ margin:0 0 .5em; }
.cm-text p:last-child{ margin:0; }
.cm-img{ display:block; width:100%; margin-top:.85rem; padding:0; border:0; border-radius:18px; overflow:hidden; cursor:zoom-in; background:var(--surface-2); }
.cm-img img{ display:block; width:100%; height:auto; max-height:560px; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.2,1); }
.cm-img:hover img{ transform:scale(1.025); }
.cm-actions{ display:flex; align-items:center; gap:.35rem; margin-top:.9rem; padding-top:.7rem; border-top:1px solid var(--line-soft); }
.cm-actions > *{ display:inline-flex; align-items:center; gap:.35rem; border:0; background:none; color:var(--ink-soft); font:700 .86rem 'Cairo',sans-serif; padding:.45rem .7rem; border-radius:999px; cursor:pointer; text-decoration:none; transition:background .2s, color .2s; }
.cm-actions > *:hover{ background:var(--bg); color:var(--ink); }
.cm-open{ margin-left:auto; }
.cm-like{ position:relative; }
.cm-like .cm-shaka{ display:inline-block; filter:grayscale(1); opacity:.7; transition:filter .2s, opacity .2s; }
.cm-like.on{ color:var(--terracotta-deep); }
.cm-like.on .cm-shaka{ filter:none; opacity:1; }
.cm-like.pop .cm-shaka{ animation:cmLike .6s cubic-bezier(.3,1.6,.5,1); }
@keyframes cmLike{ 0%{ transform:scale(1) rotate(0); } 30%{ transform:scale(1.6) rotate(-18deg); } 60%{ transform:scale(.9) rotate(10deg); } 100%{ transform:scale(1) rotate(0); } }
.cm-burst{ position:absolute; left:18px; top:50%; width:6px; height:6px; border-radius:50%; pointer-events:none; animation:cmBurst .7s ease-out forwards; }
@keyframes cmBurst{ to{ transform:translate(var(--x),var(--y)) scale(.2); opacity:0; } }
.cm-del{ color:var(--ink-faint) !important; }
.cm-del:hover{ color:#B32D2E !important; }
.cm-hide-sm{ }
@media (max-width:520px){ .cm-hide-sm{ display:none; } .cm-card{ padding:1rem; border-radius:20px; } }

.cm-skel{ height:180px; border-radius:24px; background:linear-gradient(100deg, var(--surface) 30%, var(--surface-2) 50%, var(--surface) 70%) 0 0/300% 100%; animation:cmShimmer 1.3s linear infinite; border:1px solid var(--line-soft); }
@keyframes cmShimmer{ to{ background-position:-100% 0; } }
.cm-empty{ text-align:center; padding:3rem 1rem; border:1.5px dashed var(--line); border-radius:24px; color:var(--ink-soft); }
.cm-empty-ico{ font-size:2.6rem; animation:cmBob 3s ease-in-out infinite; }
@keyframes cmBob{ 50%{ transform:translateY(-6px); } }
.cm-empty h3{ font-size:1.3rem; margin:.4rem 0; }
.cm-more-wrap{ text-align:center; margin-top:1.2rem; }

/* ---------- Sidebar ---------- */
.cm-side{ position:sticky; top:calc(88px + env(safe-area-inset-top,0px)); display:flex; flex-direction:column; gap:1rem; }
@media (max-width:1020px){ .cm-side{ position:static; display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); } }
.cm-box{ background:var(--surface); border:1px solid var(--line-soft); border-radius:22px; padding:1.1rem 1.15rem; }
.cm-box h3{ font-size:1.05rem; display:flex; align-items:center; gap:.5rem; margin-bottom:.7rem; }
.cm-box p{ color:var(--ink-soft); font-size:.9rem; margin:0 0 .8rem; }
.cm-box-sea{ color:#EAF7F4; border:0; background-color:#136155; background-image:var(--zellige-dark), linear-gradient(150deg,#0F3E39,#1F7E73 70%,#2CA698); }
.cm-box-sea h3{ color:#FFF8EF; }
.cm-box-sea p{ color:#BFE3DC; }
.cm-box-sea .btn-primary{ background:#FFF8EF; color:#136155; }
.cm-best{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.35rem; }
.cm-best a{ display:flex; justify-content:space-between; gap:.6rem; padding:.55rem .7rem; border-radius:12px; background:rgba(255,255,255,.08); color:#FFF8EF; text-decoration:none; transition:background .2s, transform .2s; }
.cm-best a:hover{ background:rgba(255,255,255,.16); transform:translateX(3px); }
.cm-best span{ color:#9FE3D8; font-size:.85rem; font-variant-numeric:tabular-nums; }
.cm-box-link{ display:inline-block; margin-top:.8rem; font:700 .86rem 'Cairo',sans-serif; color:inherit; text-decoration:none; }
.cm-box-sea .cm-box-link{ color:#9FE3D8; }
.cm-up, .cm-rel{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.cm-up a, .cm-rel a{ display:flex; gap:.7rem; align-items:center; text-decoration:none; color:var(--ink); padding:.35rem; border-radius:12px; transition:background .2s; }
.cm-up a:hover, .cm-rel a:hover{ background:var(--bg); }
.cm-up-date{ flex:none; width:44px; height:48px; border-radius:12px; background:var(--terracotta-tint); color:var(--terracotta-deep); display:flex; flex-direction:column; align-items:center; justify-content:center; font:800 1.1rem/1 'Fraunces',serif; }
.cm-up-date small{ font:700 .62rem 'Cairo',sans-serif; text-transform:uppercase; letter-spacing:.08em; margin-top:2px; }
.cm-up b, .cm-rel b{ display:block; font-size:.92rem; }
.cm-up small, .cm-rel small{ color:var(--ink-faint); font-size:.78rem; }
.cm-rel img{ width:52px; height:52px; border-radius:12px; object-fit:cover; flex:none; }
.cm-box-empty{ font-size:.88rem; }
.cm-linkbtn{ border:0; background:none; padding:0; font:700 .88rem 'Cairo',sans-serif; color:var(--terracotta-deep); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.cm-linkbtn.danger{ color:#B32D2E; }
.cm-rules{ margin:0; padding-left:1.2rem; color:var(--ink-soft); font-size:.9rem; display:grid; gap:.35rem; }
.cm-me{ display:grid; grid-template-columns:auto 1fr; gap:.3rem .8rem; align-items:center; }
.cm-me b{ display:block; }
.cm-me small{ color:var(--ink-faint); font-size:.8rem; word-break:break-all; }
.cm-me-actions{ grid-column:1/-1; display:flex; justify-content:space-between; margin-top:.6rem; }

/* ---------- Single ---------- */
.cm-single-head{ padding:calc(100px + env(safe-area-inset-top,0px)) 0 0; }
.cm-single-title{ font-size:clamp(1.7rem,3.6vw,2.6rem); line-height:1.1; margin-top:.6rem; max-width:28ch; }
.cm-card-single{ padding:1.4rem 1.5rem 1.2rem; }
.cm-card-single .cm-text{ font-size:1.08rem; }
.cm-count{ cursor:default !important; }
.cm-thread{ margin-top:1.4rem; }
.cm-thread h2{ font-size:1.3rem; margin-bottom:1rem; }
.cm-comments-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.8rem; }
.cm-comment{ display:flex; gap:.7rem; align-items:flex-start; scroll-margin-top:100px; }
.cm-comment.cm-new{ animation:cmUp .6s cubic-bezier(.2,.8,.2,1) both; }
.cm-comment-b{ background:var(--surface); border:1px solid var(--line-soft); border-radius:6px 18px 18px 18px; padding:.65rem .9rem; flex:1; min-width:0; }
.cm-comment-b p{ margin:0; overflow-wrap:anywhere; }
.cm-comment-h{ font-size:.86rem; margin-bottom:.2rem !important; }
.cm-comment-h span{ color:var(--ink-faint); font-size:.78rem; margin-left:.3rem; }
.cm-comment.pending .cm-comment-b{ border-style:dashed; opacity:.8; }
.cm-reply{ display:flex; gap:.7rem; align-items:flex-end; margin-top:1rem; padding:.7rem; border-radius:20px; background:var(--surface); border:1px solid var(--line-soft); transition:box-shadow .2s, border-color .2s; }
.cm-reply:focus-within{ border-color:rgba(44,166,152,.5); box-shadow:0 0 0 4px var(--terracotta-tint); }
.cm-reply textarea{ flex:1; border:0; background:transparent; resize:none; font:1rem/1.5 'Karla',sans-serif; color:var(--ink); outline:none; padding:.4rem 0; max-height:200px; }
.cm-join-inline{ display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; margin-top:1rem; padding:1rem 1.1rem; border-radius:18px; background:var(--surface-2); }

/* ---------- Spot page block ---------- */
.cm-spot-block{ padding:clamp(2rem,5vw,3rem) 0; }
.cm-spot-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:1rem 2rem; flex-wrap:wrap; margin-bottom:1.2rem; }
.cm-spot-head h2{ font-size:clamp(1.5rem,3vw,2rem); margin-top:.4rem; }
.cm-spot-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
@media (max-width:860px){ .cm-spot-grid{ grid-template-columns:1fr; } }
.cm-mini{ --tc:#2CA698; display:flex; flex-direction:column; gap:.45rem; padding:1rem; border-radius:20px; background:var(--surface); border:1px solid var(--line-soft); text-decoration:none; color:var(--ink); transition:transform .3s, box-shadow .3s; overflow:hidden; }
.cm-mini:hover{ transform:translateY(-4px); box-shadow:0 24px 44px -30px rgba(var(--shadow)/.6); }
.cm-mini img{ width:calc(100% + 2rem); margin:-1rem -1rem .3rem; height:150px; object-fit:cover; }
.cm-mini-type{ font:700 .74rem 'Cairo',sans-serif; color:var(--tc); }
.cm-mini-text{ font-size:.93rem; color:var(--ink-soft); }
.cm-mini-by{ font-size:.8rem; color:var(--ink-faint); margin-top:auto; }
.cm-spot-empty{ color:var(--ink-soft); padding:1.2rem; border:1.5px dashed var(--line); border-radius:18px; }

/* ---------- Auth dialog ---------- */
.cm-auth{ width:min(440px,calc(100% - 2rem)); border:0; border-radius:28px; padding:0 1.6rem 1.5rem; background:var(--surface); color:var(--ink); box-shadow:0 50px 100px -40px rgba(0,0,0,.6); overflow:hidden; }
.cm-auth::backdrop{ background:rgba(8,30,28,.55); backdrop-filter:blur(6px); }
.cm-auth[open]{ animation:cmDlg .45s cubic-bezier(.2,.8,.2,1); }
@keyframes cmDlg{ from{ opacity:0; transform:translateY(20px) scale(.97); } to{ opacity:1; transform:none; } }
.cm-auth-art{ position:relative; height:110px; margin:0 -1.6rem 1rem; background:linear-gradient(135deg,#0F3E39,#1F7E73 60%,#2CA698); display:grid; place-items:center; }
.cm-auth-art svg{ position:absolute; left:0; right:0; bottom:-1px; width:100%; height:70px; }
.cm-auth-art span{ position:relative; font-size:2.6rem; animation:cmShaka 3s ease-in-out infinite; transform-origin:70% 70%; }
.cm-auth-x{ position:absolute; top:.8rem; right:.8rem; width:36px; height:36px; border-radius:50%; border:0; background:rgba(255,255,255,.15); color:#fff; cursor:pointer; z-index:2; }
.cm-auth h2{ font-size:1.6rem; text-align:center; }
.cm-auth-tabs{ display:flex; gap:.25rem; padding:.3rem; margin:1rem 0; border-radius:999px; background:var(--bg); }
.cm-auth-tabs button{ flex:1; border:0; background:none; border-radius:999px; padding:.55rem; font:700 .88rem 'Cairo',sans-serif; color:var(--ink-soft); cursor:pointer; transition:all .25s; }
.cm-auth-tabs button[aria-selected="true"]{ background:var(--surface); color:var(--ink); box-shadow:0 6px 14px -8px rgba(var(--shadow)/.5); }
#cmAuthForm{ display:flex; flex-direction:column; gap:.8rem; }
.cm-auth [data-only][hidden]{ display:none !important; }
.cm-row2{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.cm-pass{ position:relative; }
.cm-pass input{ padding-right:2.6rem; }
.cm-eye{ position:absolute; right:.5rem; top:50%; transform:translateY(-50%); border:0; background:none; cursor:pointer; opacity:.6; }
.cm-f-hint{ font-size:.76rem; color:var(--ink-faint); }
.cm-f .opt{ font-weight:500; color:var(--ink-faint); }
.cm-consent{ display:flex; gap:.55rem; align-items:flex-start; font-size:.84rem; color:var(--ink-soft); }
.cm-consent input{ margin-top:.2rem; accent-color:var(--terracotta); width:17px; height:17px; flex:none; }
.cm-consent a{ color:var(--terracotta-deep); }
.cm-auth-err{ margin:0; color:#B32D2E; font-size:.86rem; min-height:1.2em; }
.cm-auth-err:empty{ display:none; }
.cm-auth-go{ justify-content:center; width:100%; padding:.9rem; }
.cm-auth-go.loading{ opacity:.7; pointer-events:none; }
.cm-auth-small{ text-align:center; margin:0; font-size:.86rem; }
.cm-auth-small a{ color:var(--terracotta-deep); }
.cm-auth.shake{ animation:cmShake .4s; }
@keyframes cmShake{ 20%,60%{ transform:translateX(-6px); } 40%,80%{ transform:translateX(6px); } }

/* ---------- Lightbox + toast ---------- */
.cm-lightbox{ position:fixed; inset:0; z-index:200; background:rgba(8,20,18,.92); display:grid; place-items:center; padding:2rem; animation:cmFade .3s; }
.cm-lightbox[hidden]{ display:none; }
.cm-lightbox img{ max-width:100%; max-height:90vh; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.5); animation:cmPop .35s cubic-bezier(.2,.8,.2,1); }
.cm-lightbox button{ position:absolute; top:calc(1rem + env(safe-area-inset-top,0px)); right:1rem; width:44px; height:44px; border-radius:50%; border:0; background:rgba(255,255,255,.15); color:#fff; font-size:1.1rem; cursor:pointer; }
@keyframes cmFade{ from{ opacity:0; } }
.cm-toast{ position:fixed; left:50%; bottom:calc(1.4rem + env(safe-area-inset-bottom,0px)); z-index:210; transform:translate(-50%,30px); opacity:0; visibility:hidden; background:var(--ink); color:var(--bg); padding:.75rem 1.2rem; border-radius:999px; font-weight:600; box-shadow:0 20px 40px -16px rgba(0,0,0,.5); transition:transform .4s cubic-bezier(.2,.8,.2,1), opacity .3s, visibility .3s; max-width:calc(100% - 2rem); text-align:center; }
.cm-toast.show{ transform:translate(-50%,0); opacity:1; visibility:visible; }

@media (prefers-reduced-motion: reduce){
  .cm-wave, .cm-ticker-track, .cm-live-dot, .cm-glow::after, .cm-join-ico, .cm-auth-art span, .cm-route-line i, .cm-empty-ico{ animation:none !important; }
  .cm-card.cm-in, .cm-card.cm-new{ animation:none; }
}
.cm-hero-in{ padding-bottom:clamp(5rem,9vw,6.5rem); }
@media (max-width:640px){ .cm-hero-sea{ height:80px; bottom:40px; } .cm-hero-cta{ margin-left:0; width:100%; } .cm-hero-cta .btn{ flex:1; justify-content:center; } .cm-stats div{ min-width:0; flex:1; } .cm-stats{ width:100%; } }

.cm-auth-note{ margin:0; font-size:.84rem; color:var(--ink-soft); background:var(--bg); border-radius:12px; padding:.6rem .8rem; }
.cm-auth-done{ text-align:center; padding:.6rem 0 .4rem; animation:cmPop .4s cubic-bezier(.2,.8,.2,1); }
.cm-auth-done[hidden]{ display:none; }
.cm-auth-done-ico{ font-size:2.6rem; animation:cmBob 3s ease-in-out infinite; }
.cm-auth-done h3{ font-size:1.35rem; margin:.3rem 0; }
.cm-auth-done p{ color:var(--ink-soft); margin:0 0 1rem; }
.cm-auth-tabs[hidden], #cmAuthForm[hidden]{ display:none; }

.cm-forgot{ line-height:1.6; }
.cm-forgot a{ display:inline-flex; align-items:center; gap:.3rem; color:#1FA855 !important; font-weight:700; text-decoration:none; }
.cm-forgot a:hover{ text-decoration:underline; }
.cm-forgot small{ color:var(--ink-faint); }
