:root { --ink:#0d2f53; --forest:#0d345d; --sage:#ed1c24; --cream:#f7f8fa; --white:#fff; --line:#d7dee7; --red:#ed1c24; --navy:#0d345d; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:Arial,Helvetica,sans-serif; line-height:1.6; }
img { display:block; max-width:100%; }
a { color:inherit; }
.site-header { align-items:center; background:var(--cream); display:flex; justify-content:space-between; padding:18px clamp(22px,5vw,72px); }
.brand { align-items:center; color:var(--navy); display:flex; flex:0 0 auto; gap:14px; text-decoration:none; }
.brand img { height:70px; width:70px; object-fit:contain; }
.brand span { font-family:Georgia, 'Times New Roman', serif; font-size:clamp(1.15rem,2vw,1.65rem); font-weight:700; letter-spacing:.02em; white-space:nowrap; }
.tips-header { align-items:center; background:var(--cream); display:flex; justify-content:space-between; padding:18px clamp(22px,5vw,72px); }
.tips-header nav ul { align-items:center; display:flex; gap:clamp(14px,2.2vw,34px); list-style:none; margin:0; padding:0; }
nav { align-items:center; display:flex; gap:clamp(14px,2.2vw,34px); }
nav a { font-size:.83rem; font-weight:700; text-decoration:none; text-transform:uppercase; }
.nav-cta { border:1px solid var(--red); color:var(--red); padding:8px 14px; }
.home-hero { align-items:center; display:grid; min-height:680px; overflow:hidden; position:relative; }
.hero-image { background:#0d345d url("assets/projects/vienna-home-hero-clean.png") calc(100% - 90px) center/auto 86% no-repeat; inset:0; position:absolute; }
.hero-image::after { background:linear-gradient(90deg,rgba(8,32,58,.88) 0%,rgba(13,52,93,.68) 43%,rgba(13,52,93,.20) 72%,rgba(13,52,93,.08) 100%); content:""; inset:0; position:absolute; }
.hero-copy { color:var(--white); max-width:760px; padding:80px clamp(34px,8vw,120px); position:relative; z-index:1; }
.eyebrow { color:var(--red); font-size:.75rem; font-weight:800; letter-spacing:.18em; margin:0 0 12px; text-transform:uppercase; }
.hero-copy .eyebrow,.contact .eyebrow { color:#ff4a50; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Georgia,'Times New Roman',serif; font-weight:500; line-height:1.03; }
h1 { font-size:clamp(3.1rem,6vw,6.4rem); letter-spacing:-.055em; margin-bottom:28px; }
h1 span { color:#ffffff; }
h2 { font-size:clamp(2.4rem,4.2vw,4.4rem); letter-spacing:-.045em; margin-bottom:24px; }
.hero-copy>p:not(.eyebrow) { color:#dce5e0; font-size:1.08rem; margin-bottom:34px; max-width:510px; }
.button { background:var(--red); color:var(--white); display:inline-block; font-size:.78rem; font-weight:800; letter-spacing:.1em; padding:14px 20px; text-decoration:none; text-transform:uppercase; }
.hero-phone { color:var(--white); display:block; font-size:clamp(1.65rem,2.6vw,2.35rem); font-weight:800; letter-spacing:.03em; margin-top:22px; text-decoration:none; width:max-content; }
.section-shell { margin:0 auto; max-width:1240px; padding:100px 34px; }
.intro { align-items:start; display:grid; gap:70px; grid-template-columns:1fr 1fr; }
.intro p:last-child { font-size:1.2rem; max-width:580px; padding-top:33px; }
.services { border-top:1px solid var(--line); }
.services>h2 { max-width:760px; }
.service-grid { display:grid; gap:20px; grid-template-columns:repeat(3,1fr); margin-top:52px; }
.service-grid article { background:#e9eef4; min-height:270px; padding:32px; }
.service-grid span { color:var(--red); font-size:.75rem; font-weight:800; }
.service-grid h3 { font-family:Georgia,serif; font-size:1.55rem; margin:58px 0 12px; }
.service-grid p { color:#44566a; margin-bottom:0; }
.work { padding-top:60px; }
.section-heading { align-items:end; display:grid; gap:50px; grid-template-columns:1.4fr .6fr; margin-bottom:42px; }
.section-heading h2 { margin-bottom:0; }
.section-heading>p { color:#465a70; }
.project-grid { display:grid; gap:18px; grid-template-columns:1.18fr .82fr; }
.project { background:var(--white); margin:0; overflow:hidden; position:relative; }
.project-featured { grid-row:span 2; }
.project img { height:310px; object-fit:cover; width:100%; }
.project-featured img { height:720px; }
.project figcaption { align-items:center; background:linear-gradient(transparent,rgba(6,18,14,.85)); bottom:0; color:white; display:flex; justify-content:space-between; left:0; padding:54px 24px 20px; position:absolute; right:0; }
.project figcaption strong { font-family:Georgia,serif; font-size:1.3rem; }
.project figcaption span { color:#dce6f0; font-size:.75rem; text-transform:uppercase; }
.contact { align-items:center; background:var(--forest); color:white; display:flex; gap:50px; justify-content:space-between; margin-top:80px; padding:90px clamp(34px,8vw,120px); }
.contact h2 { margin-bottom:18px; }
.contact p:not(.eyebrow) { color:#dbe5ef; margin-bottom:0; max-width:620px; }
.button-light { flex:0 0 auto; }
footer { background:#082746; color:#dbe5ef; font-size:.82rem; padding:22px 34px; text-align:center; }
footer p { margin:0; }
.hero { background:var(--forest); color:#fff; margin:0; padding:70px 24px; text-align:center; }
.hero h2 { margin:0 auto 16px; max-width:850px; }
.hero p { margin:auto; max-width:760px; }
.page-content { margin:auto; max-width:1100px; padding:36px 20px 60px; }
.alert-box { background:#fff3cd; border-left:5px solid #e4a11b; border-radius:6px; margin-bottom:30px; padding:18px 22px; }
.tip-grid { display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.tip-card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:22px; }
.tip-card h3,.schedule h2 { color:var(--forest); }
.tip-card ul,.season-list { padding-left:21px; }
.schedule { background:#e7edf4; border-radius:10px; margin-top:34px; padding:24px; }
.cta { background:var(--forest); border-radius:10px; color:#fff; margin-top:34px; padding:30px; text-align:center; }
.cta a { background:var(--red); border-radius:5px; color:#fff; display:inline-block; font-weight:bold; margin-top:8px; padding:11px 18px; text-decoration:none; }
@media (max-width:800px) {
 .site-header,.tips-header { align-items:flex-start; flex-direction:column; gap:14px; } nav { flex-wrap:wrap; gap:12px 20px; }
 .tips-header nav ul { flex-wrap:wrap; gap:12px 20px; }
 .home-hero { min-height:580px; } .hero-image { background-position:58% center; } .hero-image::after { background:linear-gradient(90deg,rgba(8,32,58,.86),rgba(13,52,93,.48)); } .hero-copy { padding:64px 28px; }
 .intro,.section-heading { gap:10px; grid-template-columns:1fr; } .intro p:last-child { padding-top:0; }
 .service-grid,.project-grid { grid-template-columns:1fr; } .project-featured { grid-row:auto; }
 .project-featured img,.project img { height:440px; } .contact { align-items:flex-start; flex-direction:column; }
}
@media (max-width:520px) {
 .site-header nav a:not(.nav-cta) { font-size:.72rem; } .section-shell { padding:72px 20px; }
 .home-hero { min-height:520px; } .project-featured img,.project img { height:360px; }
 .project figcaption { align-items:flex-start; flex-direction:column; }
}
