/* === Royal Collections of Denmark — rosenborg-castle.pro === */

:root{
  --bg:#0f0a08;
  --bg-alt:#1a1311;
  --surface:#2a1f1c;
  --surface-2:#3a2c27;
  --burgundy:#6b1f2b;
  --burgundy-dark:#4a121d;
  --gold:#c9a45c;
  --gold-light:#e6c987;
  --gold-soft:#8a7548;
  --cream:#f4ecd9;
  --text:#e8dcc4;
  --muted:#a99880;
  --line:rgba(201,164,92,.25);
  --shadow:0 14px 40px rgba(0,0,0,.55);
  --serif:'Cormorant Garamond', 'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans:'Inter', 'Helvetica Neue', Arial, sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  line-height:1.65;
  font-size:16px;
  overflow-x:hidden;
}

h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:.5px;color:var(--cream)}
h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1.1}
h2{font-size:clamp(1.7rem,3.2vw,2.6rem);margin-bottom:1rem;color:var(--gold-light)}
h3{font-size:1.4rem;margin-bottom:.6rem;color:var(--gold)}
p{margin-bottom:1rem}
a{color:var(--gold-light);text-decoration:none;transition:color .25s}
a:hover{color:var(--cream)}

img{max-width:100%;display:block}

.container{max-width:1180px;margin:0 auto;padding:0 28px}

/* === Header / Nav === */
.site-header{
  position:sticky;top:0;z-index:50;
  background:linear-gradient(180deg, rgba(15,10,8,.96), rgba(15,10,8,.88));
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(6px);
}
.nav-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 0;gap:24px;
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.crown{
  width:42px;height:42px;display:grid;place-items:center;
  background:radial-gradient(circle at 30% 30%, var(--gold-light), var(--burgundy-dark));
  border-radius:50%;
  box-shadow:0 0 0 1px var(--gold-soft), inset 0 0 12px rgba(0,0,0,.35);
  font-family:var(--serif);font-weight:700;color:#1a0d0a;font-size:1.2rem;
}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-text .top{font-family:var(--serif);font-size:1.25rem;color:var(--cream);letter-spacing:1px}
.brand-text .sub{font-size:.7rem;letter-spacing:3px;color:var(--gold);text-transform:uppercase}

.nav-menu{display:flex;gap:6px;flex-wrap:wrap}
.nav-menu a{
  padding:9px 14px;border-radius:2px;
  font-size:.86rem;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--muted);
}
.nav-menu a:hover,.nav-menu a.active{
  color:var(--gold-light);
  background:rgba(201,164,92,.08);
}
.menu-toggle{display:none;background:none;border:1px solid var(--line);color:var(--gold);padding:8px 12px;cursor:pointer;border-radius:2px;font-size:1.1rem}

/* === Hero === */
.hero{
  position:relative;
  min-height:78vh;
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  padding:80px 24px;
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(15,10,8,.55), rgba(15,10,8,.85)),
    url('images/rosenborg.jpg') center/cover no-repeat;
  z-index:-1;
  filter:saturate(.85);
}
.hero-inner{max-width:920px}
.hero .kicker{
  display:inline-block;font-size:.75rem;letter-spacing:5px;
  color:var(--gold);text-transform:uppercase;margin-bottom:24px;
  padding:8px 18px;border:1px solid var(--gold-soft);border-radius:2px;
}
.hero h1{margin-bottom:20px}
.hero .lead{font-size:1.15rem;color:var(--text);max-width:680px;margin:0 auto 32px}
.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

