/* austria-tour.info — static rebuild
   Headings use a CJK serif (明體/宋體): the classical face suits Habsburg,
   architecture and concert material better than another grotesk, and every
   platform already ships one, so it costs no download. */

:root{
  --ink:#16130f;
  --ink-soft:#4a423a;
  --muted:#7d7268;
  --bg:#fdfcfa;
  --bg-warm:#f6f1ea;
  --deep:#12202e;
  --deep-2:#1b2f42;
  --accent:#d96f14;
  --accent-ink:#a8530a;
  --line:#e6ded2;
  --line-soft:#f0e9df;
  --maxw:1240px;
  --gut:clamp(20px,5vw,64px);
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"Inter","Helvetica Neue","PingFang TC","PingFang SC",
              "Hiragino Sans GB","Microsoft JhengHei","Noto Sans TC",sans-serif;
  font-size:17px;line-height:1.85;-webkit-font-smoothing:antialiased;
  font-feature-settings:"kern" 1;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
[hidden]{display:none!important;}

.serif{font-family:"Cormorant Garamond","Songti TC","Songti SC","SimSun",
  "Noto Serif TC","Times New Roman",serif;}

h1,h2,h3,.serif-h{
  font-family:"Cormorant Garamond","Songti TC","Songti SC","SimSun",
              "Noto Serif TC","Times New Roman",serif;
  font-weight:600;letter-spacing:.005em;
}

.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut);}
.narrow{max-width:780px;}

