/* hotel-asam.de – statischer Nachbau der Onepage-Seite */
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/bricolage-grotesque-latin.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/poppins-400.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/poppins-400-italic.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/poppins-500.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-600.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/poppins-700.woff2) format("woff2")}

:root{
  --white:#fff;--black:#000;--light:#f3f2f1;--dark:#1c2121;--key2:#968c72;
  --gold:#c2a628;--grey:#5f5f5f;--muted:#6b6b6b;--line:#e6e2de;--faq-line:#ecd765;
  --grad:linear-gradient(100deg,#bc9a5c 0%,#a88a4d 55%,#9c7424 100%);
  --fh:"Bricolage Grotesque",system-ui,sans-serif;--ft:"Poppins",system-ui,sans-serif;
  --wrap:1376px;--narrow:1250px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--dark);font-family:var(--ft);font-size:18px;line-height:1.7;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p{margin:0}
h1,h2,h3{font-family:var(--fh);font-weight:700;letter-spacing:-.4px;line-height:1.4;margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.wrap-narrow{max-width:calc(var(--narrow) + 64px);margin:0 auto;padding:0 32px}
.bg-light{background:var(--light)}
.skip{position:fixed;top:-100px;left:16px;z-index:1000;background:#000;color:#fff;padding:8px 16px;font-size:14px;text-decoration:none}
.skip:focus{top:8px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:61px;padding:8px 31px;border-radius:100px;font-family:var(--ft);font-weight:600;font-size:17px;line-height:1.2;text-decoration:none;text-align:center;border:1px solid transparent;transition:filter .2s,background-color .2s}
.btn-gold{background:var(--grad);color:#fff}
.btn-gold:hover{filter:brightness(1.07)}
.btn-ghost{color:#fff;border-color:rgba(255,255,255,.25);background:rgba(28,33,33,.35)}
.btn-ghost:hover{background:rgba(28,33,33,.6)}
.btn-light{background:#fff;color:var(--dark);min-height:50px;font-size:16px}
.btn-block{display:flex;width:100%}

/* Header */
.site-header{position:relative;z-index:20;background:var(--dark);color:#fff}
.site-header--overlay{position:absolute;top:0;left:0;right:0;background:transparent}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:146px;max-width:1400px;padding:0 82px 0 104px}
.logo img{width:220px;height:auto}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:24px}
.site-nav a{color:rgba(255,255,255,.85);text-decoration:none;font-size:17px}
.site-nav a:hover{color:#fff;text-decoration:underline;text-underline-offset:6px}
.nav-toggle{display:none;width:56px;height:56px;border:0;border-radius:6px;background:rgba(255,255,255,.12);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:7px}
.nav-toggle span{display:block;width:20px;height:2px;background:#fff;transition:transform .2s}
.nav-open .nav-toggle span:first-child{transform:translateY(4.5px) rotate(45deg)}
.nav-open .nav-toggle span:last-child{transform:translateY(-4.5px) rotate(-45deg)}

/* Hero */
.hero{position:relative;min-height:877px;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center;overflow:hidden;background:#111}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.55)}
.hero-inner{position:relative;z-index:1;max-width:900px;padding:160px 24px 70px}
.hero h1{font-size:72px;line-height:1.2;color:#fff}
.hl{color:var(--gold);background:linear-gradient(transparent 58%,rgba(38,38,38,.6) 58%);border-radius:4px;padding:0 .08em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.hl em{font-style:italic}
.hero-text{margin-top:50px;color:rgba(255,255,255,.7);font-size:20px;display:grid;gap:16px}
.hero-text a{color:rgba(255,255,255,.85);text-underline-offset:6px;text-decoration-thickness:1px}
.hero-btns{margin-top:40px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.hero-rating{margin-top:90px;font-size:18px}
.hero-rating strong{font-weight:600}
.stars{display:inline-flex;gap:6px;color:#fff}
.stars svg{width:16px;height:16px;fill:currentColor}
.hero-rating .stars{margin-bottom:6px}

/* Amenities */
.amenities{padding:88px 0 60px}
.amen-list{list-style:none;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);gap:24px;text-align:center}
.amen-list li{display:flex;flex-direction:column;align-items:center;gap:14px;font-size:17px;line-height:1.8;padding:0 8px}
.amen-list svg{width:40px;height:40px}

/* About */
.about{padding:60px 0 100px}
.about-grid{display:grid;grid-template-columns:660px 1fr;gap:56px;align-items:start}
.about-media{display:grid;gap:16px}
.about-main{width:100%;aspect-ratio:660/648;object-fit:cover}
.about-small{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.about-small img{width:100%;aspect-ratio:322/219;object-fit:cover}
.about-text{padding-top:0;max-width:620px}
.eyebrow{font-family:var(--fh);font-weight:600;font-size:21px;line-height:1.4;letter-spacing:-.2px}
.h-lg{font-size:48px;line-height:1.45}
.h-xl{font-size:64px;line-height:1.3}
.about-text .h-lg{margin-top:16px}
.lead-grey{color:var(--grey);font-size:19px;line-height:1.8;margin-top:36px;opacity:.95}
.quote-icon{display:block;color:#9f815f;margin-top:48px}
.quote-icon svg{width:28px;height:28px}
.about-quote{font-family:var(--fh);font-weight:600;font-size:26px;line-height:1.45;margin-top:24px}
.about-p{font-size:17px;line-height:1.85;margin-top:50px;max-width:620px}
.about-p a{text-underline-offset:5px;text-decoration-thickness:1px}
.about-text .btn{margin-top:26px}

/* Stats */
.stats{padding:0 0 70px}
.stats .wrap{border-top:1px solid var(--line);padding-top:90px;max-width:calc(var(--wrap) + 40px)}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;text-align:center}
.stat-num{font-family:var(--fh);font-weight:700;font-size:64px;line-height:1.05;letter-spacing:.06em}
.stat-num .unit{margin-left:.15em}
.stat-label{font-family:var(--fh);font-weight:600;font-size:21px;line-height:1.3}
.stat-desc{color:var(--grey);font-size:17px;line-height:1.8;margin:26px auto 0;max-width:300px}

/* Rooms */
.rooms{padding:30px 0 60px}
.sec-head{text-align:center;max-width:760px;margin:0 auto 70px}
.sec-head .h-xl{margin-top:14px}
.sec-head .lead-grey{margin:22px auto 0;font-size:19px;max-width:600px}
.room{display:grid;grid-template-columns:1fr 1fr;background:#fff;margin-bottom:16px}
.room--reverse .room-media{order:2}
.room-media{background:#dbd7d4;min-height:100%}
.room-media img{width:100%;height:100%;object-fit:cover}
.room-top{padding:48px 48px 44px;border-bottom:1px solid var(--line)}
.room-bottom{padding:40px 48px 48px}
.pill{display:inline-block;background:var(--light);border-radius:100px;padding:2px 12px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;line-height:1.8}
.pill--dark{background:rgba(28,33,33,.72);color:#fff}
.room-title{font-size:48px;line-height:1.3;margin-top:22px}
.room-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:28px 0 0;max-width:590px}
.room-specs dt{font-family:var(--fh);font-weight:600;font-size:18px}
.room-specs dd{margin:4px 0 0;color:var(--grey);font-size:17px}
.room-h{font-family:var(--fh);font-weight:600;font-size:21px;margin-top:0}
.room-list{color:var(--grey);font-size:18px;line-height:1.75;margin:8px 0 34px}
.room-bottom .btn{margin-top:10px}

/* Gallery */
.gallery{background:#fff;padding:60px 0}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery-grid img{width:100%;aspect-ratio:406/446;object-fit:cover;border-radius:16px}

/* Testimonials */
.testimonials{padding:30px 0 60px}
.t-top{display:grid;grid-template-columns:448px 1fr;gap:16px}
.t-intro{padding-top:40px;padding-right:40px}
.t-intro .h-lg{margin-top:20px;line-height:1.45;max-width:340px}
.t-intro p:last-child{margin-top:36px;font-size:17px;line-height:1.8;max-width:360px}
.t-card{margin:0;background:#fff;padding:40px;display:flex;flex-direction:column;min-height:402px}
.t-card--dark{background:var(--dark);color:#fff;min-height:410px}
.t-card .stars{color:var(--dark)}
.t-card--dark .stars{color:#a7967c}
.t-card blockquote{margin:30px 0 0;font-size:17px;line-height:1.8;flex:1}
.t-card--dark blockquote{margin-top:22px;max-width:740px}
.t-card .it{font-style:italic}
.t-card figcaption{display:flex;flex-direction:column;margin-top:24px}
.t-card--dark figcaption{flex:1;margin-top:26px}
.t-card--dark blockquote{flex:0}
.t-name{font-weight:600}
.t-card--dark .t-name{font-weight:400}
.t-from{color:var(--muted);font-size:16px}
.t-card--dark .t-from{color:rgba(255,255,255,.55)}
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}

/* Contact */
.contact{background:var(--key2);color:#fff;padding:26px 0 120px}
.contact-grid{display:grid;grid-template-columns:448px 1fr;gap:16px;align-items:start}
.contact-text .h-lg{margin-top:14px;line-height:1.45;max-width:300px}
.contact-mail{font-family:var(--fh);font-weight:700;font-size:36px;margin-top:80px;line-height:1.3;word-break:break-word}
.contact-note{color:rgba(255,255,255,.5);font-size:17px;margin-top:10px}
.map-ph{min-height:456px;background:#e9e5dc;color:var(--dark);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:32px;background-image:linear-gradient(90deg,rgba(255,255,255,.55) 2px,transparent 2px),linear-gradient(rgba(255,255,255,.55) 2px,transparent 2px);background-size:64px 64px}
.map-pin{width:40px;height:40px;color:#111}
.map-ph p{font-size:16px;max-width:360px}

/* FAQ */
.faq{background:#fff;padding:60px 0 70px}
.faq-grid{display:grid;grid-template-columns:480px 1fr;gap:64px;align-items:start}
.faq-intro .h-lg{max-width:420px}
.faq-intro p{margin-top:28px;font-size:19px;line-height:1.8}
.faq-list{display:grid;gap:16px}
.faq-item{border:2px solid var(--faq-line)}
.faq-q{font-size:inherit}
.faq-q button{all:unset;box-sizing:border-box;display:flex;width:100%;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;cursor:pointer;font-family:var(--fh);font-weight:600;font-size:21px;line-height:1.4;color:var(--dark)}
.faq-q button:focus-visible{outline:2px solid var(--dark);outline-offset:2px}
.faq-q svg{width:18px;height:18px;flex:none;color:#444;transition:transform .2s}
.faq-q button[aria-expanded=true] svg .v{display:none}
.faq-a{padding:0 32px 28px;font-size:17px;line-height:1.8;color:var(--grey)}

/* Footer */
.site-footer{background:#000;color:#fff;padding:86px 0 44px}
.footer-grid{display:grid;grid-template-columns:1fr auto auto;gap:24px 90px;align-items:end}
.footer-brand .logo img{width:224px}
.footer-text{color:rgba(255,255,255,.45);font-size:17px;line-height:1.8;margin-top:40px;max-width:430px}
.footer-copy{color:rgba(255,255,255,.45);font-size:15px;margin-top:100px}
.footer-legal ul{list-style:none;margin:0;padding:0;display:flex;gap:52px}
.footer-legal a{color:rgba(255,255,255,.45);text-decoration:none;font-size:17px}
.footer-top a{color:rgba(255,255,255,.85);text-decoration:none;font-size:17px;margin-right:150px}
.footer-legal a:hover,.footer-top a:hover{color:#fff;text-decoration:underline}

/* Legal */
.legal{padding:110px 0 110px}
.legal-title{font-size:64px;text-align:center;line-height:1.2;margin-bottom:88px}
.legal-text{font-size:18px;line-height:1.9;overflow-wrap:anywhere}
.legal-text p{margin:0 0 34px}
.nf{text-align:center}
.nf-text{margin-bottom:32px}

/* Responsive */
@media (max-width:1200px){
  .header-inner{padding:0 32px}
  .about-grid{grid-template-columns:1fr 1fr}
  .faq-grid{grid-template-columns:1fr 1.3fr}
  .footer-top a{margin-right:0}
}
@media (max-width:992px){
  body{font-size:17px}
  .amen-list{grid-template-columns:repeat(3,1fr);row-gap:40px}
  .about-grid,.t-top,.contact-grid,.faq-grid{grid-template-columns:1fr}
  .about-text{max-width:none}
  .room{grid-template-columns:1fr}
  .room--reverse .room-media{order:0}
  .t-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;align-items:start}
  .h-xl{font-size:48px}
}
@media (max-width:768px){
  .header-inner{min-height:120px;padding:0 24px}
  .logo img{width:196px}
  .nav-toggle{display:flex}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--dark);padding:8px 24px 24px}
  .nav-open .site-nav{display:block}
  .site-nav ul{flex-direction:column;gap:0}
  .site-nav a{display:block;padding:12px 0;font-size:18px;border-bottom:1px solid rgba(255,255,255,.1)}
  .hero{min-height:920px}
  .hero-inner{padding:120px 24px 60px}
  .hero h1{font-size:34px;line-height:1.25}
  .hero-text{font-size:18px;margin-top:40px;gap:14px}
  .hero-btns{flex-direction:column;gap:16px;margin-top:40px}
  .hero-btns .btn{width:100%}
  .hero-rating{margin-top:80px}
  .amenities{padding:40px 0 30px}
  .amen-list{grid-template-columns:1fr;row-gap:28px}
  .amen-list svg{width:40px;height:40px}
  .wrap,.wrap-narrow{padding:0 24px}
  .about{padding:30px 0 60px}
  .h-lg{font-size:28px;line-height:1.4}
  .h-xl{font-size:34px;line-height:1.4}
  .eyebrow{font-size:17px}
  .lead-grey{font-size:19px;margin-top:28px}
  .about-quote{font-size:22px}
  .about-p{margin-top:40px}
  .stats .wrap{padding-top:60px}
  .stats-grid{grid-template-columns:1fr;gap:40px}
  .stat-num{font-size:60px}
  .sec-head{margin-bottom:40px}
  .room-top{padding:32px 24px}
  .room-bottom{padding:32px 24px 24px}
  .room-title{font-size:26px}
  .room-specs{grid-template-columns:1fr;gap:28px}
  .room-h{font-size:17px}
  .room-list{font-size:17px}
  .gallery{padding:40px 0}
  .gallery-grid{grid-template-columns:1fr}
  .t-intro{padding:0}
  .t-card{min-height:0;padding:32px 24px}
  .t-card--dark{min-height:0}
  .contact{padding:40px 0 60px}
  .contact-mail{font-size:26px;margin-top:40px}
  .map-ph{min-height:300px}
  .faq-q button{padding:22px 20px;font-size:17px}
  .faq-a{padding:0 20px 22px}
  .legal{padding:60px 0}
  .legal-title{font-size:40px;margin-bottom:48px}
  .legal-text{font-size:17px}
  .footer-legal ul{gap:32px}
  .footer-copy{margin-top:40px}
}