.btn{
  display:inline-block;
  padding:13px 28px;
  font-size:.82rem;letter-spacing:2.5px;text-transform:uppercase;
  border:1px solid var(--gold);
  background:transparent;color:var(--gold-light);
  cursor:pointer;border-radius:2px;
  transition:all .3s;
}
.btn:hover{background:var(--gold);color:#1a0d0a}
.btn-primary{background:var(--burgundy);border-color:var(--burgundy);color:var(--cream)}
.btn-primary:hover{background:var(--burgundy-dark);color:var(--gold-light);border-color:var(--gold)}

/* === Page header === */
.page-hero{
  padding:100px 24px 70px;
  text-align:center;
  position:relative;
  background:linear-gradient(180deg, rgba(106,31,43,.18), transparent),
             linear-gradient(180deg, var(--bg-alt), var(--bg));
  border-bottom:1px solid var(--line);
}
.page-hero h1{color:var(--gold-light)}
.page-hero .crest{
  font-size:.7rem;letter-spacing:6px;color:var(--gold);text-transform:uppercase;margin-bottom:18px;
}
.page-hero .lead{max-width:760px;margin:18px auto 0;color:var(--muted)}

/* === Sections === */
section{padding:80px 0}
.section-head{text-align:center;max-width:740px;margin:0 auto 56px}
.section-head .eyebrow{font-size:.72rem;letter-spacing:5px;text-transform:uppercase;color:var(--gold);margin-bottom:14px;display:block}
.section-head p{color:var(--muted)}

.divider{
  text-align:center;margin:18px 0 28px;
  color:var(--gold);font-size:1.3rem;letter-spacing:8px;
}

/* === Grid cards === */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:28px}
.card{
  background:var(--bg-alt);
  border:1px solid var(--line);
  border-radius:2px;
  overflow:hidden;
  transition:transform .35s, box-shadow .35s, border-color .35s;
  display:flex;flex-direction:column;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold-soft)}
.card-img{position:relative;height:240px;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.card:hover .card-img img{transform:scale(1.06)}
.card-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(15,10,8,.7));
}
.card-body{padding:26px 24px 28px;display:flex;flex-direction:column;flex:1}
.card-body .label{font-size:.7rem;letter-spacing:3px;color:var(--gold);text-transform:uppercase;margin-bottom:8px}
.card-body p{color:var(--muted);font-size:.95rem;margin-bottom:18px;flex:1}
.card-body .more{
  font-size:.78rem;letter-spacing:2px;text-transform:uppercase;
  color:var(--gold-light);align-self:flex-start;
  border-bottom:1px solid var(--gold-soft);padding-bottom:2px;
}

/* === Castle / detail block === */
.detail-block{
  display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;
  margin-bottom:80px;
}
.detail-block.reverse{direction:rtl}
.detail-block.reverse > *{direction:ltr}
.detail-block img{border-radius:2px;box-shadow:var(--shadow);height:420px;width:100%;object-fit:cover}
.detail-block .da{display:inline-block;font-size:.72rem;letter-spacing:4px;color:var(--gold);text-transform:uppercase;margin-bottom:10px}
.detail-block h2{color:var(--cream)}
.detail-block .danish-name{font-family:var(--serif);font-style:italic;color:var(--gold-light);font-size:1.15rem;margin-bottom:14px}
.detail-block p{color:var(--text);font-size:1rem}

/* === Timeline === */
.timeline{position:relative;max-width:880px;margin:0 auto;padding:20px 0}
.timeline::before{
  content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;
  background:linear-gradient(180deg, transparent, var(--gold-soft) 10%, var(--gold-soft) 90%, transparent);
}
.tl-item{position:relative;width:50%;padding:22px 40px;margin-bottom:18px}
.tl-item:nth-child(odd){left:0;text-align:right}
.tl-item:nth-child(even){left:50%}
.tl-item::before{
  content:"";position:absolute;top:32px;width:14px;height:14px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 0 3px var(--bg), 0 0 0 4px var(--gold-soft);
}
.tl-item:nth-child(odd)::before{right:-7px}
.tl-item:nth-child(even)::before{left:-7px}
.tl-year{font-family:var(--serif);font-size:1.6rem;color:var(--gold-light);margin-bottom:6px}
.tl-item h4{color:var(--cream);margin-bottom:8px}
.tl-item p{color:var(--muted);font-size:.95rem;margin:0}

