:root{--ink:#1C2440;--accent:#3E4F8A;--body:#3A4258;--muted:#5A6178;--line:#D5D9E4;--bg:#F4F5F8;--tint:#E3E8F6;--soft:#C9D2F0}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Source Sans 3',system-ui,sans-serif;font-size:18px;line-height:1.5}
a{color:var(--accent)}a:hover{color:var(--ink)}
img{max-width:100%;display:block}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.rye{font-family:Rye,serif;font-weight:400}
h1,h2,h3{font-family:Rye,serif;font-weight:400;margin:0;color:var(--ink)}
p{margin:0}
.btn{display:inline-block;padding:14px 24px;background:var(--ink);color:#fff;text-decoration:none;font-weight:700;font-size:17px;border-radius:4px;border:0;font-family:inherit;cursor:pointer}
.btn:hover{background:var(--accent);color:#fff}
.btn-outline{display:inline-block;padding:12px 22px;border:2px solid var(--ink);color:var(--ink);text-decoration:none;font-weight:700;font-size:17px;border-radius:4px}
.btn-outline:hover{background:var(--ink);color:#fff}
/* header */
.site-header{background:#fff;border-bottom:3px solid var(--ink)}
.site-header .wrap{padding-top:12px;padding-bottom:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.site-header img{height:64px;width:auto}
.nav{display:flex;flex-wrap:wrap;gap:8px}
.nav a{font-family:Rye,serif;font-size:18px;padding:12px 16px;color:var(--ink);text-decoration:none}
.nav a.current{border-bottom:3px solid var(--accent)}
.nav a.cta{background:var(--ink);color:#fff;border-radius:4px}
/* hero */
.hero{background:#fff}
.hero .wrap{padding-top:56px;padding-bottom:64px;display:flex;flex-wrap:wrap;align-items:center;gap:48px}
.hero-text{flex:1 1 440px;display:flex;flex-direction:column;gap:20px}
.eyebrow{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:14px;color:var(--accent)}
.hero h1{font-size:clamp(38px,6vw,56px);line-height:1.08}
.hero-text .lede{font-size:20px;line-height:1.6;color:var(--body)}
.hero-photo{flex:1 1 420px;position:relative}
.hero-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}
.tag{position:absolute;left:16px;bottom:16px;background:#fff;color:var(--ink);padding:8px 14px;border-radius:4px;font-weight:700;font-size:15px;box-shadow:0 2px 8px rgba(28,36,64,.25)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
/* sections */
section .wrap{padding-top:64px;padding-bottom:64px}
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:28px}
.section-head h2{font-size:36px}
.section-head p{color:var(--body);margin-top:8px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.card-photos{display:grid;grid-template-columns:2fr 1fr;gap:4px}
.card-photos img{width:100%;height:220px;object-fit:cover}
.card-body{padding:24px;display:flex;flex-direction:column;gap:12px}
.card-title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.card-title h3{font-size:26px}
.badge{padding:6px 12px;border-radius:999px;background:var(--tint);color:var(--ink);font-weight:700;font-size:14px}
.card-body p{font-size:17px;line-height:1.55;color:var(--body)}
.facts{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid var(--line);padding-top:14px}
.facts dt{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.facts dd{margin:4px 0 0;font-weight:700}
.banner{margin-top:28px;background:var(--ink);color:#fff;border-radius:6px;padding:28px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.banner .rye{font-size:24px}
.banner p.sub{font-size:17px;color:var(--soft);margin-top:6px}
.banner .btn{background:#fff;color:var(--ink)}
/* contact */
.contact .wrap{display:flex;flex-wrap:wrap;gap:40px}
.contact-info{flex:1 1 320px;display:flex;flex-direction:column;gap:16px}
.contact-info h2{font-size:36px}
.contact-info p{color:var(--body)}
.contact-info p strong{color:var(--ink)}
form.note{flex:1 1 440px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:6px;padding:28px;display:flex;flex-direction:column;gap:16px}
form.note h3{font-size:24px}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:15px}
input,select,textarea{font:inherit;font-weight:400;padding:12px;border:1px solid #8C93A8;border-radius:4px;background:#fff;color:var(--ink)}
textarea{resize:vertical}
.form-note{font-size:14px;color:var(--muted)}
/* footer */
footer{background:#fff;border-top:3px solid var(--ink)}
footer .wrap{padding-top:24px;padding-bottom:24px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:15px;color:var(--body)}
/* photos page */
.page-intro{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}
.page-intro h1{font-size:44px}
.page-intro p{font-size:19px;color:var(--body)}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.filters button{min-height:44px;padding:10px 18px;border-radius:999px;font:inherit;font-weight:700;font-size:16px;cursor:pointer;border:2px solid var(--ink);background:#fff;color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ink);color:#fff}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.gallery figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.gallery figure[hidden]{display:none}
.gallery button{padding:0;border:0;background:none;cursor:zoom-in;display:block;width:100%}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}
.gallery figcaption{padding:14px 16px;display:flex;justify-content:space-between;gap:12px;font-size:16px}
.gallery figcaption span:first-child{font-weight:600}
.gallery figcaption span:last-child{color:var(--accent);font-weight:600;text-align:right}
.lightbox{position:fixed;inset:0;background:rgba(12,16,30,.9);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;z-index:10}
.lightbox[hidden]{display:none}
.lightbox img{max-width:min(1100px,100%);max-height:78vh;object-fit:contain;border-radius:4px}
.lightbox p{color:#fff;font-weight:600}
.lightbox .row{display:flex;gap:12px}
.lightbox button{padding:12px 20px;background:#fff;color:var(--ink);border:0;border-radius:4px;font:inherit;font-weight:700;cursor:pointer}
.lightbox button.close{background:var(--accent);color:#fff}
