@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,600;0,700;0,900;1,300&display=swap');

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --v:#0D2B1A;--vm:#1A4D2E;--vl:#2E7D52;
  --o:#D4A017;--ol:#F0C040;
  --cr:#F8F4ED;--crd:#EDE5D4;
  --b:#FFFFFF;--txt:#1A1A1A;--txg:#5A5A5A;
  --pur:#6B21A8;--pur-l:#9333EA;--pur-xl:#C084FC;--pur-bg:#F5F3FF;
}
html{scroll-behavior:smooth;}
body{font-family:'Poppins',sans-serif;background:#F0EDE8;color:var(--txt);min-height:100vh;}

/* ── NAV ── */
.nav{background:var(--v);display:flex;align-items:center;gap:12px;padding:0 20px;height:54px;position:sticky;top:0;z-index:200;box-shadow:0 1px 0 rgba(255,255,255,.06),0 4px 24px rgba(0,0,0,.5);}
.nav-logo{color:var(--ol);font-weight:900;font-size:14px;text-decoration:none;white-space:nowrap;letter-spacing:.5px;flex-shrink:0;}
.nav-logo span{color:rgba(255,255,255,.5);font-weight:300;}
.nav-select{background:rgba(255,255,255,.07);color:var(--b);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:6px 10px;font-family:'Poppins',sans-serif;font-size:11px;font-weight:600;cursor:pointer;outline:none;flex:1;min-width:0;max-width:200px;}
.nav-select:focus{border-color:var(--ol);}
.nav-select option{background:#1a3d28;color:#fff;}
.nav-link{color:rgba(255,255,255,.6);text-decoration:none;font-size:11px;font-weight:600;padding:5px 12px;border-radius:6px;white-space:nowrap;transition:all .18s;flex-shrink:0;}
.nav-link:hover,.nav-link.active{background:var(--o);color:var(--v);}

/* ── PAGE HEADER ── */
.page-header{background:linear-gradient(135deg,var(--v) 0%,var(--vm) 60%,var(--vl) 100%);padding:32px 32px 28px;position:relative;overflow:hidden;}
.page-header::after{content:'';position:absolute;right:-40px;top:-40px;width:220px;height:220px;border:3px solid rgba(212,160,23,.2);border-radius:50%;}
.page-header::before{content:'';position:absolute;right:40px;top:10px;width:120px;height:120px;border:2px solid rgba(212,160,23,.1);border-radius:50%;}
.ph-label{color:var(--ol);font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;margin-bottom:6px;}
.ph-name{color:var(--b);font-size:30px;font-weight:900;letter-spacing:1px;line-height:1.1;}
.ph-meta{position:absolute;top:28px;right:32px;text-align:right;}
.ph-curso{color:var(--ol);font-size:12px;font-weight:700;letter-spacing:1px;}
.ph-year{color:rgba(255,255,255,.6);font-size:12px;margin-top:2px;}

.teacher-header{background:linear-gradient(135deg,var(--o) 0%,var(--ol) 100%);}
.teacher-header .ph-label,.teacher-header .ph-name,.teacher-header .ph-curso{color:var(--v);}
.teacher-header .ph-year{color:rgba(26,61,40,.6);}

/* ── BODY WRAP ── */
.page-body{max-width:1000px;margin:0 auto;padding:32px 24px;}

/* ── ANTES/DESPUÉS ── */
.ad-section{display:grid;grid-template-columns:1fr 72px 1fr;align-items:center;gap:0;margin-bottom:36px;}
.foto-col{display:flex;flex-direction:column;align-items:center;gap:12px;}
.foto-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 20px;border-radius:30px;font-weight:700;font-size:11px;letter-spacing:2px;color:var(--b);}
.foto-tag.antes{background:var(--v);}
.foto-tag.despues{background:linear-gradient(90deg,var(--o),var(--ol));}
.foto-main{width:100%;max-width:300px;aspect-ratio:3/4;object-fit:cover;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.2);cursor:pointer;transition:transform .25s,box-shadow .25s;}
.foto-main:hover{transform:scale(1.03);box-shadow:0 16px 48px rgba(0,0,0,.3);}
.foto-placeholder{width:100%;max-width:300px;aspect-ratio:3/4;background:var(--crd);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--txg);font-size:13px;}
.foto-caption{text-align:center;}
.foto-caption strong{display:block;color:var(--v);font-size:12px;font-weight:700;}
.foto-caption span{font-size:11px;color:var(--txg);}
.arrow-col{display:flex;align-items:center;justify-content:center;}
.arrow-col svg{filter:drop-shadow(0 2px 4px rgba(212,160,23,.4));}

