/* ============================================================
   MATRIZ CURRICULAR · Odontologia
============================================================ */
.lp-matriz{
  --mc-gold:#C49A20;
  --mc-cream:#faf8f3;
  --mc-cream-2:#ece4d4;
  --mc-ink:#111;
  --mc-muted:#666;
  --mc-line:#d8d2c4;
  --mc-line-strong:rgba(12,12,12,.22);
  padding:96px 0 120px;
  background:var(--mc-cream);
  color:var(--mc-ink);
  font-family:'Inter',sans-serif;
}
.lp-matriz *{box-sizing:border-box}
.lp-matriz-inner{ max-width:1180px; margin:0 auto; padding:0 32px; }

.lp-matriz-head h2{
  font-family:'Playfair Display',serif;
  font-weight:500;
  font-size:clamp(40px,5vw,68px);
  letter-spacing:-.01em;
  line-height:1.05;
  margin:0;
}
.lp-matriz-head h2 em{ font-style:italic; }
.lp-matriz-head .rule{ height:1px; background:var(--mc-line); margin:32px 0 64px; }

/* timeline */
.lp-matriz-timeline{
  position:relative;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:1fr;
  gap:0;
  margin:0 auto 48px;
  max-width:980px;
}
.lp-matriz-timeline::before{
  content:""; position:absolute;
  left:10%; right:10%;
  top:38px; height:1px;
  background:var(--mc-line-strong);
  z-index:0;
}
.lp-matriz-step{
  position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:center;
  background:transparent; border:0; padding:0;
  cursor:pointer; font-family:inherit; color:inherit;
}
.lp-matriz-bullet{
  width:60px; height:60px; border-radius:50%;
  border:1px solid var(--mc-line-strong);
  background:var(--mc-cream);
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif;
  font-style:italic; font-size:20px;
  color:var(--mc-gold);
  transition:all .35s cubic-bezier(.2,.7,.2,1);
}
.lp-matriz-step:hover .lp-matriz-bullet{
  background:var(--mc-ink); border-color:var(--mc-ink);
  transform:translateY(-3px);
}
.lp-matriz-step.is-active .lp-matriz-bullet{
  background:var(--mc-ink); border-color:var(--mc-ink);
}
.lp-matriz-semestre{
  margin-top:18px;
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.18em; font-size:12px;
  color:var(--mc-muted);
}
.lp-matriz-fase{
  margin-top:6px;
  font-family:'Playfair Display',serif;
  font-size:17px; line-height:1.3;
  color:var(--mc-ink);
  text-align:center; max-width:140px;
}

/* preview da fase ativa */
.lp-matriz-detail{
  background:var(--mc-cream-2);
  padding:44px 56px;
  cursor:pointer;
  transition:background .3s ease, transform .3s ease, box-shadow .3s ease;
}
.lp-matriz-detail:hover{
  background:#ece8da;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(0,0,0,.07);
}
.lp-matriz-detail-eyebrow{
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.22em; font-size:12px;
  color:var(--mc-muted); margin:0 0 12px;
}
.lp-matriz-detail-title{
  display:flex; align-items:baseline; gap:18px; margin:0;
  font-family:'Playfair Display',serif;
  font-weight:500;
  font-size:clamp(28px,3vw,40px);
  line-height:1.1;
}
.lp-matriz-detail-title .num{
  font-style:italic; color:var(--mc-gold); font-size:.85em;
}
.lp-matriz-detail-title em{ font-style:italic; }
.lp-matriz-detail-rule{ height:1px; background:var(--mc-line); margin:24px 0 22px; }
.lp-matriz-detail-list{
  font-family:'Inter',sans-serif;
  font-size:15px; color:#333;
  line-height:1.8; margin:0;
  word-break:break-word; overflow-wrap:anywhere;
}
.lp-matriz-detail-list span{ display:inline-block; }
.lp-matriz-detail-list .sep{
  color:var(--mc-gold); margin:0 10px; opacity:.7;
}
.lp-matriz-detail-foot{
  display:flex; justify-content:flex-end; flex-wrap:wrap;
  gap:12px;
  margin-top:24px; padding-top:22px;
  border-top:1px solid var(--mc-line);
}
.lp-matriz-detail-link{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.2em; font-size:12px;
  color:var(--mc-ink); text-decoration:none;
  border:0; border-bottom:1px solid var(--mc-ink);
  padding:0 0 4px; cursor:pointer; background:transparent;
  transition:all .25s ease;
  max-width:100%; text-align:left; white-space:normal; line-height:1.5;
}
.lp-matriz-detail-link svg{ flex-shrink:0; }
.lp-matriz-detail-link:hover{ color:var(--mc-gold); border-bottom-color:var(--mc-gold); }
.lp-matriz-detail-link svg{ width:14px; height:14px; transition:transform .25s ease; }
.lp-matriz-detail-link:hover svg{ transform:translateX(4px); }

