/*
Theme Name: Panorama
Description: Thème sur mesure — Meilleur CBD, classements & avis des boutiques CBD
Version: 1.0.0
Author: Rédaction Meilleur CBD
Text Domain: panorama
*/

/* ---------- Typos self-hostées ---------- */
@font-face{font-family:'Plus Jakarta Sans';src:url('fonts/plusjakartasans-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Plus Jakarta Sans';src:url('fonts/plusjakartasans-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Plus Jakarta Sans';src:url('fonts/plusjakartasans-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter';src:url('fonts/inter-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter';src:url('fonts/inter-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}

/* ---------- Tokens ---------- */
:root{
  --pn-bg:#F3F8F4;
  --pn-surface:#FFFFFF;
  --pn-line:#DCEAE0;
  --pn-ink:#152A1E;
  --pn-ink2:#3A5245;
  --pn-muted:#5F7568;
  --pn-green:#12855A;
  --pn-green-d:#0C6A46;
  --pn-green-l:#E4F4EA;
  --pn-gold:#F0A92E;
  --pn-radius:14px;
}

/* ---------- Base ---------- */
*{box-sizing:border-box;}
body{
  margin:0;background:var(--pn-bg);color:var(--pn-ink2);
  font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-size:1.01rem;line-height:1.68;
}
h1,h2,h3,h4{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:var(--pn-ink);line-height:1.16;letter-spacing:-.02em;margin:0 0 .5em;}
p{margin:0 0 1em;}
a{color:var(--pn-green);text-decoration:none;}
a:hover{color:var(--pn-green-d);}
img{max-width:100%;height:auto;display:block;}
::selection{background:var(--pn-green);color:#fff;}
.pn-container{max-width:1140px;margin:0 auto;padding:0 24px;}

/* ---------- Header ---------- */
.pn-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--pn-line);}
.pn-header-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:15px 24px;max-width:1140px;margin:0 auto;}
.pn-logo{font-family:'Plus Jakarta Sans';font-weight:800;font-size:1.28rem;color:var(--pn-ink);letter-spacing:-.02em;}
.pn-logo span{color:var(--pn-green);}
.pn-logo::before{
  content:"";display:inline-block;width:.95em;height:.95em;margin-right:.35em;vertical-align:-.12em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-80 -88 160 100'%3E%3Cg fill='%2312855A'%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(30) scale(.9)'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(-30) scale(.9)'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(62) scale(.72)'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(-62) scale(.72)'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(95) scale(.5)'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(-95) scale(.5)'/%3E%3Crect x='-2' y='-2' width='4' height='12' rx='2'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;
}
.pn-nav{display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.pn-nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0;flex-wrap:wrap;}
.pn-nav a{color:var(--pn-ink2);font-weight:600;font-size:.93rem;}
.pn-nav a:hover,.pn-nav .current-menu-item > a{color:var(--pn-green);}
.pn-cta{background:var(--pn-green);color:#fff !important;font-weight:700;font-size:.9rem;padding:.55em 1.2em;border-radius:10px;}
.pn-cta:hover{background:var(--pn-green-d);}

/* ---------- Boutons ---------- */
.pn-btn{display:inline-block;background:var(--pn-green);color:#fff !important;font-weight:700;font-size:.97rem;padding:.78em 1.6em;border-radius:12px;border:1px solid var(--pn-green);transition:all .16s ease;}
.pn-btn:hover{background:var(--pn-green-d);border-color:var(--pn-green-d);box-shadow:0 10px 26px rgba(36,86,230,.25);}
.pn-btn--ghost{background:#fff;color:var(--pn-ink) !important;border-color:var(--pn-line);}
.pn-btn--ghost:hover{border-color:var(--pn-green);color:var(--pn-green) !important;box-shadow:none;}

/* ---------- Hero ---------- */
.pn-hero{text-align:center;padding:4rem 0 2.6rem;max-width:800px;margin:0 auto;position:relative;}
.pn-hero::before{
  content:"";position:absolute;left:50%;top:-30px;transform:translateX(-50%);width:420px;height:420px;opacity:.05;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-80 -88 160 100'%3E%3Cg fill='%2312855A'%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(30) scale(.9)'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(-30) scale(.9)'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(62) scale(.72)'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(-62) scale(.72)'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(95) scale(.5)'/%3E%3Cpath d='M0 0C7-18 7-52 0-74-7-52-7-18 0 0Z' transform='rotate(-95) scale(.5)'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;
}
.pn-hero > *{position:relative;}
.pn-badge{display:inline-block;background:var(--pn-green-l);color:var(--pn-green);font-weight:700;font-size:.8rem;padding:.4em 1em;border-radius:999px;margin-bottom:1.2em;}
.pn-hero h1{font-size:clamp(2.1rem,4.8vw,3.4rem);}
.pn-hero .pn-lead{color:var(--pn-muted);font-size:1.14rem;max-width:36em;margin:0 auto 1.8em;}
.pn-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* ---------- Podium top 3 ---------- */
.pn-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.4rem;}
.pn-shop-card{background:var(--pn-surface);border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:1.3rem;position:relative;transition:box-shadow .18s ease,transform .18s ease;}
.pn-shop-card:hover{box-shadow:0 16px 40px rgba(23,35,58,.10);transform:translateY(-3px);}
.pn-rank{position:absolute;top:-12px;left:16px;background:var(--pn-green);color:#fff;font-family:'Plus Jakarta Sans';font-weight:800;font-size:.86rem;padding:.2em .75em;border-radius:8px;}
.pn-rank--1{background:var(--pn-gold);}
.pn-shop-card img{border-radius:10px;margin-bottom:.9rem;aspect-ratio:4/3;object-fit:cover;width:100%;}
.pn-shop-card h3{font-size:1.12rem;margin-bottom:.2em;}
.pn-shop-card h3 a{color:var(--pn-ink);}
.pn-shop-card h3 a:hover{color:var(--pn-green);}
.pn-score{display:inline-flex;align-items:baseline;gap:2px;font-family:'Plus Jakarta Sans';font-weight:800;color:var(--pn-green);font-size:1.3rem;}
.pn-score small{color:var(--pn-muted);font-weight:600;font-size:.8rem;}
.pn-shop-card p{color:var(--pn-muted);font-size:.92rem;margin:.4em 0 0;}

/* ---------- Classement (archive) ---------- */
.pn-rankings{display:flex;flex-direction:column;gap:1rem;margin-top:1.6rem;}
.pn-row{display:grid;grid-template-columns:56px 120px 1fr auto;gap:1.2rem;align-items:center;background:var(--pn-surface);border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:1.1rem 1.3rem;}
.pn-row-rank{font-family:'Plus Jakarta Sans';font-weight:800;font-size:1.5rem;color:var(--pn-muted);text-align:center;}
.pn-row:nth-child(1) .pn-row-rank{color:var(--pn-gold);}
.pn-row:nth-child(2) .pn-row-rank,.pn-row:nth-child(3) .pn-row-rank{color:var(--pn-green);}
.pn-row img{border-radius:10px;aspect-ratio:4/3;object-fit:cover;width:120px;}
.pn-row h3{font-size:1.1rem;margin:0 0 .15em;}
.pn-row h3 a{color:var(--pn-ink);}
.pn-row h3 a:hover{color:var(--pn-green);}
.pn-row-excerpt{color:var(--pn-muted);font-size:.92rem;margin:0;}
.pn-row-side{text-align:right;display:flex;flex-direction:column;gap:.5rem;align-items:flex-end;}

/* ---------- Barres de notes ---------- */
.pn-bars{display:flex;flex-direction:column;gap:.45rem;margin:1rem 0;}
.pn-bar{display:grid;grid-template-columns:120px 1fr 34px;gap:10px;align-items:center;font-size:.88rem;}
.pn-bar-label{color:var(--pn-muted);font-weight:600;}
.pn-bar-track{height:8px;background:var(--pn-green-l);border-radius:99px;overflow:hidden;}
.pn-bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--pn-green),#43C489);border-radius:99px;}
.pn-bar-val{font-weight:700;color:var(--pn-ink);text-align:right;}

/* ---------- Fiche boutique ---------- */
.pn-fiche{max-width:860px;margin:0 auto;padding-top:3rem;}
.pn-fiche-head{display:grid;grid-template-columns:200px 1fr auto;gap:1.6rem;align-items:center;background:var(--pn-surface);border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:1.5rem;}
.pn-fiche-head img{border-radius:10px;aspect-ratio:4/3;object-fit:cover;}
.pn-fiche-head h1{font-size:clamp(1.5rem,3vw,2.1rem);margin-bottom:.15em;}
.pn-circle{width:92px;height:92px;border-radius:50%;background:var(--pn-green);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans';font-weight:800;font-size:1.6rem;line-height:1;}
.pn-circle small{font-size:.66rem;font-weight:600;opacity:.8;margin-top:3px;}
.pn-promo{background:#FFF7E8;border:1px dashed var(--pn-gold);border-radius:12px;padding:1rem 1.2rem;margin:1.4rem 0;font-size:.96rem;}
.pn-disclaimer{font-size:.82rem;color:var(--pn-muted);border-top:1px solid var(--pn-line);padding-top:1rem;margin-top:2rem;}

/* ---------- Sections / grille articles ---------- */
.pn-sec{padding:3rem 0 0;}
.pn-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:1.4rem;flex-wrap:wrap;}
.pn-sec-head h2{font-size:clamp(1.5rem,3vw,2.1rem);margin:0;}
.pn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.pn-card{background:var(--pn-surface);border:1px solid var(--pn-line);border-radius:var(--pn-radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .18s ease,transform .18s ease;}
.pn-card:hover{box-shadow:0 16px 40px rgba(23,35,58,.10);transform:translateY(-3px);}
.pn-card-img{aspect-ratio:16/9;overflow:hidden;}
.pn-card-img img{width:100%;height:100%;object-fit:cover;}
.pn-card-body{padding:1.05rem 1.15rem 1.2rem;display:flex;flex-direction:column;gap:.4rem;}
.pn-pill{display:inline-block;align-self:flex-start;background:var(--pn-green-l);color:var(--pn-green);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.18em .65em;border-radius:6px;}
.pn-card h3{font-size:1.08rem;margin:0;line-height:1.34;}
.pn-card h3 a{color:var(--pn-ink);}
.pn-card h3 a:hover{color:var(--pn-green);}
.pn-card p{color:var(--pn-muted);font-size:.92rem;margin:0;}

/* ---------- Méthodo band ---------- */
.pn-band{margin-top:3.4rem;background:var(--pn-ink);border-radius:var(--pn-radius);padding:clamp(2rem,4.5vw,3rem);color:#C2D6C8;}
.pn-band h2{color:#fff;font-size:clamp(1.5rem,3vw,2.1rem);}
.pn-band p{max-width:46em;}
.pn-band a{color:#8FE0B8;}

/* ---------- Articles / pages ---------- */
.pn-main{padding-bottom:4rem;}
.pn-archive-head{padding:3rem 0 0;}
.pn-archive-head h1{font-size:clamp(1.8rem,3.6vw,2.5rem);}
.pn-archive-head p{color:var(--pn-muted);max-width:52em;}
.pn-article{max-width:760px;margin:0 auto;padding-top:3rem;}
.pn-article-head h1{font-size:clamp(1.7rem,3.6vw,2.5rem);}
.pn-meta{color:var(--pn-muted);font-size:.86rem;margin-bottom:1.5rem;}
.pn-article .pn-thumb img{border-radius:var(--pn-radius);margin-bottom:1.6rem;}
.pn-prose{background:var(--pn-surface);border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:clamp(1.4rem,3vw,2.4rem);}
.pn-prose h2{font-size:1.45rem;margin-top:1.5em;}
.pn-prose h3{font-size:1.15rem;}
.pn-prose a{text-decoration:underline;text-underline-offset:3px;}
.pn-prose blockquote{border-left:3px solid var(--pn-green);background:var(--pn-green-l);border-radius:8px;padding:1rem 1.2rem;margin:1.3em 0;}
.pn-pagination{display:flex;gap:10px;justify-content:center;margin-top:2.4rem;}
.pn-pagination .page-numbers{border:1px solid var(--pn-line);background:#fff;border-radius:8px;padding:.4em .8em;color:var(--pn-muted);}
.pn-pagination .page-numbers.current{background:var(--pn-green);color:#fff;border-color:var(--pn-green);}

/* ---------- Footer ---------- */
.pn-footer{margin-top:4rem;border-top:1px solid var(--pn-line);background:#fff;}
.pn-footer-in{max-width:1140px;margin:0 auto;padding:2rem 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.pn-footer ul{display:flex;gap:20px;list-style:none;margin:0;padding:0;flex-wrap:wrap;}
.pn-footer a{color:var(--pn-muted);font-size:.9rem;}
.pn-footer a:hover{color:var(--pn-green);}
.pn-copy{color:var(--pn-muted);font-size:.85rem;}

/* ---------- Plateforme : badges, avis, réclamation, espace boutique ---------- */
.pn-badge-premium{display:inline-block;background:linear-gradient(90deg,#F0A92E,#F6C15F);color:#4A3407;font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:.22em .6em;border-radius:6px;vertical-align:middle;margin-left:.35em;}
.pn-badge-claimed{display:inline-block;background:var(--pn-green-l);color:var(--pn-green);font-size:.66rem;font-weight:700;letter-spacing:.04em;padding:.22em .6em;border-radius:6px;vertical-align:middle;margin-left:.35em;}
.pn-circle--pending{background:var(--pn-muted);}
.pn-eval-pending{background:var(--pn-green-l);border:1px solid var(--pn-line);border-radius:12px;padding:.9rem 1.2rem;font-size:.95rem;}
.pn-pill-pending{display:inline-block;background:#F1F5F2;border:1px solid var(--pn-line);color:var(--pn-muted);font-size:.78rem;font-weight:600;padding:.3em .8em;border-radius:999px;}
.pn-visit{cursor:pointer;user-select:none;}
.pn-sec-title{font-size:1.35rem;margin:2.2rem 0 .8rem;}
.pn-stars .on{color:#F0A92E;}
.pn-stars .off{color:#D5DFD8;}
.pn-avis-agg{color:var(--pn-ink2);font-size:.95rem;}
.pn-review{background:var(--pn-surface);border:1px solid var(--pn-line);border-radius:12px;padding:1rem 1.2rem;margin-bottom:.9rem;}
.pn-review-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:.4rem;}
.pn-review p{margin:0;}
.pn-review-reply{margin-top:.7rem;border-left:3px solid var(--pn-green);background:var(--pn-green-l);border-radius:8px;padding:.7rem .9rem;}
.pn-review-reply p{margin:.2em 0 0;font-size:.94rem;}
.pn-reply-toggle{margin-top:.6rem;}
.pn-reply-toggle summary{cursor:pointer;color:var(--pn-green);font-weight:600;font-size:.9rem;}
.pn-form input[type=text],.pn-form input[type=email],.pn-form input[type=url],.pn-form select,.pn-form textarea{width:100%;border:1px solid var(--pn-line);border-radius:10px;padding:.6em .8em;font:inherit;background:#fff;color:var(--pn-ink);box-sizing:border-box;}
.pn-form label{font-weight:600;color:var(--pn-ink);font-size:.93rem;}
.pn-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem;}
.pn-rate{display:inline-flex;flex-direction:row-reverse;gap:2px;margin-bottom:.6rem;}
.pn-rate input{position:absolute;opacity:0;pointer-events:none;}
.pn-rate label{font-size:1.9rem;color:#D5DFD8;cursor:pointer;transition:color .1s ease;}
.pn-rate label:hover,.pn-rate label:hover ~ label,.pn-rate input:checked ~ label{color:#F0A92E;}
.pn-notice{border-radius:10px;padding:.8rem 1.1rem;margin:.8rem 0;font-size:.95rem;}
.pn-notice.ok{background:var(--pn-green-l);border:1px solid var(--pn-green);color:var(--pn-green-d);}
.pn-notice.err{background:#FDEEEE;border:1px solid #E5A3A3;color:#9B3333;}
.pn-claim-box{display:grid;grid-template-columns:1fr auto;gap:1.4rem;align-items:center;background:var(--pn-ink);color:#C2D6C8;border-radius:var(--pn-radius);padding:1.6rem 1.8rem;margin-top:2.4rem;}
.pn-claim-box h3{color:#fff;margin:0 0 .3em;}
.pn-claim-box p{margin:0;font-size:.94rem;}
.pn-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;margin:1rem 0;}
.pn-gallery figure{margin:0;position:relative;}
.pn-gallery img{border-radius:10px;aspect-ratio:4/3;object-fit:cover;width:100%;}
.pn-photo-del{position:absolute;top:8px;right:8px;background:rgba(21,42,30,.85);color:#fff;font-size:.72rem;padding:.25em .6em;border-radius:6px;}
.pn-dash-shop{background:var(--pn-surface);border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:1.6rem;margin-bottom:1.6rem;}
.pn-dash-login{max-width:420px;margin:0 auto;background:var(--pn-surface);border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:1.8rem;}
.pn-dash-login input[type=text],.pn-dash-login input[type=password]{width:100%;border:1px solid var(--pn-line);border-radius:10px;padding:.6em .8em;box-sizing:border-box;}
.pn-dash-login .login-remember{margin:.6rem 0;}
.pn-dash-login .button-primary{background:var(--pn-green);border:none;color:#fff;font-weight:700;border-radius:10px;padding:.7em 1.4em;cursor:pointer;}
.pn-upsell{background:linear-gradient(135deg,var(--pn-green-l),#fff);border:1px solid var(--pn-green);border-radius:12px;padding:1.3rem 1.5rem;margin-top:1rem;}
.pn-upsell h3{margin-top:0;color:var(--pn-green-d);}
.pn-upsell ul{padding-left:1.2em;margin:.6em 0 1em;}
.pn-pricing{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin:1.6rem 0;}
.pn-price-card{background:var(--pn-surface);border:1px solid var(--pn-line);border-radius:var(--pn-radius);padding:1.6rem;}
.pn-price-card.premium{border:2px solid var(--pn-green);box-shadow:0 16px 40px rgba(18,133,90,.12);}
.pn-price-card h3{margin-top:0;}
.pn-price-card .pn-price{font-family:'Plus Jakarta Sans';font-weight:800;font-size:1.7rem;color:var(--pn-ink);}
.pn-price-card ul{padding-left:1.2em;margin:.8em 0;}
.pn-price-card li{margin-bottom:.4em;}
.pn-price-card .ko{color:var(--pn-muted);text-decoration:line-through;}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .pn-grid,.pn-podium{grid-template-columns:1fr 1fr;}
  .pn-row{grid-template-columns:40px 90px 1fr;}
  .pn-row-side{grid-column:2 / -1;flex-direction:row;justify-content:flex-start;}
  .pn-row img{width:90px;}
  .pn-fiche-head{grid-template-columns:1fr;text-align:center;}
  .pn-fiche-head img{margin:0 auto;max-width:260px;}
  .pn-circle{margin:0 auto;}
}
@media (max-width:620px){
  .pn-grid,.pn-podium{grid-template-columns:1fr;}
  .pn-bar{grid-template-columns:92px 1fr 30px;}
  .pn-form-grid,.pn-claim-box,.pn-pricing{grid-template-columns:1fr;}
  .pn-gallery{grid-template-columns:1fr 1fr;}
}