/* ── GALERÍA DESPUÉS (edit mode) ── */
.gallery-section{width:100%;max-width:300px;}
.gallery-strip{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:8px;}
.gallery-strip .thumb-wrap{position:relative;width:56px;height:56px;border-radius:8px;overflow:hidden;cursor:pointer;}
.gallery-strip .thumb-wrap img{width:100%;height:100%;object-fit:cover;border:2px solid transparent;transition:border-color .2s,opacity .2s;}
.gallery-strip .thumb-wrap img.active{border-color:var(--ol);}
.gallery-strip .thumb-wrap img.marked-delete{opacity:.4;border-color:#e74c3c!important;}
.gallery-strip .thumb-wrap .del-mark{display:none;position:absolute;top:2px;right:2px;background:#e74c3c;color:#fff;border-radius:50%;width:18px;height:18px;font-size:11px;line-height:18px;text-align:center;font-weight:700;}
.edit-mode .thumb-wrap .del-mark{display:block;}
.gallery-controls{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;justify-content:center;}
.btn-sm{padding:6px 14px;border-radius:20px;font-size:11px;font-weight:700;cursor:pointer;border:none;font-family:'Poppins',sans-serif;transition:all .2s;}
.btn-edit{background:var(--crd);color:var(--v);}
.btn-edit:hover{background:var(--vl);color:var(--b);}
.btn-delete{background:#e74c3c;color:#fff;}
.btn-delete:hover{background:#c0392b;}
.btn-cancel{background:var(--crd);color:var(--txg);}

/* ── ME DESCRIBEN ── */
.describen-card{background:var(--b);border-radius:20px;padding:28px;margin-bottom:28px;box-shadow:0 2px 20px rgba(0,0,0,.06);border:1px solid rgba(212,160,23,.2);}
.describen-card h2{text-align:center;color:var(--v);font-size:13px;font-weight:700;letter-spacing:3px;margin-bottom:6px;}
.describen-divider{width:60px;height:3px;background:linear-gradient(90deg,var(--o),var(--ol));margin:0 auto 20px;border-radius:2px;}
.describen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 16px;}
.di{display:flex;flex-direction:column;gap:4px;}
.di label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--v);}
.di label::before{content:'';width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--o),var(--ol));flex-shrink:0;}
.di input{border:none;border-bottom:2px solid var(--crd);padding:4px 0;font-size:12px;color:var(--txt);background:transparent;outline:none;font-family:'Poppins',sans-serif;transition:border-color .2s;}
.di input:focus{border-bottom-color:var(--o);}

/* ── FRASE ── */
.frase-wrap{text-align:center;margin-bottom:28px;padding:20px;}
.frase-wrap p{color:var(--o);font-style:italic;font-size:15px;font-weight:300;line-height:1.6;}

/* ── FOTO CUERPO ── */
.full-body{display:flex;justify-content:center;margin-bottom:36px;}
.full-body img{max-height:540px;max-width:100%;object-fit:contain;border-radius:16px;box-shadow:0 8px 40px rgba(0,0,0,.15);cursor:pointer;}

/* ── PDF BTN ── */
.btn-pdf{position:fixed;bottom:24px;right:24px;background:linear-gradient(135deg,var(--v),var(--vl));color:var(--b);border:none;padding:14px 24px;border-radius:50px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 20px rgba(0,0,0,.3);z-index:500;display:flex;align-items:center;gap:8px;font-family:'Poppins',sans-serif;transition:transform .2s,box-shadow .2s;}
.btn-pdf:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,0,0,.4);}

