:root{
  --primary: oklch(35% 0.06 140);
  --primary-dark: oklch(22% 0.05 140);
  --accent: oklch(70% 0.12 70);
  --accent-dark: oklch(45% 0.1 70);
  --bg: oklch(97% 0.015 90);
  --surface: oklch(94% 0.015 85);
  --card: oklch(99% 0.005 90);
  --border: oklch(85% 0.02 90);
  --border-soft: oklch(88% 0.015 90);
  --ink: oklch(20% 0.015 140);
  --ink-soft: oklch(38% 0.02 140);
  --ink-faint: oklch(48% 0.02 140);
  --on-primary: oklch(98% 0.005 140);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Manrope',sans-serif;}
a{color:inherit;}
.serif{font-family:'Newsreader',serif;font-style:italic;font-weight:600;}
.wrap{max-width:760px;margin:0 auto;padding-left:clamp(20px,5vw,64px);padding-right:clamp(20px,5vw,64px);}
.wrap-lg{max-width:820px;margin:0 auto;padding-left:clamp(20px,5vw,64px);padding-right:clamp(20px,5vw,64px);}

/* header */
.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:clamp(16px,3vw,26px) clamp(20px,5vw,64px);background:var(--bg);border-bottom:1px solid var(--border);}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;}
.logo span{font-family:'Newsreader',serif;font-style:italic;font-weight:600;font-size:clamp(22px,2.4vw,27px);color:var(--primary);letter-spacing:.2px;}
.nav{display:flex;gap:clamp(16px,3vw,32px);flex-wrap:wrap;align-items:center;}
.nav a{text-decoration:none;font-size:15px;font-weight:600;padding:6px 2px;border-bottom:2px solid transparent;color:var(--ink);}
.nav a.active{color:var(--primary);border-bottom-color:var(--accent);}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:15px;padding:13px 24px;border-radius:999px;}
.btn-primary{background:var(--primary);color:var(--on-primary);}
.btn-secondary{background:transparent;color:var(--primary);border:1.5px solid var(--border);}
.btn-accent{background:var(--accent);color:var(--primary-dark);font-size:14.5px;padding:11px 20px;}

/* hero */
.hero{padding:clamp(56px,10vw,110px) 0 clamp(40px,6vw,64px);text-align:center;}
.eyebrow{margin:0 0 14px;text-transform:uppercase;letter-spacing:.14em;font-size:13px;font-weight:700;color:var(--accent-dark);}
.hero h1{margin:0 0 18px;font-size:clamp(38px,6vw,58px);line-height:1.08;color:var(--primary);}
.hero p{margin:0 auto 34px;max-width:520px;font-size:17px;line-height:1.6;color:var(--ink-soft);}
.btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* page title */
.page-title{padding:clamp(56px,9vw,96px) 0 clamp(36px,6vw,56px);}
.page-title h1{margin:0 0 22px;font-size:clamp(32px,5vw,46px);color:var(--primary);}
.back-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-size:14px;font-weight:600;color:var(--ink-faint);margin-bottom:18px;}

/* sections */
.section-surface{background:var(--surface);padding:clamp(40px,6vw,64px) 0;}
.calendar-block{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;}
.icon-tile{flex:none;width:56px;height:56px;border-radius:14px;background:color-mix(in oklch, var(--accent) 18%, transparent);display:flex;align-items:center;justify-content:center;}
.calendar-block h2{margin:0 0 8px;font-size:clamp(22px,3vw,28px);color:var(--primary);}
.calendar-block p{margin:0 0 18px;font-size:15.5px;line-height:1.65;color:var(--ink-soft);}

.social-section{padding:clamp(40px,6vw,64px) 0;}
.social-section h3{margin:0 0 18px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);text-align:center;}
.social-row{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;}
.social-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:999px;background:var(--surface);color:var(--primary);text-decoration:none;}

.contact-card{background:var(--surface);border-radius:16px;padding:clamp(24px,4vw,32px);display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.contact-card .label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:4px;}
.contact-card .email{text-decoration:none;font-weight:700;font-size:18px;color:var(--primary);}
.contact-icon{flex:none;width:52px;height:52px;border-radius:14px;background:color-mix(in oklch, var(--accent) 18%, transparent);display:flex;align-items:center;justify-content:center;}

.placeholder-box{border:1.5px dashed var(--border);border-radius:16px;padding:clamp(24px,4vw,32px);color:var(--ink-faint);font-size:15px;line-height:1.6;}
.map-placeholder{border-radius:16px;height:320px;margin-bottom:16px;background:var(--surface);border:1.5px dashed var(--border);display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-size:14px;text-align:center;padding:20px;}
.location-tag{display:flex;align-items:center;gap:8px;margin-bottom:30px;}
.location-tag span{font-weight:600;font-size:15.5px;color:var(--ink-soft);}
.note-italic{font-size:14.5px;line-height:1.6;color:var(--ink-faint);font-style:italic;}

.card-grid{padding:clamp(12px,3vw,20px) 0 clamp(56px,9vw,88px);display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;}
.link-card{text-decoration:none;background:var(--card);border:1px solid var(--border-soft);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:14px;}
.link-card .icon-tile{width:44px;height:44px;}
.link-card h3{margin:0 0 6px;font-size:19px;color:var(--primary);}
.link-card p{margin:0;font-size:14.5px;line-height:1.55;color:var(--ink-faint);}

.mini-contact{display:flex;align-items:center;gap:12px;background:var(--surface);border-radius:16px;padding:20px 24px;flex-wrap:wrap;margin-bottom:clamp(56px,9vw,88px);}
.mini-contact .label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);}
.mini-contact a{text-decoration:none;font-weight:700;font-size:15px;color:var(--primary);}

/* footer */
.site-footer{background:var(--primary-dark);color:oklch(92% 0.01 140);padding:clamp(32px,5vw,48px) clamp(20px,5vw,64px) 22px;}
.footer-inner{max-width:1000px;margin:0 auto;display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;}
.footer-inner .brand{font-size:20px;margin-bottom:6px;}
.footer-inner .tagline{font-size:13.5px;color:oklch(75% 0.02 140);}
.footer-nav{display:flex;gap:20px;flex-wrap:wrap;font-size:14px;}
.footer-nav a{text-decoration:none;color:oklch(90% 0.01 140);}
.footer-email{text-decoration:none;font-size:14px;color:oklch(90% 0.01 140);}
.footer-bottom{max-width:1000px;margin:26px auto 0;padding-top:16px;border-top:1px solid oklch(35% 0.03 140);font-size:12.5px;color:oklch(65% 0.02 140);text-align:center;}

/* mobile */
@media (max-width: 640px){
  .site-header{justify-content:center;text-align:center;}
  .nav{justify-content:center;gap:14px 18px;width:100%;}
  .nav a{font-size:14px;}
  .btn-row{flex-direction:column;align-items:stretch;}
  .btn{justify-content:center;}
  .calendar-block{flex-direction:column;align-items:center;text-align:center;}
  .calendar-block > div:last-child{width:100%;text-align:center;}
  .contact-card{flex-direction:column;text-align:center;}
  .contact-card .label,.contact-card .email{text-align:center;}
  .footer-inner{flex-direction:column;align-items:center;text-align:center;}
  .footer-nav{justify-content:center;}
  .card-grid{grid-template-columns:1fr;}
  .mini-contact{flex-direction:column;text-align:center;}
  .location-tag{justify-content:center;}
}
@media (max-width: 380px){
  .hero h1{font-size:32px;}
  .social-row{gap:12px;}
  .social-icon{width:44px;height:44px;}
}
