/*
Theme Name: Mateo Yáñez | Odontología
Description: Portafolio académico y guía de Morfofunción para Mateo Yáñez. Incluye fotos de la facultad y sección de proyectos editable mediante entradas.
Version: 1.0.0
Author: Librería Chavy
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: mateo-odontologia
*/

:root { color-scheme: light; --ink:#102a3d; --muted:#5f7280; --blue:#456f81; --pale:#e8f1f4; --line:#d9e4e8; --paper:#f7fafb; --white:#fff; }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { margin:0; font-family:Inter, "Segoe UI", Arial, sans-serif; color:var(--ink); background:var(--paper); line-height:1.55; }
    a { color:inherit; text-decoration:none; }
    a:focus-visible { outline:3px solid #5ba7bd; outline-offset:4px; }
    .wrap { width:min(1180px, calc(100% - 48px)); margin:auto; }
    .site-header { position:relative; z-index:3; background:var(--white); border-bottom:1px solid var(--line); }
    .header-inner { min-height:84px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
    .brand { display:flex; align-items:center; gap:12px; white-space:nowrap; }
    .brand-mark { display:block; width:50px; height:50px; flex:none; }
    .brand-copy { display:flex; flex-direction:column; line-height:1.17; gap:5px; }
    .brand-name { font-weight:780; letter-spacing:-.025em; font-size:1.06rem; }
    .brand-discipline { color:#688594; font-size:.69rem; font-weight:750; letter-spacing:.16em; text-transform:uppercase; }
    .nav { display:flex; align-items:center; gap:26px; color:#455b69; font-size:.9rem; font-weight:600; }
    .nav a:hover, .footer-link:hover { color:#167da0; }
    .nav-contact { border:1px solid #abc3cc; padding:10px 17px; border-radius:5px; color:var(--ink); }
    .nav-contact:hover { border-color:var(--blue); }
    .hero { background:var(--ink); color:var(--white); overflow:hidden; }
    .hero-inner { min-height:590px; display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
    .hero-copy { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; padding:80px 7vw 80px 0; }
    .eyebrow { display:flex; align-items:center; gap:13px; text-transform:uppercase; font-size:.73rem; font-weight:750; letter-spacing:.19em; color:#9fc8d7; }
    .eyebrow:before { content:""; display:block; width:32px; height:1px; background:currentColor; }
    h1,h2,h3,p { margin-top:0; }
    h1 { font-family:Georgia, "Times New Roman", serif; font-weight:400; font-size:clamp(3.1rem, 6vw, 5.65rem); line-height:1.06; letter-spacing:-.045em; margin:28px 0 25px; }
    .hero-copy > p { color:#c2d6dd; max-width:480px; font-size:1.08rem; line-height:1.75; margin-bottom:32px; }
    .hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:15px 29px; }
    .button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:12px 20px; background:#c8e5ed; color:var(--ink); border-radius:4px; font-weight:700; font-size:.91rem; }
    .button:hover { background:white; }
    .text-link { font-weight:650; font-size:.91rem; border-bottom:1px solid #88a9b6; padding-bottom:4px; }
    .text-link:hover { border-color:white; }
    .hero-art { position:relative; overflow:hidden; min-height:440px; background:linear-gradient(135deg,#416474,#102a3d); }
    .hero-art img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
    .hero-art:after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(16,42,61,.33),transparent 36%); }
    .hero-image-note { position:absolute; z-index:1; right:26px; bottom:27px; padding:10px 14px; border:1px solid rgba(255,255,255,.35); background:rgba(16,42,61,.65); backdrop-filter:blur(10px); color:#dbeaf0; font-size:.78rem; letter-spacing:.02em; }
    .section { padding:110px 0; }
    .section-head { display:grid; grid-template-columns:minmax(180px,.35fr) 1fr; gap:70px; align-items:start; }
    .section-index { color:#547485; font-size:.74rem; font-weight:750; text-transform:uppercase; letter-spacing:.17em; padding-top:12px; }
    h2 { font-family:Georgia, "Times New Roman", serif; font-size:clamp(2.2rem, 4.5vw, 3.8rem); line-height:1.15; font-weight:400; letter-spacing:-.038em; margin-bottom:25px; }
    .section-head p { color:var(--muted); max-width:700px; font-size:1.04rem; line-height:1.8; margin-bottom:0; }
    .study-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:62px; }
    .study-card { padding:36px 33px 43px; background:var(--white); min-height:240px; }
    .study-number { color:#58889a; font-size:.76rem; font-weight:800; letter-spacing:.13em; }
    .study-card h3 { font-size:1.32rem; letter-spacing:-.02em; font-weight:650; margin:31px 0 12px; }
    .study-card p { color:var(--muted); font-size:.97rem; line-height:1.68; margin:0; }
    .feature { background:var(--pale); padding:105px 0; }
    .feature-inner { display:grid; grid-template-columns:1fr 1fr; gap:9%; align-items:center; }
    .feature-panel { min-height:410px; border:1px solid #bfd4dc; background:#f7fafb; padding:42px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
    .panel-top { display:flex; justify-content:space-between; gap:20px; align-items:start; font-size:.76rem; font-weight:750; letter-spacing:.15em; text-transform:uppercase; color:#5e8393; }
    .panel-orbit { width:245px; height:245px; border-radius:50%; border:1px solid #b6cfd7; align-self:center; position:relative; margin:10px 0; }
    .panel-orbit:before { content:""; position:absolute; inset:31px; border:1px solid #89b4c2; border-radius:50%; }
    .panel-orbit:after { content:""; position:absolute; inset:78px; border:2px solid #4a8297; border-radius:50%; background:#dbeaf0; }
    .panel-label { font-family:Georgia, "Times New Roman", serif; font-size:2.35rem; letter-spacing:-.035em; line-height:1; }
    .feature-copy h2 { max-width:560px; }
    .feature-copy p { color:#506b79; font-size:1.05rem; line-height:1.8; max-width:540px; }
    .feature-copy .rule { width:52px; height:2px; background:#6395a7; margin:30px 0; }
    .feature-copy .small { font-size:.92rem; color:#5a7684; }
    .course-chip { display:inline-block; background:#d3e5eb; padding:8px 12px; color:#255669; text-transform:uppercase; font-size:.73rem; letter-spacing:.12em; font-weight:750; margin-bottom:22px; }
    .learning { background:#fff; padding:110px 0; }
    .learning-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:44px; }
    .learning-card { border:1px solid var(--line); padding:29px; background:#f9fbfc; }
    .learning-card .mini-label { font-size:.74rem; color:#538194; text-transform:uppercase; font-weight:750; letter-spacing:.14em; }
    .learning-card h3 { margin:25px 0 10px; font-size:1.28rem; letter-spacing:-.02em; }
    .learning-card p { color:var(--muted); font-size:.96rem; margin:0; }
    .review { display:grid; grid-template-columns:220px 1fr; gap:36px; margin-top:68px; padding-top:38px; border-top:1px solid var(--line); }
    .review h3 { font-family:Georgia, "Times New Roman", serif; font-size:1.8rem; font-weight:400; line-height:1.18; margin:0; }
    .review-list { border-top:1px solid var(--line); }
    .review-list details { border-bottom:1px solid var(--line); padding:16px 0; }
    .review-list summary { cursor:pointer; font-weight:650; font-size:1rem; padding:4px 28px 4px 0; position:relative; }
    .review-list summary::marker { color:#558da2; }
    .review-list details p { color:#526d7c; margin:12px 0 4px 19px; font-size:.97rem; }
    .source-note { margin-top:36px; padding:20px 23px; background:#edf5f7; border-left:3px solid #6cabbc; color:#476473; font-size:.92rem; line-height:1.7; }
    .source-note a { text-decoration:underline; text-underline-offset:3px; font-weight:650; color:#174d63; }
    .source-note a:hover { color:#0b829e; }
    .projects { background:var(--white); }
    .project-card { border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; grid-template-columns:210px 1fr auto; gap:32px; padding:35px 0; align-items:center; margin-top:56px; }
    .project-card + .project-card { margin-top:0; border-top:0; }
    .project-tag { color:#5c7c8c; font-size:.76rem; text-transform:uppercase; font-weight:750; letter-spacing:.13em; }
    .project-card h3 { font-family:Georgia, "Times New Roman", serif; font-size:2rem; font-weight:400; letter-spacing:-.025em; margin:0 0 8px; }
    .project-card p { color:var(--muted); font-size:.97rem; margin:0; }
    .project-state { color:#526e7b; background:#ecf4f6; padding:9px 13px; font-size:.8rem; font-weight:650; white-space:nowrap; }
    .campus { background:#eaf2f5; padding:105px 0; }
    .campus-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:17px; margin-top:48px; }
    .campus-grid figure { margin:0; background:white; }
    .campus-grid img { display:block; width:100%; height:330px; object-fit:cover; }
    .campus-grid figcaption { color:#586f7b; padding:16px 19px 19px; font-size:.87rem; }
    .contact { background:#18384b; color:white; padding:90px 0; }
    .contact-inner { display:flex; justify-content:space-between; gap:40px; align-items:end; }
    .contact .section-index { color:#a3cbd7; padding:0; margin-bottom:20px; }
    .contact h2 { margin-bottom:12px; }
    .contact p { color:#c1d6df; margin:0; font-size:1rem; }
    .email { font-size:clamp(1rem,2vw,1.25rem); font-weight:650; padding-bottom:7px; border-bottom:1px solid #8eb8c7; white-space:nowrap; }
    .email:hover { color:#c8e5ed; }
    footer { background:#102a3d; color:#a8c1cb; font-size:.84rem; padding:28px 0; }
    .footer-inner { display:flex; justify-content:space-between; gap:24px; }
    @media(max-width:850px) {
      .nav { gap:15px; }
      .hero-inner { grid-template-columns:1.05fr .95fr; }
      .hero-copy { padding-right:25px; }
      .section-head { grid-template-columns:1fr; gap:14px; }
      .feature-inner { gap:5%; }
      .review { grid-template-columns:1fr; gap:24px; }
      .project-card { grid-template-columns:130px 1fr; }
      .project-state { grid-column:2; width:max-content; }
    }
    @media(max-width:680px) {
      .wrap { width:min(100% - 34px, 520px); }
      .header-inner { min-height:72px; }
      .brand-mark { width:42px; height:42px; }
      .brand-name { font-size:.97rem; }
      .brand-discipline { font-size:.63rem; }
      .nav a:not(.nav-contact) { display:none; }
      .nav-contact { padding:8px 12px; }
      .hero-inner { display:flex; flex-direction:column; }
      .hero-copy { padding:64px 0 58px; }
      h1 { margin:22px 0 20px; }
      .hero-art { min-height:260px; margin:0 -17px; }
      .hero-image-note { right:18px; bottom:18px; }
      .section { padding:75px 0; }
      .study-grid { grid-template-columns:1fr; margin-top:36px; }
      .study-card { min-height:0; padding:27px 27px 30px; }
      .study-card h3 { margin-top:18px; }
      .feature { padding:76px 0; }
      .feature-inner { display:flex; flex-direction:column; align-items:stretch; gap:35px; }
      .feature-panel { min-height:320px; padding:28px; }
      .panel-orbit { width:170px; height:170px; }
      .panel-orbit:before { inset:23px; }
      .panel-orbit:after { inset:56px; }
      .panel-label { font-size:1.9rem; }
      .learning { padding:76px 0; }
      .learning-grid { grid-template-columns:1fr; gap:12px; margin-top:32px; }
      .learning-card { padding:25px; }
      .review { margin-top:52px; }
      .campus { padding:76px 0; }
      .campus-grid { grid-template-columns:1fr; margin-top:32px; }
      .campus-grid img { height:250px; }
      .project-card { grid-template-columns:1fr; gap:12px; padding:27px 0; margin-top:32px; }
      .project-state { grid-column:1; margin-top:5px; }
      .contact { padding:72px 0; }
      .contact-inner { display:block; }
      .email { display:inline-block; margin-top:30px; white-space:normal; overflow-wrap:anywhere; }
      .footer-inner { flex-direction:column; gap:5px; }
    }
    @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Páginas y entradas de WordPress */
.wp-content { min-height:55vh; }
.wp-entry { max-width:850px; margin:0 auto 50px; }
.wp-entry h1 { color:var(--ink); font-size:clamp(2.4rem,5vw,4rem); margin:0 0 22px; }
.wp-entry-content { color:#314c5b; font-size:1rem; line-height:1.8; overflow-wrap:anywhere; }
.wp-entry-content a { color:#176c86; text-decoration:underline; text-underline-offset:3px; }
.wp-entry-content img { max-width:100%; height:auto; }
.wp-entry-content h2 { margin-top:45px; }
.wp-entry-content .wp-block-image { margin:25px 0; }
.post-list { list-style:none; padding:0; margin:0; }
.post-list li { padding:24px 0; border-bottom:1px solid var(--line); }
.post-list a { color:#176c86; font-weight:650; }
.screen-reader-text { position:absolute; left:-9999px; }
.screen-reader-text:focus { position:static; background:white; padding:10px; }