/* ---------------- eyebrow ---------------- */
.eyebrow{
  font-family:"Inter",sans-serif;
  font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);margin:0 0 14px;
}
.on-dark .eyebrow{color:#e9a663;}

/* ---------------- buttons ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:52px;padding:0 30px;border:0;border-radius:2px;
  background:var(--ink);color:#fff;text-decoration:none;
  font-family:"Inter",sans-serif;font-size:14.5px;font-weight:600;
  letter-spacing:.04em;line-height:1;cursor:pointer;
  transition:background .2s ease,transform .2s ease;
}
.btn:hover{background:var(--accent-ink);}
.btn.accent{background:var(--accent);}
.btn.accent:hover{background:var(--accent-ink);}
.btn.ghost{
  background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55);
}
.btn.ghost:hover{background:rgba(255,255,255,.14);border-color:#fff;}
.btn.dark-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);}
.btn.dark-ghost:hover{background:var(--bg-warm);border-color:var(--ink);}

/* a quieter call to action: underlined text with a rule that grows */
.linkcta{
  display:inline-flex;align-items:center;gap:9px;text-decoration:none;
  font-family:"Inter",sans-serif;font-size:14.5px;font-weight:600;
  letter-spacing:.03em;color:var(--accent-ink);padding-bottom:3px;
  border-bottom:1px solid currentColor;
}
.linkcta:hover{color:var(--ink);}
.on-dark .linkcta{color:#f0b378;}
.on-dark .linkcta:hover{color:#fff;}

/* ---------------- header ---------------- */
header{
  position:sticky;top:0;z-index:60;background:rgba(253,252,250,.92);
  backdrop-filter:saturate(150%) blur(14px);border-bottom:1px solid var(--line-soft);
}
.hrow{display:flex;align-items:center;gap:18px;min-height:82px;}
.logo{flex:0 0 auto;}
.logo img{height:46px;width:auto;}
.menu{margin-left:auto;display:flex;flex-wrap:wrap;gap:0 4px;justify-content:flex-end;align-items:center;}
.menu a{
  padding:9px 12px;text-decoration:none;font-size:13.5px;letter-spacing:.02em;
  color:var(--ink-soft);border-bottom:1px solid transparent;
}
.menu a:hover{color:var(--ink);border-bottom-color:var(--accent);}
.menu a.on{color:var(--ink);border-bottom-color:var(--accent);}
.navtoggle{display:none;}

/* ---------------- hero ---------------- */
.hero{
  position:relative;min-height:min(88vh,760px);
  display:flex;align-items:flex-end;
  background:var(--deep) url("img/herobg.jpg") center 40%/cover no-repeat;
}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(8,14,20,.88) 0%,rgba(8,14,20,.42) 46%,rgba(8,14,20,.18) 100%);
}
.hero-in{position:relative;z-index:2;width:100%;padding-block:clamp(48px,9vw,104px);color:#fff;}
.hero h1{
  margin:0 0 22px;font-size:clamp(38px,7.4vw,88px);line-height:1.06;
  font-weight:500;letter-spacing:-.01em;max-width:16ch;
  text-shadow:0 2px 40px rgba(0,0,0,.35);
}
.hero-lede{
  margin:0;font-size:clamp(16px,1.8vw,20px);line-height:1.75;
  color:rgba(255,255,255,.9);max-width:40ch;font-weight:300;
}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px;}

/* thin credential strip under the hero */
.strip{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.strip div{padding:26px var(--gut);border-right:1px solid var(--line);}
.strip div:last-child{border-right:0;}
.strip b{
  display:block;font-family:"Cormorant Garamond","Songti TC","SimSun",serif;
  font-size:22px;font-weight:600;margin-bottom:3px;letter-spacing:.01em;
}
.strip span{font-size:13.5px;color:var(--muted);line-height:1.7;}

/* ---------------- sections ---------------- */
section{padding-block:clamp(64px,9vw,132px);}
section.warm{background:var(--bg-warm);}
section.dark{background:var(--deep);color:#fff;}
section.dark h1,section.dark h2,section.dark h3{color:#fff;}
section.dark p{color:rgba(255,255,255,.82);}

.sec-head{max-width:760px;margin-bottom:clamp(36px,5vw,60px);}
.sec-head.center{margin-inline:auto;text-align:center;}
.sec-title{
  margin:0;font-size:clamp(30px,4.6vw,52px);line-height:1.18;
  font-weight:500;letter-spacing:-.005em;
}
.sec-sub{
  margin:18px 0 0;font-size:17px;line-height:1.85;color:var(--muted);
  font-weight:300;max-width:60ch;
}
.sec-head.center .sec-sub{margin-inline:auto;}

/* ---------------- cards ---------------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:clamp(20px,3vw,40px);}
.card{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  background:transparent;
}
.card-img{overflow:hidden;aspect-ratio:3/2;background:var(--bg-warm);}
.card-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.7,.3,1);
}
.card:hover .card-img img{transform:scale(1.045);}
.card-body{padding:22px 0 0;display:flex;flex-direction:column;gap:9px;flex:1;}
.card h3{
  margin:0;font-size:25px;font-weight:600;line-height:1.32;letter-spacing:.005em;
}
.card p{margin:0;font-size:15px;line-height:1.8;color:var(--muted);flex:1;font-weight:300;}
.card .linkcta{align-self:flex-start;margin-top:6px;}
.card-num{
  font-family:"Inter",sans-serif;font-size:11.5px;letter-spacing:.2em;
  color:var(--accent);font-weight:600;
}

/* ---------------- split rows ---------------- */
.split{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(28px,5vw,76px);align-items:center;
}
.split-img img{width:100%;}
.split h2,.split h3{margin:0 0 18px;font-size:clamp(26px,3.4vw,40px);line-height:1.24;font-weight:500;}
.split p{margin:0 0 16px;font-size:16.5px;line-height:1.88;color:var(--ink-soft);font-weight:300;}
section.dark .split p{color:rgba(255,255,255,.8);}

.checks{list-style:none;margin:24px 0 30px;padding:0;}
.checks li{
  padding:11px 0 11px 30px;position:relative;font-size:16px;
  border-bottom:1px solid var(--line-soft);
}
section.dark .checks li{border-bottom-color:rgba(255,255,255,.13);}
.checks li::before{
  content:"";position:absolute;left:2px;top:22px;
  width:11px;height:1px;background:var(--accent);
}

/* ---------------- guide / quote ---------------- */
.pull{
  max-width:880px;margin:0 auto;text-align:center;
}
.pull p{
  margin:0 0 22px;font-size:clamp(18px,2.2vw,24px);line-height:1.72;
  font-weight:300;
}
.pull .lead{
  font-family:"Cormorant Garamond","Songti TC","SimSun",serif;
  font-size:clamp(26px,3.6vw,40px);line-height:1.3;font-weight:500;
}
.cred{
  display:inline-block;margin-top:14px;padding:11px 26px;
  border:1px solid rgba(255,255,255,.28);border-radius:2px;
  font-size:14.5px;letter-spacing:.03em;
}
section:not(.dark) .cred{border-color:var(--line);}

/* ---------------- contact ---------------- */
.contact-grid{
  display:grid;grid-template-columns:auto 1fr;gap:clamp(26px,4vw,56px);
  align-items:center;max-width:900px;
}
.qr{margin:0;text-align:center;}
.qr img{width:200px;border:1px solid var(--line);}
.qr figcaption{margin-top:11px;font-size:13px;color:var(--muted);letter-spacing:.02em;}
.channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;}
.ch{
  display:flex;flex-direction:column;gap:3px;justify-content:center;
  min-height:72px;padding:16px 0;text-decoration:none;
  border-bottom:1px solid var(--line);
}
a.ch:hover .ch-value{color:var(--accent-ink);}
.ch-label{
  font-family:"Inter",sans-serif;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);font-weight:600;
}
.ch-value{font-size:17px;font-weight:500;word-break:break-all;letter-spacing:.01em;}

/* ---------------- inner pages ---------------- */
.page{padding-block:clamp(44px,6vw,84px);}
.page-head{max-width:820px;margin-bottom:clamp(30px,4vw,52px);}
.page-title{
  margin:0;font-size:clamp(32px,5vw,56px);line-height:1.14;font-weight:500;
  letter-spacing:-.005em;
}
.page-title::after{
  content:"";display:block;width:64px;height:2px;background:var(--accent);margin-top:26px;
}
.prose{max-width:760px;font-size:17px;line-height:1.95;color:var(--ink-soft);}
.prose h1{font-size:clamp(26px,3.4vw,36px);margin:48px 0 14px;font-weight:500;line-height:1.3;color:var(--ink);}
.prose h2{font-size:clamp(24px,3vw,32px);margin:46px 0 14px;font-weight:500;line-height:1.32;color:var(--ink);}
.prose h3{font-size:clamp(21px,2.4vw,26px);margin:38px 0 12px;font-weight:600;line-height:1.4;color:var(--ink);}
.prose h4,.prose h5,.prose h6{
  font-family:"Inter",sans-serif;font-size:15px;letter-spacing:.12em;text-transform:uppercase;
  margin:34px 0 10px;font-weight:600;color:var(--ink);
}
.prose p{margin:0 0 20px;}
.prose img{margin:32px 0;}
.prose ul,.prose ol{margin:0 0 22px;padding-left:22px;}
.prose li{margin-bottom:9px;}
.prose a{color:var(--accent-ink);text-decoration:none;border-bottom:1px solid var(--line);}
.prose a:hover{border-bottom-color:var(--accent);}
.prose blockquote{
  margin:32px 0;padding:4px 0 4px 28px;border-left:2px solid var(--accent);
  font-family:"Cormorant Garamond","Songti TC","SimSun",serif;
  font-size:clamp(20px,2.4vw,26px);line-height:1.55;color:var(--ink);
}
.prose blockquote p{margin:0;}
.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0;}
.prose table{width:100%;border-collapse:collapse;margin:28px 0;font-size:16px;}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:14px 14px 14px 0;text-align:left;}
.prose th{
  font-family:"Inter",sans-serif;font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);font-weight:600;border-bottom-color:var(--ink);
}
.prose figure{margin:32px 0;}
.prose figcaption{font-size:14px;color:var(--muted);margin-top:10px;}