/* CTA download */
.lp-matriz-cta{ display:flex; justify-content:center; margin-top:64px; }
.lp-matriz-cta a{
  display:inline-flex; align-items:center; gap:12px;
  border:1px solid var(--mc-ink); background:transparent;
  padding:16px 28px;
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.18em; font-size:13px;
  color:var(--mc-ink); text-decoration:none;
  transition:all .25s ease;
}
.lp-matriz-cta a:hover{ background:var(--mc-ink); color:var(--mc-gold); }


/* ============================================================
   MODAL
============================================================ */
.matriz-modal{
  position:fixed; inset:0; z-index:200;
  display:none; align-items:flex-start; justify-content:center;
  padding:48px 20px; overflow-y:auto;
  --mc-gold:#C49A20;
  --mc-cream:#faf8f3;
  --mc-cream-2:#f1ede2;
  --mc-ink:#0c0c0c;
  --mc-muted:#6e6a60;
  --mc-line:rgba(12,12,12,.12);
  --mc-line-strong:rgba(12,12,12,.22);
  font-family:'Inter',sans-serif;
  color:var(--mc-ink);
}
.matriz-modal.is-open{ display:flex; }
.matriz-modal-backdrop{
  position:fixed; inset:0;
  background:rgba(12,12,12,.62);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  animation:mcFadeIn .35s ease;
}
.matriz-modal-panel{
  position:relative; z-index:1;
  width:100%; max-width:1080px;
  background:var(--mc-cream);
  border:1px solid var(--mc-line);
  box-shadow:0 30px 80px rgba(0,0,0,.25);
  animation:mcSlideUp .45s cubic-bezier(.2,.7,.2,1);
}
@keyframes mcFadeIn{ from{opacity:0} to{opacity:1} }
@keyframes mcSlideUp{
  from{opacity:0; transform:translateY(24px)}
  to{opacity:1; transform:translateY(0)}
}
.matriz-modal-close{
  position:absolute; top:18px; right:18px;
  background:none;
  border:1px solid var(--mc-ink);
  color:var(--mc-ink);
  cursor:pointer;
  padding:10px 20px;
  font-family:'Bebas Neue',sans-serif; font-size:14px; letter-spacing:1.5px; text-transform:uppercase;
  display:flex; align-items:center; gap:10px;
  transition:all .2s; z-index:2;
}
.matriz-modal-close:hover{ background:var(--mc-ink); color:var(--mc-cream); border-color:var(--mc-ink); }
.matriz-modal-close svg{ width:14px; height:14px; stroke:currentColor; transition:transform .3s cubic-bezier(.16,1,.3,1); }
.matriz-modal-close:hover svg{ transform:rotate(90deg); }