/* ── LIGHTBOX ── */
.lightbox{display:none;position:fixed;inset:0;background:#000;z-index:2000;align-items:center;justify-content:center;cursor:zoom-out;}
.lightbox.open{display:flex;}
.lightbox img{width:100vw;height:100vh;object-fit:contain;}
.lb-close{position:absolute;top:16px;right:20px;color:#fff;font-size:36px;cursor:pointer;line-height:1;opacity:.7;transition:opacity .2s;z-index:1;}
.lb-close:hover{opacity:1;}

/* ── COMENTARIOS PROFESORA ── */
.comments-section{background:var(--b);border-radius:20px;padding:28px;margin-bottom:28px;box-shadow:0 2px 20px rgba(0,0,0,.06);}
.comments-section h2{color:var(--v);font-size:13px;font-weight:700;letter-spacing:3px;margin-bottom:6px;}
.comment-form{display:flex;flex-direction:column;gap:10px;margin-bottom:24px;}
.comment-form input,.comment-form textarea{border:2px solid var(--crd);border-radius:10px;padding:10px 14px;font-size:13px;font-family:'Poppins',sans-serif;outline:none;transition:border-color .2s;}
.comment-form input:focus,.comment-form textarea:focus{border-color:var(--o);}
.comment-form textarea{min-height:90px;resize:vertical;}
.btn-comment{background:linear-gradient(135deg,var(--v),var(--vl));color:var(--b);border:none;padding:10px 24px;border-radius:25px;font-size:13px;font-weight:700;cursor:pointer;font-family:'Poppins',sans-serif;align-self:flex-end;transition:opacity .2s;}
.btn-comment:hover{opacity:.85;}
.comments-list{display:flex;flex-direction:column;gap:14px;}
.comment-card{background:var(--cr);border-radius:12px;padding:14px 16px;border-left:4px solid var(--o);}
.comment-card .cc-author{font-weight:700;color:var(--v);font-size:13px;}
.comment-card .cc-date{font-size:11px;color:var(--txg);margin-bottom:6px;}
.comment-card .cc-text{font-size:13px;color:var(--txt);line-height:1.6;white-space:pre-wrap;}
.comment-card .cc-delete{float:right;background:none;border:none;color:var(--txg);cursor:pointer;font-size:16px;padding:0;line-height:1;}
.comment-card .cc-delete:hover{color:#e74c3c;}

/* ── MOMENTOS ── */
.mom-header{background:linear-gradient(135deg,var(--v) 0%,var(--vl) 100%);padding:40px 32px;text-align:center;}
.mom-header h1{color:var(--b);font-size:36px;font-weight:900;line-height:1.1;}
.mom-header h1 span{color:var(--ol);}
.mom-header p{color:rgba(255,255,255,.6);font-size:13px;margin-top:10px;}
.upload-bar{display:flex;align-items:center;gap:14px;padding:20px 24px;flex-wrap:wrap;}
.upload-btn{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(90deg,var(--o),var(--ol));color:var(--v);padding:10px 22px;border-radius:25px;font-weight:700;font-size:13px;cursor:pointer;font-family:'Poppins',sans-serif;border:none;transition:opacity .2s;}
.upload-btn:hover{opacity:.85;}
.upload-hint{color:var(--txg);font-size:12px;}
.collage{columns:4;column-gap:8px;padding:8px 24px 40px;max-width:1100px;margin:0 auto;}
.collage-item{break-inside:avoid;margin-bottom:8px;border-radius:10px;overflow:hidden;cursor:pointer;position:relative;}
.collage-item img{width:100%;display:block;transition:transform .3s;}
.collage-item:hover img{transform:scale(1.04);}
.collage-item .item-del{display:none;position:absolute;top:6px;right:6px;background:rgba(231,76,60,.9);color:#fff;border:none;border-radius:50%;width:26px;height:26px;font-size:14px;cursor:pointer;align-items:center;justify-content:center;font-weight:700;}
.edit-mode-mom .collage-item .item-del{display:flex;}

/* ── NAV purple link ── */
.nav-link-pur{color:var(--pur-xl)!important;}
.nav-link-pur:hover,.nav-link-pur.active{background:var(--pur-l)!important;color:#fff!important;}

/* ── HERO INDEX ── */
.hero{position:relative;background:linear-gradient(150deg,#061510 0%,var(--v) 40%,var(--vm) 100%);overflow:hidden;padding:48px 24px 36px;}
.hero::after{content:'26';position:absolute;right:-20px;bottom:-20px;font-size:220px;font-weight:900;color:rgba(255,255,255,.03);line-height:1;pointer-events:none;letter-spacing:-10px;}
.hero-eyebrow{color:var(--ol);font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;margin-bottom:12px;opacity:.9;}
.hero h1{color:var(--b);font-size:52px;font-weight:900;line-height:.95;letter-spacing:-2px;}
.hero h1 span{color:var(--ol);}
.hero-sub{color:rgba(255,255,255,.45);font-size:12px;margin-top:12px;font-weight:300;letter-spacing:.5px;}

/* Curso photo grid en el hero */
.curso-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:28px;}
.curso-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;cursor:pointer;transition:transform .3s,opacity .2s;}
.curso-grid img:hover{transform:scale(1.05);opacity:.88;}

.index-section-title{font-size:10px;font-weight:700;letter-spacing:4px;color:var(--txg);text-transform:uppercase;padding:32px 20px 12px;}

/* ── Student name cards (no photo) ── */
.index-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;padding:0 20px 24px;max-width:1100px;margin:0 auto;}
.index-card{background:var(--b);border-radius:12px;overflow:hidden;box-shadow:0 1px 8px rgba(0,0,0,.07);text-decoration:none;display:block;transition:transform .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent;border-top:3px solid var(--vl);}
.index-card:hover,.index-card:active{transform:translateY(-5px);box-shadow:0 12px 32px rgba(0,0,0,.14);border-top-color:var(--o);}
.index-card-name{padding:14px 12px 12px;display:flex;flex-direction:column;gap:2px;min-height:72px;justify-content:center;}
.icn-first{font-size:13px;font-weight:600;color:var(--txt);}
.icn-last{font-size:11px;font-weight:700;color:var(--v);text-transform:uppercase;letter-spacing:.5px;}

/* ── Special cards ── */
.index-specials{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 20px 40px;max-width:1100px;margin:0 auto;}
.special-card{background:linear-gradient(135deg,var(--v) 0%,#0a1f12 100%);border-radius:16px;padding:24px 20px 20px;text-decoration:none;color:var(--b);display:flex;flex-direction:column;gap:6px;transition:transform .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent;border:1px solid rgba(255,255,255,.06);position:relative;overflow:hidden;}
.special-card::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.04) 0%,transparent 60%);pointer-events:none;}
.special-card:hover,.special-card:active{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.3);}
.special-card .sc-icon{font-size:28px;margin-bottom:4px;}
.special-card h3{font-size:14px;font-weight:700;color:var(--ol);}
.special-card p{font-size:11px;color:rgba(255,255,255,.5);}
.special-card-pur{background:linear-gradient(135deg,var(--pur) 0%,#3b0764 100%)!important;}
.special-card-pur h3{color:var(--pur-xl)!important;}

/* ── ALIANZAS PAGE ── */
.ali-header{background:linear-gradient(150deg,#1a0533 0%,var(--pur) 50%,var(--pur-l) 100%);padding:56px 24px 44px;position:relative;overflow:hidden;text-align:center;}
.ali-header::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(192,132,252,.15),transparent 70%);pointer-events:none;}
.ali-header::after{content:'★';position:absolute;right:-20px;top:-20px;font-size:200px;color:rgba(255,255,255,.03);pointer-events:none;}
.ali-header-inner{position:relative;z-index:1;}
.ali-eyebrow{color:var(--pur-xl);font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;margin-bottom:12px;}
.ali-title{color:#fff;font-size:52px;font-weight:900;line-height:.95;letter-spacing:-2px;}
.ali-title span{color:var(--pur-xl);}
.ali-sub{color:rgba(255,255,255,.5);font-size:12px;margin-top:12px;font-weight:300;}
.ali-badge{display:inline-block;margin-top:16px;background:var(--pur-xl);color:var(--pur);font-size:11px;font-weight:900;letter-spacing:3px;padding:6px 20px;border-radius:20px;}
.ali-collage{padding-top:20px!important;}

/* ── PRINT / PDF ── */
@media print{
  @page{size:A4 portrait;margin:0;}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  .nav,.btn-pdf,.upload-bar,.gallery-controls,.comment-form,.lightbox,
  .gallery-section,.frase-wrap,.curso-grid,.index-specials{display:none!important;}
  body{background:#fff;margin:0;padding:0;}

  /* Header */
  .page-header{background:#0D2B1A!important;padding:20px 28px 16px;page-break-after:avoid;}
  .teacher-header{background:#D4A017!important;}
  .ph-label{color:#F0C040!important;font-size:9pt;letter-spacing:3px;}
  .ph-name{color:#fff!important;font-size:22pt;margin-top:4px;}
  .ph-meta{position:absolute;top:20px;right:28px;}
  .ph-curso{color:#F0C040!important;font-size:9pt;}
  .ph-year{color:rgba(255,255,255,.7)!important;font-size:9pt;}

  /* Antes/Después lado a lado */
  .page-body{padding:16px 28px;max-width:100%;}
  .ad-section{display:grid!important;grid-template-columns:1fr 48px 1fr!important;align-items:center;margin-bottom:18px;page-break-inside:avoid;}
  .foto-col{align-items:center;}
  .foto-main{max-width:200px!important;max-height:260px!important;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.2)!important;}
  .foto-tag{font-size:8pt;padding:4px 14px;}
  .foto-tag.antes{background:#0D2B1A!important;color:#fff!important;}
  .foto-tag.despues{background:#D4A017!important;color:#fff!important;}
  .foto-caption strong{color:#0D2B1A!important;font-size:9pt;}
  .foto-caption span{font-size:8pt;}
  .arrow-col svg path{stroke:#D4A017!important;}

  /* Me describen */
  .describen-card{box-shadow:none!important;border:1.5px solid #D4A017!important;border-radius:12px;padding:16px 20px;margin-bottom:14px;page-break-inside:avoid;}
  .describen-card h2{color:#0D2B1A!important;font-size:9pt;}
  .describen-divider{background:#D4A017!important;}
  .describen-grid{grid-template-columns:repeat(3,1fr);gap:12px 10px;}
  .di label{color:#0D2B1A!important;font-size:8.5pt;}
  .di label::before{background:#D4A017!important;}
  .di input{border-bottom:1px solid #ccc!important;font-size:8pt;}

  /* Foto cuerpo */
  .full-body img{max-height:320px;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.15)!important;}

  /* Momentos collage */
  .collage{columns:4!important;padding:12px 20px!important;}
  .collage-item{border-radius:6px!important;margin-bottom:6px!important;}

  /* Index */
  .hero{padding:24px!important;}
  .hero h1{font-size:28pt!important;}
  .index-grid{grid-template-columns:repeat(6,1fr)!important;gap:8px!important;padding:0 20px 20px!important;}
  .index-card{border-top-width:2px!important;}
  .index-card-name{padding:8px 8px!important;min-height:auto!important;}
  .icn-first{font-size:8pt!important;}
  .icn-last{font-size:7pt!important;}
  .index-specials{grid-template-columns:repeat(3,1fr)!important;}
}

/* ── RESPONSIVE MOBILE ── */
@media(max-width:768px){
  .nav{padding:0 12px;gap:8px;height:50px;flex-wrap:nowrap;}
  .nav-logo{font-size:12px;flex-shrink:0;}
  .nav-select{font-size:11px;max-width:none;flex:1;}
  .nav-link{display:none;}  /* links hidden on mobile — use select */

  .page-header{padding:22px 18px 18px;}
  .ph-name{font-size:22px;}
  .ph-meta{top:18px;right:18px;}

  .page-body{padding:20px 16px;}

  .ad-section{display:flex!important;flex-direction:column;align-items:center;gap:20px;margin-bottom:24px;}
  .arrow-col{transform:rotate(90deg);margin:-8px 0;}
  .foto-main{max-width:75vw!important;}
  .foto-placeholder{max-width:75vw!important;}

  .describen-grid{grid-template-columns:1fr 1fr;gap:14px 10px;}

  .curso-grid{grid-template-columns:repeat(2,1fr);gap:4px;}

  .collage{columns:2;padding:8px 14px 28px;}

  .hero{padding:28px 18px 24px;}
  .hero h1{font-size:32px;}
  .hero::after{font-size:100px;}

  .index-grid{grid-template-columns:repeat(3,1fr);gap:8px;padding:0 14px 20px;}
  .index-card-name{padding:10px 10px 10px;}
  .icn-first{font-size:12px;}
  .icn-last{font-size:10px;}

  .index-specials{grid-template-columns:1fr 1fr;gap:10px;padding:0 14px 32px;}
  .index-specials .special-card:last-child{grid-column:1/-1;}

  .ali-title{font-size:36px;}
  .ali-header{padding:36px 18px 28px;}

  .index-section-title{padding:22px 16px 12px;}

  .mom-header{padding:28px 18px;}
  .mom-header h1{font-size:28px;}

  .upload-bar{padding:14px 16px;gap:10px;}

  .comments-section{padding:20px 16px;}
  .describen-card{padding:20px 16px;}

  .btn-pdf{bottom:16px;right:16px;padding:11px 18px;font-size:12px;}

  .gallery-strip .thumb-wrap{width:48px;height:48px;}
}