/* blog index */
.postlist{list-style:none;margin:0;padding:0;max-width:820px;}
.postlist li{border-bottom:1px solid var(--line);}
.postlist a{
  display:block;padding:22px 0;text-decoration:none;font-size:19px;line-height:1.5;
  font-family:"Cormorant Garamond","Songti TC","SimSun",serif;font-weight:600;
  transition:padding-left .25s ease;
}
.postlist a:hover{padding-left:12px;color:var(--accent-ink);}

/* ---------------- footer ---------------- */
footer{
  background:var(--deep);color:rgba(255,255,255,.72);
  padding-block:clamp(46px,6vw,76px);font-size:14.5px;line-height:1.95;
}
footer a{color:#fff;}
.fgrid{display:grid;grid-template-columns:1fr auto;gap:26px;align-items:end;}
.fbrand{
  font-family:"Cormorant Garamond","Songti TC","SimSun",serif;
  font-size:24px;color:#fff;font-weight:500;margin-bottom:6px;
}
.fcontact{color:rgba(255,255,255,.6);font-size:13.5px;}

@media (max-width:980px){
  .split{grid-template-columns:1fr;}
  .split.rev .split-img{order:-1;}
  .contact-grid{grid-template-columns:1fr;justify-items:start;}
  .fgrid{grid-template-columns:1fr;align-items:start;}
}
@media (max-width:860px){
  body{font-size:16px;}
  .menu{
    position:absolute;top:82px;left:0;right:0;flex-direction:column;
    align-items:stretch;gap:0;background:var(--bg);
    border-bottom:1px solid var(--line);padding:6px var(--gut) 20px;
  }
  .menu[hidden]{display:none;}
  .menu a{padding:14px 0;font-size:16px;min-height:48px;display:flex;align-items:center;
    border-bottom:1px solid var(--line-soft);}
  .menu a:hover,.menu a.on{border-bottom-color:var(--line-soft);}
  .navtoggle{
    display:inline-flex;align-items:center;justify-content:center;margin-left:auto;
    width:48px;height:48px;border:1px solid var(--line);background:transparent;
    color:var(--ink);font-size:19px;cursor:pointer;line-height:1;border-radius:2px;
  }
  .hrow{min-height:70px;}
  .menu{top:70px;}
  .logo img{height:38px;}
  .hero{min-height:74vh;}
  .strip div{border-right:0;border-bottom:1px solid var(--line);}
  .strip div:last-child{border-bottom:0;}
  .prose table{display:block;overflow-x:auto;white-space:nowrap;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none!important;animation:none!important;}
}

/* ---------------- language selector ---------------- */
.langbar{
  position:relative;display:inline-flex;align-items:center;gap:7px;
  margin-left:16px;padding:7px 12px;border:1px solid var(--line);border-radius:2px;
  color:var(--ink-soft);cursor:pointer;
}
.langbar:hover{border-color:var(--ink);color:var(--ink);}
.langbar .globe{
  width:17px;height:17px;flex:0 0 auto;
  fill:none;stroke:currentColor;stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round;
}
.langbar #langcode{
  font-family:"Inter",sans-serif;font-size:12.5px;font-weight:600;
  letter-spacing:.06em;line-height:1;white-space:nowrap;
}
/* the real control, invisible but still the thing you click */
.langbar select{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;cursor:pointer;border:0;padding:0;
  font-size:16px; /* keeps iOS from zooming the page on focus */
}
.langbar:focus-within{border-color:var(--accent);}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
/* Google's own chrome: top banner, tooltip, and the offset it forces on body */
.goog-te-banner-frame,.skiptranslate>iframe,#goog-gt-tt,.goog-te-balloon-frame{display:none!important;}
body{top:0!important;}
#gt{display:none;}
font[style]{background:none!important;box-shadow:none!important;}
@media (max-width:860px){
  .langbar{margin:16px 0 0;width:100%;justify-content:center;padding-block:13px;}
}

