/* ═══════════════════════════════════════════════════════
   TC DIGITAL ACADEMY — main.css
   Design System complet · v1.0.0
═══════════════════════════════════════════════════════ */

/* ── TOKENS ── */
:root {
  /* ── Accents ── */
  --orange:        #FF5C00;
  --orange-h:      #FF7A2E;
  --orange-dim:    #FFF0E8;
  --orange-border: #FFD4BB;
  --orange-text:   #CC3D00;

  --violet:        #7B5CF0;
  --violet-h:      #9070FF;
  --violet-dim:    #EDE9FD;
  --violet-border: #C9BEFF;
  --violet-text:   #4A2DC7;

  --vert:          #00C896;
  --vert-h:        #00E0A8;
  --vert-dim:      #E0FAF4;
  --vert-border:   #A7EDD8;
  --vert-text:     #007A5A;

  --rouge:  #E24B4A;
  --jaune:  #FFD60A;

  /* ── Fonds (clair → très légèrement teinté) ── */
  --bg0: #FFFFFF;
  --bg1: #F5F4FB;
  --bg2: #EDEAF8;
  --bg3: #E2E0F0;
  --bg4: #D4D0ED;

  /* ── Texte ── */
  --t100: #1A1035;
  --t70:  #3D3660;
  --t40:  #6B6B80;
  --t20:  #A9A9BE;

  /* ── Bordures ── */
  --border:     #E2E0F0;
  --border-mid: #C9C6E8;

  /* ── Rayons ── */
  --r-sm:4px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-2xl:24px; --r-full:9999px;

  /* ── Ombres (légères sur fond clair) ── */
  --shadow-sm: 0 2px 8px rgba(26,16,53,.06);
  --shadow-md: 0 4px 16px rgba(26,16,53,.08);
  --shadow-lg: 0 8px 32px rgba(26,16,53,.10);
  --shadow-orange: 0 8px 24px rgba(255,92,0,.2);
  --shadow-card:   0 1px 3px rgba(26,16,53,.06), 0 4px 12px rgba(26,16,53,.04);

  /* ── Transitions ── */
  --t-fast: 120ms ease; --t-mid: 200ms ease;
}

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;background:#FFFFFF !important;}
body{background:#FFFFFF !important;color:#1A1035 !important;font-family:'Space Grotesk',sans-serif;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
body.wp-singular,body.home,body.blog,body.archive,body.single{background:#FFFFFF !important;color:#1A1035 !important;}
img{display:block;max-width:100%;height:auto;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
button{cursor:pointer;font-family:inherit;}

/* ── LAYOUT ── */
.container{max-width:1180px;margin:0 auto;padding:0 2rem;}
.container-wide{max-width:1380px;margin:0 auto;padding:0 2rem;}
.section{padding:5rem 0;}.section,.section-alt{position:relative;}
.section-alt{background:#F5F4FB !important;}
.section-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem;gap:2rem;flex-wrap:wrap;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}

/* ── TYPOGRAPHIE ── */
.eyebrow{font-family:'Noto Sans JP',sans-serif;font-size:.58rem;letter-spacing:.45em;color:var(--orange);text-transform:uppercase;margin-bottom:.5rem;}
.section-heading{font-family:'Outfit',sans-serif;font-weight:800;font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.03em;line-height:1.05;}
.section-heading em{font-style:normal;color:var(--orange);}
.section-sub{color:var(--t40);font-size:.9rem;line-height:1.75;max-width:500px;}
.entry-content h2{font-family:'Outfit',sans-serif;font-weight:700;font-size:1.4rem;margin:2rem 0 .75rem;}
.entry-content h3{font-family:'Outfit',sans-serif;font-weight:600;font-size:1.1rem;margin:1.5rem 0 .5rem;}
.entry-content p{color:var(--t70);line-height:1.8;margin-bottom:1rem;}
.entry-content a{color:var(--orange);}
.entry-content ul,.entry-content ol{color:var(--t70);padding-left:1.5rem;margin-bottom:1rem;}
.entry-content li{margin-bottom:.4rem;}
.entry-content blockquote{border-left:3px solid var(--orange);padding:.75rem 1.25rem;background:#FFFFFF;border-radius:0 var(--r-md) var(--r-md) 0;margin:1.5rem 0;font-style:italic;color:var(--t70);}
.entry-content code{font-family:monospace;font-size:.85em;background:#FFFFFF;padding:.15rem .4rem;border-radius:var(--r-sm);color:var(--vert);}
.entry-content pre{background:#FFFFFF;border:1px solid var(--border);border-radius:var(--r-md);padding:1.25rem;overflow-x:auto;margin-bottom:1.5rem;}

/* ── BOUTONS ── */
.btn{display:inline-flex;align-items:center;gap:.45rem;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem;border:none;border-radius:var(--r-md);padding:.7rem 1.4rem;transition:all var(--t-fast);cursor:pointer;white-space:nowrap;line-height:1;}
.btn:hover{transform:translateY(-1px);}
.btn:active{transform:translateY(0);}
.btn-primary{background:var(--orange);color:#07070f;}
.btn-primary:hover{background:var(--orange-h);box-shadow:var(--shadow-orange);}
.btn-ghost{background:transparent;color:var(--t100);border:1px solid var(--border-mid);}
.btn-ghost:hover{background:#FFFFFF;}
.btn-vert{background:var(--vert);color:#07070f;}
.btn-vert:hover{opacity:.9;}
.btn-violet{background:var(--violet);color:#fff;}
.btn-lg{padding:.9rem 1.9rem;font-size:.95rem;border-radius:var(--r-lg);}
.btn-sm{padding:.45rem .9rem;font-size:.75rem;border-radius:var(--r-sm);}
.btn-block{width:100%;justify-content:center;}
.btn-disabled{opacity:.35;pointer-events:none;}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .55rem;border-radius:var(--r-full);font-size:.62rem;font-weight:600;letter-spacing:.04em;border:1px solid;}
.badge-orange{background:var(--orange-dim);color:var(--orange-text);border-color:var(--orange-border);}
.badge-violet{background:var(--violet-dim);color:var(--violet-text);border-color:var(--violet-border);}
.badge-vert{background:var(--vert-dim);color:var(--vert-text);border-color:var(--vert-border);}
.badge-neutral{background:#EDEAF8;color:var(--t70);border-color:var(--border);}
.badge-dot{width:5px;height:5px;border-radius:50%;display:inline-block;}

/* ── FORMULAIRES ── */
.form-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;}
.form-label{font-size:.75rem;font-weight:600;color:var(--t70);}
.form-input,.form-select,.form-textarea{background:#FFFFFF;border:1.5px solid var(--border);border-radius:var(--r-md);color:var(--t100);font-family:'Space Grotesk',sans-serif;font-size:.85rem;padding:.65rem .875rem;outline:none;width:100%;transition:border-color var(--t-fast),box-shadow var(--t-fast);}
.form-input::placeholder,.form-textarea::placeholder{color:var(--t20);}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(255,92,0,.10);}
.form-textarea{resize:vertical;min-height:120px;}
.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239299b0' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem;cursor:pointer;}

/* ── NAVIGATION ── */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(255,255,255,.92);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:.9rem 0;box-shadow:var(--shadow-sm);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.tcda-logo{display:flex;align-items:center;gap:14px;}
.tc-name{line-height:1.05;}
.tc-t{font-family:'Outfit',sans-serif;font-weight:200;letter-spacing:.12em;text-transform:uppercase;color:var(--t100);display:block;}
.tc-c{font-family:'Outfit',sans-serif;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);display:block;margin-top:1px;}
.tc-sub{display:flex;align-items:center;gap:7px;margin-top:7px;}
.tc-sub-line{width:12px;height:1.5px;background:var(--violet);opacity:.7;flex-shrink:0;}
.tc-sub-txt{font-family:'Noto Sans JP',sans-serif;font-size:.44rem;letter-spacing:.35em;color:var(--t40);text-transform:uppercase;}
.nav-links{display:flex;align-items:center;gap:.2rem;}
.nav-link{padding:.4rem .75rem;font-size:.8rem;font-weight:500;color:var(--t40);border-radius:var(--r-md);transition:color var(--t-fast),background var(--t-fast);}
.nav-link:hover{color:var(--t100);background:#FFFFFF;}
.nav-link.current-menu-item,.nav-link.active{color:var(--orange);}
.nav-actions{display:flex;align-items:center;gap:.6rem;}
.nav-avatar{width:32px;height:32px;border-radius:50%;background:var(--orange-dim);border:1.5px solid var(--orange-border);display:flex;align-items:center;justify-content:center;font-family:'Outfit',sans-serif;font-weight:700;font-size:.7rem;color:var(--orange-text);}
.nav-hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:.4rem;cursor:pointer;}
.nav-hamburger span{width:22px;height:2px;background:var(--t100);border-radius:2px;transition:all var(--t-fast);}
.nav-mobile-menu{background:#F5F4FB;border-top:1px solid var(--border);padding:1rem 2rem 1.5rem;}
.nav-mobile-list li{border-bottom:1px solid var(--border);}
.nav-mobile-list a{display:block;padding:.75rem 0;font-size:.9rem;color:var(--t70);}
.nav-mobile-list a:hover{color:var(--orange);}
.nav-mobile-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem;}

/* ── BREADCRUMB ── */
.breadcrumb-bar{background:#F5F4FB;border-bottom:1px solid var(--border);padding:.75rem 0;margin-top:58px;}
.bc{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--t40);flex-wrap:wrap;}
.bc a{color:var(--t40);transition:color var(--t-fast);}
.bc a:hover{color:var(--orange);}
.bc-sep{color:var(--t20);}
.bc-active{color:var(--t100);}

/* ── HERO ── */
.hero{min-height:auto;padding:6rem 0 5rem;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(123,92,240,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(123,92,240,.06) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;}
.hero-glow-1{position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(123,92,240,.10),transparent 70%);top:-100px;right:-100px;pointer-events:none;}
.hero-glow-2{position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(255,92,0,.08),transparent 70%);bottom:0;left:30%;pointer-events:none;}
.hero-content{position:relative;z-index:2;}
.hero-tag{display:inline-flex;align-items:center;gap:.5rem;background:#FFFFFF;border:1px solid var(--border);border-radius:var(--r-full);padding:.3rem .8rem .3rem .5rem;font-size:.72rem;color:var(--t70);margin-bottom:1.5rem;}
.hero-tag-dot{width:6px;height:6px;border-radius:50%;background:var(--vert);box-shadow:0 0 6px var(--vert);}
.hero-title{font-family:'Outfit',sans-serif;font-weight:800;font-size:clamp(2.8rem,5vw,4.2rem);letter-spacing:-.04em;line-height:.95;margin-bottom:1.5rem;}
.hero-title em{font-style:normal;color:var(--orange);}
.hero-title .jp{font-family:'Noto Sans JP',sans-serif;font-size:.28em;font-weight:300;color:var(--t20);letter-spacing:.2em;display:block;margin-bottom:.3em;}
.hero-desc{font-size:1rem;color:var(--t70);line-height:1.8;max-width:460px;margin-bottom:2rem;}
.hero-ctas{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:2.5rem;}
.hero-proof{display:flex;align-items:center;gap:1.5rem;}
.hero-proof-avatars{display:flex;}
.hero-proof-avatars .av{width:28px;height:28px;border-radius:50%;border:2px solid var(--bg0);margin-right:-8px;background:#EDEAF8;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:700;}
.hero-proof-text{font-size:.75rem;color:var(--t40);line-height:1.5;}
.hero-proof-text strong{color:var(--t100);}

/* ── HERO CARD STACK ── */
.hero-visual{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;}
.hero-card-stack{position:relative;width:100%;max-width:420px;}
.hcard{background:#F5F4FB;border:1px solid var(--border);border-radius:16px;padding:1.5rem;backdrop-filter:blur(12px);}
.hcard-float-1{position:absolute;top:-24px;right:-20px;background:#FFFFFF;border:1px solid var(--border);border-radius:12px;padding:.75rem 1rem;display:flex;align-items:center;gap:.6rem;z-index:3;box-shadow:var(--shadow-md);}
.hcard-float-2{position:absolute;bottom:-20px;left:-16px;background:#FFFFFF;border:1px solid var(--border);border-radius:12px;padding:.75rem 1rem;z-index:3;box-shadow:var(--shadow-md);}
.float-stat{font-family:'Outfit',sans-serif;font-weight:800;font-size:1.3rem;color:var(--vert-text);line-height:1;}
.float-label{font-size:.62rem;color:var(--t40);margin-top:2px;}
.lesson-row{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--border);}
.lesson-row:last-child{border-bottom:none;}
.lesson-ico{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0;}
.lesson-ico.done{background:var(--vert-dim);color:var(--vert);}
.lesson-ico.play{background:var(--orange-dim);color:var(--orange);}
.lesson-ico.lock{background:#EDEAF8;color:var(--t20);}
.lesson-title{flex:1;font-size:.78rem;color:var(--t70);}
.lesson-title.cur{color:var(--t100);font-weight:600;}
.lesson-dur{font-size:.62rem;color:var(--t40);}

/* ── STATS BAND ── */
.stats-band{background:#F5F4FB !important;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);padding:2.5rem 0;}
.stats-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;}
.stat-item{text-align:center;flex:1;min-width:100px;}
.stat-val{font-family:'Outfit',sans-serif;font-weight:800;font-size:2.2rem;letter-spacing:-.03em;line-height:1;margin-bottom:.2rem;}
.stat-label{font-size:.72rem;color:var(--t40);letter-spacing:.05em;}
.stat-sep{width:1px;height:48px;background:var(--border);}

/* ── CATÉGORIES ── */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
.cat-card{background:#FFFFFF;border:1px solid var(--border);border-radius:var(--r-lg);padding:1.5rem 1.25rem;display:flex;flex-direction:column;gap:.6rem;transition:border-color var(--t-mid),background var(--t-mid),transform var(--t-mid),box-shadow var(--t-mid);cursor:pointer;position:relative;overflow:hidden;box-shadow:var(--shadow-card);}
.cat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--orange),var(--orange-h));opacity:0;transition:opacity var(--t-mid);}
.cat-card:hover{background:#EDEAF8;border-color:var(--border-mid);transform:translateY(-2px);}
.cat-card:hover::before{opacity:1;}
.cat-icon{font-size:1.75rem;}
.cat-name{font-family:'Outfit',sans-serif;font-weight:700;font-size:.95rem;letter-spacing:-.01em;color:var(--t100);}
.cat-count{font-size:.68rem;color:var(--t40);margin-top:.1rem;}

/* ── COURS CARD ── */
.course-card{background:#FFFFFF;border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color var(--t-mid),transform var(--t-mid),box-shadow var(--t-mid);display:flex;flex-direction:column;box-shadow:var(--shadow-card);}
.course-card:hover{border-color:var(--orange-border);transform:translateY(-3px);box-shadow:0 8px 24px rgba(26,16,53,.12);}
.course-thumb{height:160px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.course-thumb-emoji{font-size:3rem;}
.course-thumb img{width:100%;height:100%;object-fit:cover;}
.course-thumb-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 40%,rgba(7,7,15,.7));}
.course-thumb-badge{position:absolute;top:10px;left:10px;}
.course-body{padding:1.1rem;flex:1;display:flex;flex-direction:column;}
.course-cats{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem;}
.course-title{font-family:'Outfit',sans-serif;font-weight:700;font-size:.92rem;letter-spacing:-.01em;line-height:1.3;margin-bottom:.5rem;color:var(--t100);}
.course-meta{display:flex;align-items:center;gap:.75rem;font-size:.65rem;color:var(--t40);margin-bottom:.75rem;flex-wrap:wrap;}
.course-instructor{display:flex;align-items:center;gap:.5rem;font-size:.72rem;color:var(--t70);margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border);}
.course-footer{padding:.85rem 1.1rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.course-price{font-family:'Outfit',sans-serif;font-weight:800;font-size:1.05rem;color:var(--orange);}
.course-price-old{font-size:.72rem;color:var(--t20);text-decoration:line-through;margin-left:.25rem;}

/* ── PROGRESS ── */
.prog-track{height:4px;background:#EDEAF8;border-radius:var(--r-full);overflow:hidden;}
.prog-fill{height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,var(--vert),#00E5A0);}
.prog-label{display:flex;justify-content:space-between;font-size:.62rem;color:var(--t40);margin-bottom:.3rem;}

/* ── RATING ── */
.tcda-stars{color:var(--t20);}
.tcda-stars .full{color:var(--jaune);}
.tcda-stars .half{color:var(--jaune);}

/* ── À PROPOS FORMATEUR ── */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.about-photo{aspect-ratio:4/5;background:linear-gradient(145deg,var(--bg2),var(--bg1));border-radius:20px;border:1px solid var(--border);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:6rem;}
.about-photo::before{content:'';position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(to top,rgba(237,234,248,.98),transparent);}
.about-photo-badge{position:absolute;bottom:1.5rem;left:1.5rem;right:1.5rem;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:10px;padding:.875rem 1rem;display:flex;align-items:center;gap:.75rem;box-shadow:var(--shadow-md);}
.check-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem;}
.check-item{display:flex;align-items:flex-start;gap:.75rem;font-size:.82rem;color:var(--t70);}
.check-item::before{content:'✓';color:var(--vert);font-weight:700;flex-shrink:0;}
.about-skills{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;}
.skill-tag{padding:.25rem .65rem;border-radius:var(--r-full);font-size:.65rem;font-weight:500;background:#FFFFFF;border:1px solid var(--border);color:var(--t70);}
.skill-tag.orange{background:var(--orange-dim);border-color:rgba(255,107,0,.25);color:var(--orange);}
.skill-tag.violet{background:var(--violet-dim);border-color:rgba(156,111,255,.25);color:var(--violet);}
.skill-tag.vert{background:var(--vert-dim);border-color:rgba(0,200,150,.25);color:var(--vert);}

/* ── TÉMOIGNAGES ── */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.testi-grid--1{grid-template-columns:1fr;max-width:480px;margin:0 auto;}
.testi-grid--2{grid-template-columns:1fr 1fr;}
.testi-card{background:#FFFFFF;border:1px solid var(--border);border-radius:14px;padding:1.75rem;display:flex;flex-direction:column;gap:1rem;transition:border-color var(--t-mid),box-shadow var(--t-mid);box-shadow:var(--shadow-card);}
.testi-card:hover{border-color:var(--orange-border);box-shadow:var(--shadow-md);}
.testi-quote{font-size:.82rem;color:var(--t70);line-height:1.75;flex:1;font-style:italic;}
.testi-author{display:flex;align-items:center;gap:.75rem;}
.testi-av{width:40px;height:40px;border-radius:50%;background:#EDEAF8;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:'Outfit',sans-serif;font-weight:700;font-size:.8rem;flex-shrink:0;overflow:hidden;}
.testi-av img{width:100%;height:100%;object-fit:cover;}
.testi-name{font-weight:600;font-size:.82rem;}
.testi-role{font-size:.65rem;color:var(--t40);}

/* ── BLOG ── */
.blog-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1.25rem;}
.blog-card{background:#FFFFFF;border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color var(--t-mid),transform var(--t-mid),box-shadow var(--t-mid);box-shadow:var(--shadow-card);}
.blog-card:hover{border-color:var(--orange-border);transform:translateY(-2px);box-shadow:var(--shadow-md);}
.blog-thumb{height:200px;display:flex;align-items:center;justify-content:center;font-size:3rem;overflow:hidden;}
.blog-thumb.sm{height:140px;font-size:2rem;}
.blog-thumb img{width:100%;height:100%;object-fit:cover;}
.blog-body{padding:1.25rem;}
.blog-cat{font-size:.6rem;letter-spacing:.15em;color:var(--orange);text-transform:uppercase;font-weight:600;margin-bottom:.5rem;}
.blog-title{font-family:'Outfit',sans-serif;font-weight:700;font-size:.95rem;letter-spacing:-.01em;line-height:1.3;margin-bottom:.5rem;color:var(--t100);}
.blog-title.sm{font-size:.85rem;}
.blog-meta{font-size:.62rem;color:var(--t40);}
.blog-excerpt{font-size:.78rem;color:var(--t70);line-height:1.7;margin-top:.5rem;}

/* ── CTA BAND ── */
.cta-band{background:linear-gradient(135deg,var(--bg1) 0%,var(--bg2) 100%);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:5rem 0;position:relative;overflow:hidden;text-align:center;}
.cta-band::before{content:'⛩';position:absolute;font-size:18rem;opacity:.04;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;font-family:'Noto Sans JP',sans-serif;line-height:1;color:var(--violet);}
.cta-band-title{font-family:'Outfit',sans-serif;font-weight:800;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.04em;line-height:1.05;margin-bottom:1rem;}

/* ── COURSE HERO ── */
.course-hero{background:linear-gradient(135deg,var(--bg1) 0%,var(--bg2) 100%);border-bottom:1px solid var(--border);padding:3.5rem 0 0;position:relative;overflow:hidden;}
.course-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(123,92,240,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(123,92,240,.05) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;}
.course-hero-glow{position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(123,92,240,.12),transparent 70%);top:-100px;right:0;pointer-events:none;}
.course-hero-inner{display:grid;grid-template-columns:1fr 380px;gap:4rem;align-items:start;position:relative;z-index:1;}
.course-hero-cats{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap;}
.course-hero-title{font-family:'Outfit',sans-serif;font-weight:800;font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.04em;line-height:1.05;margin-bottom:1rem;}
.course-hero-desc{font-size:.88rem;color:var(--t70);line-height:1.8;max-width:540px;margin-bottom:1.5rem;}
.course-meta-row{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;font-size:.78rem;color:var(--t70);margin-bottom:1.5rem;}
.course-instructor-row{display:flex;align-items:center;gap:.75rem;font-size:.8rem;color:var(--t70);padding:.875rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:1.5rem;flex-wrap:wrap;}
.instructor-av{width:36px;height:36px;border-radius:50%;background:var(--orange-dim);border:1.5px solid rgba(255,107,0,.3);overflow:hidden;flex-shrink:0;}
.instructor-av img{width:100%;height:100%;object-fit:cover;}

/* ── TABS ── */
.course-tabs{display:flex;gap:0;border-top:1px solid var(--border);}
.course-tab{padding:.875rem 1.25rem;font-size:.8rem;font-weight:600;color:var(--t40);border-bottom:2px solid transparent;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast);white-space:nowrap;background:none;border-left:none;border-right:none;border-top:none;}
.course-tab:hover{color:var(--t70);}
.course-tab.active{color:var(--orange);border-bottom-color:var(--orange);}
.tab-content{display:none;}
.tab-content.active{display:block;}

/* ── STICKY CARD ── */
.course-sticky{position:sticky;top:74px;background:#FFFFFF;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-lg);}
.course-preview-thumb{height:180px;background:linear-gradient(135deg,var(--bg2),var(--bg1));display:flex;align-items:center;justify-content:center;font-size:4rem;position:relative;cursor:pointer;overflow:hidden;border-bottom:1px solid var(--border);}
.course-preview-thumb img{width:100%;height:100%;object-fit:cover;}
.play-btn{position:absolute;width:56px;height:56px;border-radius:50%;background:rgba(255,107,0,.9);display:flex;align-items:center;justify-content:center;font-size:1.4rem;transition:transform var(--t-mid),background var(--t-mid);border:none;color:#fff;}
.play-btn:hover{transform:scale(1.1);background:var(--orange);}
.course-sticky-body{padding:1.5rem;}
.course-sticky-price{display:flex;align-items:baseline;gap:.5rem;margin-bottom:1rem;}
.sticky-price{font-family:'Outfit',sans-serif;font-weight:800;font-size:2rem;color:var(--orange);}
.sticky-price-old{font-size:.85rem;color:var(--t20);text-decoration:line-through;}
.sticky-cta{margin-bottom:1rem;}
.sticky-features{display:flex;flex-direction:column;gap:.55rem;margin:1.25rem 0;font-size:.78rem;color:var(--t70);}
.sticky-feat{display:flex;align-items:center;gap:.5rem;}
.sticky-feat::before{content:'✓';color:var(--vert);font-weight:700;flex-shrink:0;}
.sticky-guarantee{font-size:.68rem;color:var(--t40);text-align:center;margin-top:.875rem;line-height:1.5;}

/* ── COURSE MAIN ── */
.course-main{padding:3rem 0;}
.course-layout{display:grid;grid-template-columns:1fr 380px;gap:4rem;align-items:start;}
.content-block{margin-bottom:2.5rem;}
.content-block h3{font-family:'Outfit',sans-serif;font-weight:700;font-size:1.1rem;letter-spacing:-.01em;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);}
.learn-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .75rem;}
.learn-item{display:flex;align-items:flex-start;gap:.5rem;font-size:.78rem;color:var(--t70);padding:.35rem 0;}
.learn-item::before{content:'✓';color:var(--vert);font-weight:700;flex-shrink:0;margin-top:.05rem;}
.req-list{display:flex;flex-direction:column;gap:.5rem;}
.req-item{display:flex;align-items:flex-start;gap:.5rem;font-size:.78rem;color:var(--t70);}
.req-item::before{content:'→';color:var(--orange);flex-shrink:0;}

/* ── CURRICULUM ── */
.section-block{background:#FFFFFF;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;margin-bottom:.75rem;box-shadow:var(--shadow-card);}
.section-block-header{padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:background var(--t-fast);}
.section-block-header:hover{background:#EDEAF8;}
.section-block-title{font-family:'Outfit',sans-serif;font-weight:700;font-size:.88rem;display:flex;align-items:center;gap:.6rem;}
.section-block-meta{font-size:.65rem;color:var(--t40);margin-top:.2rem;}
.curriculum-lesson-item{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.25rem;border-top:1px solid var(--border);font-size:.78rem;color:var(--t70);transition:background var(--t-fast);}
.curriculum-lesson-item:hover{background:#EDEAF8;}
.curriculum-lesson-ico{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.72rem;flex-shrink:0;}
.curriculum-lesson-ico.play{background:var(--orange-dim);color:var(--orange-text);}
.curriculum-lesson-ico.doc{background:var(--violet-dim);color:var(--violet-text);}
.curriculum-lesson-ico.quiz{background:var(--vert-dim);color:var(--vert-text);}
.curriculum-lesson-ico.lock{background:#EDEAF8;color:var(--t20);}

/* ── ARCHIVE FILTERS ── */
.archive-hero{background:linear-gradient(135deg,var(--bg1),var(--bg2));border-bottom:1px solid var(--border);position:relative;overflow:hidden;}
.archive-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(123,92,240,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(123,92,240,.05) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;}
.courses-filters-bar{background:#F5F4FB;border-bottom:1px solid var(--border);padding:.875rem 0;position:sticky;top:58px;z-index:100;backdrop-filter:blur(12px);}
.courses-filters{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;}
.filter-search{position:relative;flex:1;min-width:200px;}
.filter-input{background:#FFFFFF;border:1px solid var(--border-mid);border-radius:var(--r-md);color:var(--t100);font-family:'Space Grotesk',sans-serif;font-size:.82rem;padding:.6rem .875rem .6rem 2.25rem;outline:none;width:100%;transition:border-color var(--t-fast);}
.filter-input:focus{border-color:var(--orange);}
.filter-search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--t40);font-size:.85rem;pointer-events:none;}
.filter-select-wrap{min-width:160px;}
.filter-select{background:#FFFFFF;border:1px solid var(--border-mid);border-radius:var(--r-md);color:var(--t100);font-family:'Space Grotesk',sans-serif;font-size:.82rem;padding:.6rem 2rem .6rem .875rem;outline:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239299b0' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;cursor:pointer;width:100%;transition:border-color var(--t-fast);}
.filter-select:focus{border-color:var(--orange);}
.courses-grid{margin-bottom:3rem;}
.courses-pagination .nav-links{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;}
.courses-pagination .page-numbers{padding:.5rem .875rem;border-radius:var(--r-md);background:#FFFFFF;border:1px solid var(--border);color:var(--t40);font-size:.8rem;transition:all var(--t-fast);box-shadow:var(--shadow-sm);}
.courses-pagination .page-numbers:hover,.courses-pagination .page-numbers.current{background:var(--orange);color:#FFFFFF;border-color:var(--orange);}
.courses-empty{text-align:center;padding:5rem 2rem;}
.courses-empty-icon{font-size:4rem;margin-bottom:1rem;}

/* ── SINGLE POST ── */
.single-post{padding:3rem 0;}
.single-post-inner{display:grid;grid-template-columns:1fr 300px;gap:4rem;}
.single-post-header{margin-bottom:2rem;}
.single-post-title{font-family:'Outfit',sans-serif;font-weight:800;font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.04em;line-height:1.1;margin:.75rem 0 1rem;}
.single-post-meta{display:flex;gap:.75rem;font-size:.72rem;color:var(--t40);flex-wrap:wrap;}
.single-post-thumb{border-radius:var(--r-xl);overflow:hidden;margin:1.5rem 0;}
.single-post-thumb img{width:100%;aspect-ratio:16/9;object-fit:cover;}
.post-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border);}
.single-post-sidebar{position:sticky;top:80px;}

/* ── FOOTER ── */
.site-footer{background:#F5F4FB;border-top:1px solid var(--border);padding:4rem 0 2rem;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem;}
.footer-brand-desc{font-size:.8rem;color:var(--t40);line-height:1.75;margin-top:1rem;max-width:260px;}
.footer-socials{display:flex;gap:.5rem;margin-top:1.25rem;}
.social-btn{width:34px;height:34px;border-radius:var(--r-md);background:#FFFFFF;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--t40);transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast);box-shadow:var(--shadow-sm);}
.social-btn:hover{background:#EDEAF8;border-color:var(--border-mid);color:var(--orange);}
.footer-col-title{font-family:'Outfit',sans-serif;font-weight:700;font-size:.82rem;margin-bottom:1rem;}
.footer-links{display:flex;flex-direction:column;gap:.5rem;}
.footer-links a,.footer-links li a{font-size:.78rem;color:var(--t40);transition:color var(--t-fast);}
.footer-links a:hover,.footer-links li a:hover{color:var(--orange);}
.footer-contact-info{margin-top:1rem;font-size:.75rem;color:var(--t40);line-height:1.8;}
.footer-contact-info a{color:var(--t40);transition:color var(--t-fast);}
.footer-contact-info a:hover{color:var(--orange);}
.footer-bottom{border-top:1px solid var(--border);padding-top:1.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.68rem;color:var(--t20);flex-wrap:wrap;gap:.5rem;}
.footer-copy a{color:var(--t40);transition:color var(--t-fast);}
.footer-copy a:hover{color:var(--orange);}
.footer-jp{font-family:'Noto Sans JP',sans-serif;color:rgba(123,92,240,.35);font-size:.55rem;letter-spacing:.3em;}
.footer-legal,.footer-legal-links ul{display:flex;flex-direction:row;gap:1rem;}
.footer-legal li a,.footer-legal-links li a{font-size:.65rem;color:var(--t20);transition:color var(--t-fast);}
.footer-legal li a:hover,.footer-legal-links li a:hover{color:var(--t70);}

/* ── WIDGET SIDEBAR ── */
.widget{background:#FFFFFF;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;margin-bottom:1.25rem;box-shadow:var(--shadow-card);}
.widget-title{font-family:'Outfit',sans-serif;font-weight:700;font-size:.82rem;padding:.875rem 1.1rem;border-bottom:1px solid var(--border);margin:0;}
.widget > *:not(.widget-title){padding:1rem 1.1rem;}

/* ── PAGE HERO ── */
.page-hero{background:#F5F4FB;border-bottom:1px solid var(--border);padding:4rem 0 3rem;margin-top:58px;}

/* ── SKIP LINK ── */
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:var(--orange);color:#07070f;padding:.5rem 1rem;border-radius:var(--r-md);z-index:9999;font-weight:600;}

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .course-hero-inner,.course-layout{grid-template-columns:1fr;}
  .course-sticky{position:relative;top:0;margin-bottom:2rem;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem;}
  .single-post-inner{grid-template-columns:1fr;}
}
@media(max-width:900px){
  .hero{padding:4rem 0 3rem;}
  .hero-inner{grid-template-columns:1fr !important;gap:2rem;}
  .hero-image{display:none;}
  .nav-links{display:none;}
  .nav-hamburger{display:flex;}
  .grid-2,.grid-3,.grid-4,.cat-grid,.testi-grid,.testi-grid--2{grid-template-columns:1fr !important;}
  .blog-grid{grid-template-columns:1fr;}
  .about-grid{grid-template-columns:1fr;gap:2rem;}
  .stats-inner{gap:1rem;}
  .stat-sep{display:none;}
  .section{padding:3rem 0;}
  .section-header{flex-direction:column;align-items:flex-start;margin-bottom:2rem;}
  .learn-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;text-align:center;}
}
@media(max-width:600px){
  .container{padding:0 1.25rem;}
  .hero-title{font-size:2.4rem;}
  .hero-ctas{flex-direction:column;}
  .cat-grid{grid-template-columns:1fr 1fr;}
}

/* ── HERO INNER (le container devient le grid) ── */
.hero-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 4rem;
    position: relative;
    z-index: 2;
}
.hero-inner--no-image {
    grid-template-columns: 1fr;
}
.hero-inner--no-image .hero-content {
    max-width: 680px;
}
.hero-content { position:relative; z-index:2; }

/* Image hero */
.hero-image { position:relative; z-index:2; display:flex; align-items:center; justify-content:center; }
.hero-image img { width:100%; border-radius:16px; box-shadow:0 12px 40px rgba(26,16,53,.12); object-fit:cover; aspect-ratio:4/3; display:block; }
.hero-image-frame { position:relative; width:100%; }
.hero-image-frame::before { content:''; position:absolute; inset:-8px; border-radius:20px; background:linear-gradient(135deg,var(--violet-dim),var(--orange-dim)); z-index:-1; }