.matriz-modal-header{
  padding:56px 56px 32px;
  border-bottom:1px solid var(--mc-line);
  background:linear-gradient(180deg,#f3eedf 0%,var(--mc-cream) 100%);
}
.matriz-modal-eyebrow{
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.22em; font-size:12px;
  color:var(--mc-gold); margin:0 0 14px;
}
.matriz-modal-title{
  display:flex; align-items:baseline; gap:24px; margin:0;
  font-family:'Playfair Display',serif;
  font-weight:500;
  font-size:clamp(32px,4vw,52px);
  line-height:1.05; letter-spacing:-.01em;
}
.matriz-modal-title .num{ font-style:italic; color:var(--mc-gold); font-size:.7em; }
.matriz-modal-title em{ font-style:italic; }
.matriz-modal-meta{
  margin-top:20px;
  display:flex; gap:32px; flex-wrap:wrap;
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.18em; font-size:12px; color:var(--mc-muted);
}
.matriz-modal-meta strong{ color:var(--mc-ink); font-weight:500; }

.matriz-modal-body{ padding:0 56px 56px; }
.matriz-table-wrap{ overflow-x:auto; }
table.matriz-table{
  width:100%; border-collapse:collapse;
  margin-top:32px;
  font-family:'Inter',sans-serif; font-size:14px;
}
.matriz-table thead th{
  text-align:left; padding:20px 16px;
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.18em; font-size:11px; color:var(--mc-ink);
  border-bottom:1.5px solid var(--mc-ink); white-space:nowrap;
}
.matriz-table thead th.num,
.matriz-table tbody td.num{ text-align:center; }
.matriz-table tbody tr{ border-bottom:1px solid var(--mc-line); }
.matriz-table tbody tr:nth-child(even){ background:var(--mc-cream-2); }
.matriz-table tbody td{ padding:18px 16px; vertical-align:middle; }
.matriz-table tbody td.periodo{
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.18em; font-size:12px;
  color:var(--mc-muted); white-space:nowrap; width:140px;
}
.matriz-table tbody td.disciplina{
  font-family:'Playfair Display',serif;
  font-size:16px; line-height:1.35;
}
.matriz-table tbody td.num{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:600; font-size:18px; width:90px;
}
.matriz-table tfoot td{
  padding:22px 16px;
  border-top:1.5px solid var(--mc-ink);
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.18em; font-size:12px;
}
.matriz-table tfoot td.num{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:600; font-size:20px; color:var(--mc-ink);
}

.matriz-modal-nav{
  margin-top:32px; padding-top:28px;
  border-top:1px solid var(--mc-line);
  display:flex; justify-content:space-between; gap:16px;
}
.matriz-modal-nav button{
  background:transparent;
  border:1px solid var(--mc-line-strong);
  padding:14px 22px;
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:.18em; font-size:12px; color:var(--mc-ink);
  cursor:pointer;
  display:inline-flex; align-items:center; gap:10px;
  transition:all .25s;
}
.matriz-modal-nav button:hover:not(:disabled){
  background:var(--mc-ink); color:var(--mc-gold); border-color:var(--mc-ink);
}
.matriz-modal-nav button:disabled{ opacity:.35; cursor:not-allowed; }

@media (max-width:780px){
  .lp-matriz{ padding:64px 0 80px; }
  .lp-matriz-inner{ padding:0 20px; }
  .lp-matriz-bullet{ width:54px; height:54px; font-size:18px; }
  .lp-matriz-timeline::before{ top:27px; }
  .lp-matriz-fase{ font-size:13px; max-width:110px; }
  .lp-matriz-semestre{ font-size:10px; }
  .lp-matriz-detail{ padding:28px 22px; }
  .lp-matriz-detail-list{ font-size:14px; line-height:1.75; }
  .lp-matriz-detail-list .sep{ margin:0 6px; }
  .lp-matriz-detail-foot{ justify-content:flex-start; }
  .lp-matriz-detail-link{ font-size:11px; letter-spacing:.14em; }

  .matriz-modal{ padding:16px 12px; align-items:flex-start; }
  .matriz-modal-panel{ max-width:100%; width:100%; }
  .matriz-modal-close{ top:12px; right:12px; width:36px; height:36px; }
  .matriz-modal-header{
    padding:36px 20px 20px;
    background:linear-gradient(180deg,#f3eedf 0%,var(--mc-cream) 100%);
  }
  .matriz-modal-eyebrow{ font-size:11px; margin:0 0 10px; padding-right:42px; }
  .matriz-modal-title{
    flex-wrap:wrap; gap:10px;
    font-size:clamp(22px,6.4vw,30px);
    line-height:1.1;
    word-break:break-word;
  }
  .matriz-modal-title .num{ font-size:.85em; }
  .matriz-modal-meta{
    margin-top:14px; gap:14px 20px;
    font-size:11px;
  }
  .matriz-modal-body{ padding:0 20px 24px; }
  .matriz-table-wrap{ padding:0; overflow-x:visible; }
  .matriz-table{ margin-top:16px; font-size:13px; display:block; }
  .matriz-table tbody{ display:block; }
  .matriz-table colgroup{ display:none; }
  .matriz-table thead{ display:none; }

  .matriz-table tbody tr{
    display:grid !important;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    grid-template-areas:
      "p p p p p"
      "d d d d d"
      "ch t pr e x";
    gap:6px 8px;
    width:100% !important;
    padding:16px 0;
    border-bottom:1px solid var(--mc-line);
    background:transparent !important;
  }
  .matriz-table tbody tr:nth-child(even){ background:transparent !important; }
  .matriz-table tbody td{
    display:block; width:auto !important;
    padding:0 !important; text-align:left !important;
    white-space:normal; word-break:break-word;
  }
  .matriz-table tbody td.periodo{
    grid-area:p; font-size:10.5px; letter-spacing:.18em;
    color:var(--mc-muted); margin-bottom:2px;
  }
  .matriz-table tbody td.disciplina{
    grid-area:d; font-size:15px; line-height:1.3;
    margin-bottom:6px; color:var(--mc-ink);
  }
  .matriz-table tbody td.num{
    background:var(--mc-cream-2);
    padding:8px 6px !important;
    text-align:center !important;
    font-size:15px;
    font-family:'Barlow Condensed',sans-serif; font-weight:600;
    color:var(--mc-ink);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    line-height:1; gap:2px;
    min-width:0;
  }
  .matriz-table tbody td:nth-child(3){ grid-area:ch; }
  .matriz-table tbody td:nth-child(4){ grid-area:t;  }
  .matriz-table tbody td:nth-child(5){ grid-area:pr; }
  .matriz-table tbody td:nth-child(6){ grid-area:e;  }
  .matriz-table tbody td:nth-child(7){ grid-area:x;  }
  .matriz-table tbody td.num::before{
    content:attr(data-label);
    font-family:'Bebas Neue',sans-serif;
    letter-spacing:.1em; font-size:9px;
    color:var(--mc-muted); font-weight:400;
    display:block;
  }

  .matriz-table tfoot{ display:block; }
  .matriz-table tfoot tr{
    display:grid !important;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    grid-template-areas:
      "tt tt tt tt tt"
      "ch t pr e x";
    gap:6px 8px;
    padding:18px 0 0;
    border-top:1.5px solid var(--mc-ink);
  }
  .matriz-table tfoot td{
    display:block; padding:0 !important;
    font-size:11px; border-top:none;
    text-align:left;
  }
  .matriz-table tfoot td:first-child{
    grid-area:tt;
    font-family:'Bebas Neue',sans-serif;
    letter-spacing:.18em; color:var(--mc-ink);
    margin-bottom:4px;
  }
  .matriz-table tfoot td.num{
    background:var(--mc-ink); color:var(--mc-cream);
    padding:8px 6px !important;
    font-family:'Barlow Condensed',sans-serif; font-weight:600;
    font-size:15px; line-height:1; text-align:center !important;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:2px; min-width:0;
  }
  .matriz-table tfoot td.num#totalCH{ grid-area:ch; }
  .matriz-table tfoot td.num#totalT { grid-area:t;  }
  .matriz-table tfoot td.num#totalP { grid-area:pr; }
  .matriz-table tfoot td.num#totalE { grid-area:e;  }
  .matriz-table tfoot td.num#totalX { grid-area:x;  }
  .matriz-table tfoot td.num#totalCH::before{ content:"CH"; }
  .matriz-table tfoot td.num#totalT::before { content:"Teórico"; }
  .matriz-table tfoot td.num#totalP::before { content:"Prático"; }
  .matriz-table tfoot td.num#totalE::before { content:"Estágio"; }
  .matriz-table tfoot td.num#totalX::before { content:"Extensão"; }
  .matriz-table tfoot td.num::before{
    font-family:'Bebas Neue',sans-serif;
    letter-spacing:.1em; font-size:9px;
    color:rgba(250,248,243,.7); font-weight:400;
    display:block;
  }
  .matriz-modal-nav{ flex-direction:column; padding-top:20px; }
  .matriz-modal-nav button{ justify-content:center; padding:12px 18px; width:100%; }
}

@media (max-width:480px){
  .lp-matriz-timeline{ gap:4px; }
  .lp-matriz-bullet{ width:46px; height:46px; font-size:15px; }
  .lp-matriz-timeline::before{ top:23px; }
  .lp-matriz-fase{ font-size:11px; max-width:80px; line-height:1.2; }
  .lp-matriz-semestre{ font-size:9px; margin-top:12px; }
  .lp-matriz-detail{ padding:22px 18px; }
  .lp-matriz-detail-title{ flex-wrap:wrap; gap:10px; font-size:24px; }
  .lp-matriz-cta a{ padding:14px 18px; font-size:11px; letter-spacing:.14em; }
  .matriz-modal{ padding:8px 4px; }
  .matriz-modal-header{ padding:32px 16px 18px; }
  .matriz-modal-body{ padding:0 16px 20px; }
}

/* tabela rola horizontalmente quando precisar (tablet/landscape pequeno) */
@media (min-width:781px) and (max-width:1024px){
  .matriz-modal-panel{ max-width:94vw; }
  .matriz-modal-header{ padding:48px 32px 28px; }
  .matriz-modal-body{ padding:0 32px 40px; }
}