/* === Quote / pull === */
.pullquote{
  margin:60px auto;max-width:820px;text-align:center;
  padding:40px 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.pullquote q{
  font-family:var(--serif);font-style:italic;font-size:1.45rem;color:var(--cream);
  display:block;margin-bottom:14px;line-height:1.5;
}
.pullquote cite{font-size:.75rem;letter-spacing:3px;color:var(--gold);text-transform:uppercase;font-style:normal}

/* === Stats === */
.stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:30px;text-align:center;
  background:linear-gradient(180deg, var(--bg-alt), transparent);
  padding:50px 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.stat .num{font-family:var(--serif);font-size:2.6rem;color:var(--gold-light);display:block;line-height:1}
.stat .lbl{font-size:.72rem;letter-spacing:3px;color:var(--muted);text-transform:uppercase;margin-top:8px;display:block}

/* === Forms === */
.contact-wrap{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.contact-info{padding:30px 0}
.contact-info h3{margin-top:24px}
.contact-info .info-item{margin-bottom:18px}
.contact-info .info-item .lbl{font-size:.7rem;letter-spacing:3px;color:var(--gold);text-transform:uppercase;margin-bottom:4px}
.contact-info .info-item .val{color:var(--text)}

.form{
  background:var(--bg-alt);
  border:1px solid var(--line);
  padding:36px 32px;
  border-radius:2px;
}
.form .field{margin-bottom:20px}
.form label{
  display:block;font-size:.72rem;letter-spacing:3px;
  color:var(--gold);text-transform:uppercase;margin-bottom:8px;
}
.form input,.form select,.form textarea{
  width:100%;
  background:var(--bg);
  border:1px solid var(--line);
  color:var(--text);
  padding:12px 14px;
  font-family:var(--sans);font-size:.95rem;
  border-radius:2px;
  transition:border-color .25s;
}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--gold)}
.form textarea{resize:vertical;min-height:140px}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form .btn{margin-top:8px;width:100%}

/* === Policy text === */
.policy-content{max-width:880px;margin:0 auto;padding:20px 0}
.policy-content h2{margin-top:40px}
.policy-content h3{margin-top:30px}
.policy-content ul{margin:0 0 1.2rem 1.2rem;color:var(--text)}
.policy-content li{margin-bottom:8px}
.policy-content .meta{
  font-size:.78rem;color:var(--muted);
  border:1px solid var(--line);padding:14px 18px;border-radius:2px;
  margin-bottom:30px;
}

/* === Footer === */
.site-footer{
  background:linear-gradient(180deg, var(--bg) 0%, #080503 100%);
  border-top:1px solid var(--line);
  padding:60px 0 30px;margin-top:60px;
  color:var(--muted);font-size:.9rem;
}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.footer-grid h4{color:var(--gold-light);font-size:1rem;margin-bottom:14px;letter-spacing:1px}
.footer-grid a{display:block;color:var(--muted);padding:4px 0;font-size:.88rem}
.footer-grid a:hover{color:var(--gold)}
.footer-brand p{color:var(--muted);font-size:.9rem;margin-top:12px;line-height:1.6}
.footer-bottom{
  border-top:1px solid var(--line);padding-top:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-size:.8rem;color:var(--muted);
}

/* === Cookie banner === */
.cookie-banner{
  position:fixed;bottom:20px;left:20px;right:20px;
  max-width:680px;margin:0 auto;
  background:var(--surface);
  border:1px solid var(--gold-soft);
  padding:22px 26px;
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  box-shadow:var(--shadow);border-radius:2px;
  z-index:100;
  transform:translateY(0);
  transition:transform .4s, opacity .4s;
}
.cookie-banner.hidden{transform:translateY(150%);opacity:0;pointer-events:none}
.cookie-banner .ck-icon{
  width:42px;height:42px;border-radius:50%;
  background:var(--burgundy);color:var(--gold-light);
  display:grid;place-items:center;flex-shrink:0;
  font-family:var(--serif);font-size:1.4rem;font-weight:700;
}
.cookie-banner p{flex:1;min-width:200px;margin:0;font-size:.88rem;color:var(--text)}
.cookie-banner p a{color:var(--gold-light);border-bottom:1px solid var(--gold-soft)}
.cookie-banner .btn{padding:10px 22px;font-size:.75rem}

/* === Responsive === */
@media (max-width: 880px){
  .nav-menu{
    display:none;
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;
    background:var(--bg-alt);
    padding:14px 24px;border-bottom:1px solid var(--line);
  }
  .nav-menu.open{display:flex}
  .menu-toggle{display:block}
  .detail-block,.contact-wrap{grid-template-columns:1fr;gap:30px}
  .detail-block.reverse{direction:ltr}
  .detail-block img{height:280px}
  .timeline::before{left:14px}
  .tl-item{width:100%;left:0!important;padding:18px 0 18px 40px;text-align:left!important}
  .tl-item::before{left:7px!important;right:auto!important}
  .footer-grid{grid-template-columns:1fr 1fr;gap:30px}
  section{padding:60px 0}
  .form .row2{grid-template-columns:1fr}
}
@media (max-width: 520px){
  .footer-grid{grid-template-columns:1fr}
  .hero{min-height:62vh;padding:60px 20px}
  .container{padding:0 18px}
}
