@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&display=swap');
:root{--pine:#173f36;--forest:#245b49;--cream:#f6f5ee;--paper:#fffefa;--ink:#24362e;--muted:#61776a;--line:#dde6db;--gold:#d2ac67;--seminar:#2c7650;--intro:#d8aa55;--national:#285ea8;--galicia:#7b4595;--vigo:#b35d29;--special:#218078}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:400 16px/1.5 'DM Sans',Arial,sans-serif}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:'Fraunces',Georgia,serif}a{color:inherit}.shell{width:min(1200px,calc(100% - 40px));margin-inline:auto}.hero{min-height:420px;background:radial-gradient(circle at 87% 15%,#417a59 0,transparent 25%),radial-gradient(circle at 20% 105%,#39735b 0,transparent 30%),linear-gradient(125deg,#10382e,#1c5844);color:#f9f9ee;overflow:hidden}.hero .shell{position:relative;padding-bottom:35px}.hero .shell:after{content:'✳';position:absolute;font-size:420px;line-height:1;opacity:.06;right:-30px;bottom:-110px;pointer-events:none}.topline{display:flex;align-items:center;gap:10px;padding-top:22px;font-size:.79rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;line-height:1.15}.symbol{font-size:1.7rem;display:grid;place-items:center;border:1px solid #9bc4a3;border-radius:50%;width:42px;height:42px}.topline a{margin-left:auto;text-transform:none;letter-spacing:0;text-decoration:none;border-bottom:1px solid #a8c8b6;padding-bottom:4px}.hero .eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:#e7ce9a;font-weight:700;margin:62px 0 12px}.hero h1{font-size:clamp(3.2rem,7vw,6.2rem);line-height:1.02;letter-spacing:-.05em;font-weight:400;margin:0}.hero h1 em{font-style:normal;color:#c6dfcb}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-top:40px}.hero-bottom p{margin:0;color:#e1ecdf}.hero-bottom strong{font:500 1.55rem 'Fraunces',Georgia,serif;color:#fff}.hero-bottom p:last-child{text-align:right;font-size:.86rem}.intro{display:grid;grid-template-columns:1.55fr 1fr;gap:30px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:28px 32px;margin-top:-24px;position:relative;box-shadow:0 14px 30px #1e503314}.kicker{display:block;font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:#8e6b31;margin-bottom:8px}.intro h2{font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:500;margin:0 0 8px}.intro p{margin:0;color:var(--muted)}.statrow{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;gap:10px}.statrow div{border-left:1px solid var(--line);padding-left:15px}.statrow b{display:block;font:500 clamp(1.55rem,2.5vw,2.3rem) 'Fraunces',Georgia,serif;color:var(--forest)}.statrow span{display:block;font-size:.78rem;color:var(--muted);line-height:1.25}.calendar-section,.path-section,.teacher-section,.practical{padding-top:75px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:25px}.section-head h2,.practical h2,.teacher-section h2{font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.1;letter-spacing:-.03em;margin:0}.section-head>p{max-width:410px;color:var(--muted);margin:0}.legend{display:flex;gap:9px 17px;flex-wrap:wrap;margin:0 0 22px;color:#455d4d;font-size:.82rem}.legend span{display:flex;align-items:center;gap:7px}.key{width:12px;height:12px;border-radius:4px;display:inline-block;flex:none}.key.seminar{background:var(--seminar)}.key.introkey{background:var(--intro)}.key.national{background:var(--national)}.key.galicia{background:var(--galicia)}.key.vigo{background:var(--vigo)}.key.special{background:var(--special)}.calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.month-card{background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:19px;min-width:0;box-shadow:0 3px 12px #255a3806}.month-title{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:13px}.month-title h3{font-size:1.55rem;text-transform:capitalize;margin:0 0 9px;font-weight:500}.month-title span{font-size:.78rem;color:var(--muted);font-weight:700}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}.weekdays{color:#748a7a;font-size:.7rem;font-weight:700;margin-bottom:5px}.days .day,.days .blank{height:36px;display:grid;place-items:center;position:relative;font-size:.78rem;border-radius:8px;font-weight:600}.day i{position:absolute;bottom:2px;width:4px;height:4px;border-radius:50%;background:currentColor}.day.seminar{background:#dff1e5;color:#16583a;font-weight:800}.day.introkey{background:#f9edcd;color:#765014;font-weight:800}.day.national{background:#e3edfb;color:#205697}.day.galicia{background:#f0e5f5;color:#6e3f86}.day.vigo{background:#fbe8d9;color:#9b4b1e}.day.special{background:#e1f2ee;color:#176d66}.month-events{border-top:1px solid var(--line);margin-top:15px;padding-top:7px}.entry{display:grid;grid-template-columns:54px 1fr;gap:8px;border-radius:10px;padding:11px 8px;margin-top:7px}.entry-date{font-size:.72rem;font-weight:800;text-transform:uppercase;color:#3d714f;padding-top:2px}.entry h4{font-family:'Fraunces',Georgia,serif;font-size:1.02rem;font-weight:600;line-height:1.2;margin:3px 0 5px}.entry p{font-size:.77rem;color:#536d59;line-height:1.45;margin:0}.tag{font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;font-weight:800;color:#387456}.seminar-entry{background:#eaf5eb}.intro-entry{background:#fff4d9}.intro-entry .tag,.intro-entry .entry-date{color:#8b601d}.vacation-entry{background:#e4eee9}.vacation-entry .tag{color:#4f7561}.entry .cert-note{color:#235d49;background:#d5e9da;border-left:3px solid #3e9968;padding:7px 8px;margin-top:8px;font-weight:700}.entry .exception{color:#80502f;margin-top:6px}.no-class{font-size:.79rem;color:var(--muted);margin:10px 4px}.other-dates{margin-top:14px;padding-top:11px;border-top:1px solid var(--line)}.other-dates h4{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#5c6f60;margin:0 0 6px}.other-row{display:grid;grid-template-columns:54px 1fr;gap:8px;border-left:3px solid;margin:4px 0;padding:4px 0 4px 7px;align-items:start}.other-row span{font-size:.68rem;font-weight:800;text-transform:uppercase}.other-row p{font-size:.73rem;line-height:1.35;margin:0}.other-row.national{border-color:var(--national);color:#245a9a}.other-row.galicia{border-color:var(--galicia);color:#79448f}.other-row.vigo{border-color:var(--vigo);color:#a05020}.other-row.special{border-color:var(--special);color:#1d746e}.vacation-month{background:#f1f5f0}.path-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.block{background:#fffefa;border:1px solid var(--line);border-radius:17px;padding:26px}.block-one{border-top:5px solid #3d825b}.block-two{border-top:5px solid #a88448}.block-num{font-size:.72rem;text-transform:uppercase;font-weight:800;letter-spacing:.12em;color:#52745b}.block h3{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:500;line-height:1.18;min-height:80px;margin:10px 0 19px}.block ul{list-style:none;margin:0;padding:0}.block li{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-top:1px solid var(--line);font-size:.85rem}.block li span{max-width:55%;font-weight:700}.block li b{font-weight:600;color:#5c7464;text-align:right;font-size:.78rem}.block-total{display:flex;justify-content:space-between;gap:15px;background:#e9f1e7;padding:12px 14px;border-radius:8px;margin-top:15px;font-size:.81rem}.block-total b{text-align:right}.certificate{font-size:.84rem;line-height:1.55;color:#4c6453;margin:17px 0 0}.work-note{display:flex;gap:20px;align-items:start;background:#e7efe8;border-radius:14px;margin-top:18px;padding:20px 24px}.work-note>span{font:2.5rem 'Fraunces',Georgia,serif;color:#41805a;line-height:1}.work-note h3{font-size:1.25rem;font-weight:500;margin:0 0 4px}.work-note p{margin:0;color:#526a5a;font-size:.86rem}.teacher-section{display:flex;gap:25px;align-items:center}.teacher-icon{flex:0 0 94px;height:94px;border-radius:50%;background:linear-gradient(145deg,#b8d9c0,#7cb18e);display:grid;place-items:center;color:#174e3b;font:500 2rem 'Fraunces',Georgia,serif}.teacher-section p{max-width:700px;color:var(--muted);margin:10px 0 0}.practical{padding-bottom:75px;display:grid;grid-template-columns:280px 1fr;gap:25px}.practical-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.practical-grid p{margin:0;background:#fffefa;border:1px solid var(--line);border-radius:11px;padding:17px;color:#566d5b;font-size:.86rem}.practical-grid strong{color:var(--ink)}footer{background:#173f36;color:#e4eee4;padding:28px 0}footer .shell{display:flex;justify-content:space-between;gap:20px}footer p{margin:5px 0 0;font-size:.79rem;color:#bdd5c2}footer .shell>div:last-child{display:flex;gap:8px 20px;flex-wrap:wrap;align-items:center}footer a{font-size:.78rem;text-decoration:none;border-bottom:1px solid #a4c8ad;padding-bottom:3px}@media(max-width:1000px){.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{grid-template-columns:1fr}.statrow div:first-child{border-left:0;padding-left:0}.practical{grid-template-columns:1fr}}@media(max-width:680px){.shell{width:min(100% - 28px,520px)}.hero{min-height:390px}.hero .eyebrow{margin-top:55px}.hero-bottom{align-items:start;flex-direction:column;margin-top:30px}.hero-bottom p:last-child{text-align:left}.intro{padding:22px 20px}.statrow{gap:3px}.statrow div{padding-left:8px}.statrow b{font-size:1.6rem}.statrow span{font-size:.7rem}.section-head{align-items:start;flex-direction:column;gap:8px}.calendar-grid,.path-grid,.practical-grid{grid-template-columns:1fr}.calendar-section,.path-section,.teacher-section,.practical{padding-top:55px}.block h3{min-height:0}.teacher-section{align-items:start}.teacher-icon{flex-basis:56px;height:56px;font-size:1.2rem}.practical{padding-bottom:55px}footer .shell{flex-direction:column}}

.entry .assignment{margin-top:8px;padding-top:8px;border-top:1px solid #c9e0ce;color:#355d43}.entry .assignment a{display:inline-block;margin-top:5px;color:#1b6646;font-weight:800;text-underline-offset:2px}.work-entry{background:#f4eee0}.work-entry .tag,.work-entry .entry-date{color:#806034}.milestone{display:flex;gap:10px;margin-top:10px;padding:14px;border:1px solid #bbd4bd;border-radius:12px;background:#e0eddf}.milestone>span{font-size:1.5rem;line-height:1;color:#3e8858}.milestone .tag{color:#3b7050}.milestone h4{font:600 1.08rem/1.2 'Fraunces',Georgia,serif;margin:3px 0 6px}.milestone p{font-size:.78rem;color:#355d43;line-height:1.5;margin:0}
.key.reserve{background:#b99354}.day.reserve{background:#f7ead0;color:#805b25}.reserve-entry{background:#fbf1dd}.reserve-entry .tag,.reserve-entry .entry-date{color:#805b25}
.teacher-section{align-items:center;margin-top:24px;padding:25px;background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 24px #1e503310}.teacher-photo{width:112px;height:112px;flex:none;object-fit:cover;object-position:76% 35%;border-radius:50%;border:4px solid #d7eadb;box-shadow:0 5px 15px #1e503329}.teacher-section h2{font-size:clamp(1.7rem,3vw,2.35rem)}.teacher-section p{margin-top:7px;font-size:.9rem}@media(max-width:680px){.teacher-section{padding:18px;gap:16px}.teacher-photo{width:75px;height:75px}.teacher-section p{font-size:.82rem}}
.year-nav{position:sticky;top:0;z-index:15;display:flex;gap:8px;flex-wrap:wrap;padding:11px 0;background:#f6f5eefa;backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.year-nav a{font-size:.8rem;font-weight:800;text-decoration:none;color:var(--forest);padding:8px 13px;border-radius:30px;background:#e6eee7}.year-nav a:hover,.year-nav a:focus-visible{background:#d2e4d5}.year-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;padding-top:68px;padding-bottom:22px;scroll-margin-top:65px}.year-heading h2{font-size:clamp(2.5rem,5vw,4.2rem);line-height:1.04;font-weight:400;margin:0 0 8px}.year-heading p{color:var(--muted);margin:0;max-width:700px}.year-heading.later-heading{margin-top:78px;border-top:1px solid var(--line)}.year-stats{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;max-width:450px}.year-stats span{display:block;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:9px 11px;color:var(--muted);font-size:.75rem;white-space:nowrap}.year-stats b{color:var(--forest);font-size:1.07rem}.intro{margin-top:0}.intro-aside{display:flex;align-items:center;gap:14px;color:var(--forest)}.intro-aside span{font-size:3rem}.intro-aside p{max-width:210px;font-weight:700}.forecast{background:#e9efe6;border-left:4px solid #63936d;border-radius:10px;padding:18px 22px}.forecast strong{color:#2d6648}.forecast p{margin:4px 0 0;color:#456451;font-size:.9rem}.faculty-section{padding-top:60px}.faculty-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.faculty-card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:16px;display:flex;align-items:flex-start;gap:13px;min-width:0}.faculty-card img,.faculty-initials{width:60px;height:60px;border-radius:50%;flex:none;object-fit:cover;object-position:center;border:3px solid #d7eadb}.faculty-card img[src$="yoei-trigo.png"]{object-position:76% 35%}.faculty-initials{display:grid;place-items:center;background:#d7eadb;color:#20553f;font-weight:800}.faculty-card small{font-size:.69rem;letter-spacing:.06em;text-transform:uppercase;color:#6d874f;font-weight:800}.faculty-card h3{font-size:1.14rem;line-height:1.2;margin:3px 0 6px}.faculty-card p{font-size:.76rem;line-height:1.43;color:var(--muted);margin:0}.entry .entry-teacher{margin-top:5px;color:#245c45;font-weight:700}.entry .exam-note{margin-top:8px;border-left:3px solid #ad8153;padding:6px 8px;background:#f7eadb;color:#604126}.key.provisional{background:#9a855d}.day.provisional{background:#f1ecdf;color:#74623e}.other-row.provisional{border-color:#9a855d;color:#786443}.course-explainer{border-radius:12px;background:#fff3d5;border:1px solid #e6c681;padding:14px;margin:9px 0}.course-explainer h4{font:600 1.05rem 'Fraunces',Georgia,serif;margin:4px 0}.course-explainer p{font-size:.78rem;color:#76582f;margin:0}.final-award{background:#e1ebe3;border-color:#8dac93}.practical{padding-top:90px}@media(max-width:1000px){.faculty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.year-heading{align-items:start;flex-direction:column}.year-stats{justify-content:flex-start}}@media(max-width:680px){.year-nav{gap:5px}.year-nav a{font-size:.71rem;padding:7px 9px}.year-heading{padding-top:45px}.year-heading.later-heading{margin-top:45px}.year-stats span{font-size:.72rem}.faculty-grid{grid-template-columns:1fr}.faculty-section{padding-top:45px}.faculty-card img,.faculty-initials{width:54px;height:54px}.forecast{padding:15px 17px}.intro-aside span{font-size:2rem}}

.day.provisional-date{outline:1px dashed currentColor;outline-offset:-3px}.key.pending{background:transparent;border:1px dashed #61776a}.extension-course{margin-top:20px;margin-bottom:70px;padding:35px;border:1px solid #b8d0bd;border-radius:20px;background:#e8efe4}.extension-course h2{font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.12;margin-bottom:18px}.extension-course p{max-width:920px}.extension-lead{font-size:1.1rem}.extension-stats{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:24px 0;margin:15px 0;border-block:1px solid #bfd0be}.extension-stats span{font-size:.8rem}.extension-stats b{display:block;font:500 2rem Fraunces,Georgia,serif}.extension-course .extension-note{font-size:.82rem;color:#4c6554}.extension-links{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:25px}.extension-button{display:inline-block;background:#245b49;color:#fff;padding:13px 20px;border-radius:30px;text-decoration:none;font-weight:700}@media(max-width:680px){.extension-course{padding:23px}.extension-stats{gap:12px;justify-content:start}.extension-stats span{width:100%}.extension-stats span[aria-hidden]{width:auto}}

.monthly-teacher{display:flex;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid #cbd8cf;align-items:flex-start}.monthly-teacher img,.monthly-initials{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:0 0 64px}.monthly-initials{display:grid;place-items:center;background:#dce8df;color:#245b49;font-weight:700}.monthly-teacher small{display:block;color:#61776a;font-size:.7rem;margin-bottom:3px}.monthly-teacher strong{display:block;font-size:.88rem;color:#173f36}.monthly-teacher p{font-size:.76rem;line-height:1.55;margin:5px 0 0}@media(max-width:480px){.monthly-teacher{gap:10px}.monthly-teacher img,.monthly-initials{width:52px;height:52px;flex-basis:52px}}