/* ---------------- room for translated text ----------------
   Everything above was sized against Chinese, where a headline is a dozen
   characters. English and German run two to three times longer, so anything
   that was measured in ch or assumed a short string needs slack. */
.hero h1{
  font-size:clamp(30px,5.2vw,64px);
  max-width:22ch;
  text-wrap:balance;
  hyphens:auto;
}
.hero-lede{max-width:46ch;text-wrap:pretty;}
.sec-title,.page-title,.split h2,.split h3,.card h3,.pull .lead{text-wrap:balance;}
.strip b{font-size:clamp(17px,1.9vw,22px);line-height:1.3;}
.strip span{hyphens:auto;}
.btn{text-align:center;line-height:1.25;padding-block:12px;height:auto;min-height:52px;}
.linkcta{line-height:1.4;}

/* The menu holds eight items. In Chinese they are three characters each; in
   English they are whole phrases, so it collapses to the toggle much earlier. */
@media (max-width:1180px){
  .menu{
    position:absolute;top:82px;left:0;right:0;flex-direction:column;
    align-items:stretch;gap:0;background:var(--bg);
    border-bottom:1px solid var(--line);padding:6px var(--gut) 20px;
    box-shadow:0 18px 40px rgba(0,0,0,.07);
  }
  .menu[hidden]{display:none;}
  .menu a{
    padding:14px 0;font-size:16px;min-height:48px;display:flex;align-items:center;
    border-bottom:1px solid var(--line-soft);
  }
  .menu a:hover,.menu a.on{border-bottom-color:var(--line-soft);}
  .navtoggle{
    display:inline-flex;align-items:center;justify-content:center;margin-left:auto;
    width:48px;height:48px;border:1px solid var(--line);background:transparent;
    color:var(--ink);font-size:19px;cursor:pointer;line-height:1;border-radius:2px;
  }
  .langbar{margin:16px 0 0;width:100%;justify-content:center;padding-block:13px;}
}