/* DAMBO INVEST ApS — house style
   Palette: deep navy (decision/authority) + copper accent (from the mark) + warm paper background.
   Type: Fraunces (display serif, editorial weight) for headlines, Source Sans 3 for body/UI.
   Layout language: editorial/split, generous whitespace, thin rules instead of boxed cards. */

:root{
  --navy: #0E2A3F;
  --navy-deep: #081A28;
  --copper: #B9743C;
  --copper-deep: #96592A;
  --copper-on-dark: #D9945C;
  --paper: #F7F3EC;
  --paper-dim: #EFE8DA;
  --ink: #1B2430;
  --ink-soft: #48505C;
  --line: #DDD3C1;
  --white: #FFFFFF;
  --success: #2F6B4F;
  --error: #A6402F;
  --radius: 2px;
  --shadow: 0 18px 40px -22px rgba(14,42,63,0.35);
  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{overflow-x:hidden;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:"Source Sans 3", "Segoe UI", Arial, sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  font-size:17px;
}
h1,h2,h3,h4{
  font-family:"Fraunces", Georgia, serif;
  color:var(--navy);
  line-height:1.14;
  margin:0 0 .5em;
  font-weight:600;
  overflow-wrap:break-word;
  hyphens:auto;
}
h1{font-size:clamp(2.1rem,4.6vw,3.6rem); font-weight:560;}
h2{font-size:clamp(1.6rem,3vw,2.4rem);}
h3{font-size:1.25rem;}
p{margin:0 0 1em;}
a{color:var(--navy);}
img{max-width:100%;display:block;}
.container{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
.skip-link{position:absolute;left:8px;top:-60px;background:var(--navy);color:#fff;padding:10px 16px;z-index:200;transition:top .15s;}
.skip-link:focus{top:8px;}

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  min-height:76px;
}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--navy);}
.brand img{width:34px;height:34px;}
.brand-word{font-family:"Fraunces",serif; font-weight:600; font-size:1.18rem; letter-spacing:.01em;}
.brand-word small{display:block; font-family:"Source Sans 3",sans-serif; font-weight:600; font-size:.58rem; letter-spacing:.16em; color:var(--copper-deep); text-transform:uppercase;}

.main-nav{display:flex; align-items:center; gap:28px;}
.main-nav a{
  color:var(--ink); text-decoration:none; font-weight:600; font-size:.94rem;
  padding:6px 2px; border-bottom:2px solid transparent;
}
.main-nav a:hover, .main-nav a:focus{border-bottom-color:var(--copper);}
.nav-cta{
  background:var(--navy); color:#fff !important; padding:10px 18px !important;
  border-radius:var(--radius); border-bottom:none !important;
}
.nav-cta:hover{background:var(--navy-deep);}
.nav-toggle{
  display:none; background:none; border:1px solid var(--line); border-radius:4px;
  width:44px;height:44px; align-items:center; justify-content:center; cursor:pointer;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:20px;height:2px;background:var(--navy); position:relative;
}
.nav-toggle span::before{position:absolute; top:-6px;}
.nav-toggle span::after{position:absolute; top:6px;}

@media (max-width: 880px){
  .nav-toggle{display:flex;}
  .main-nav{
    position:absolute; top:76px; left:0; right:0; background:var(--paper);
    flex-direction:column; align-items:flex-start; gap:0; border-bottom:1px solid var(--line);
    padding:8px 24px 20px; display:none;
  }
  .main-nav.is-open{display:flex;}
  .main-nav a{width:100%; padding:12px 0; border-bottom:1px solid var(--line);}
  .nav-cta{margin-top:10px; text-align:center;}
}

/* ---------- Hero (split layout) ---------- */
.hero{background:var(--navy); color:#fff; position:relative; overflow:hidden;}
.hero .container{
  display:grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap:48px; align-items:center;
  padding-top:64px; padding-bottom:56px;
}
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:8px; text-transform:uppercase;
  letter-spacing:.14em; font-size:.72rem; font-weight:700; color:var(--copper-on-dark);
  margin-bottom:18px;
}
.hero h1{color:#fff;}
.hero-lede{font-size:1.14rem; color:#D8E0E6; max-width:46ch;}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; margin-top:26px;}
.btn{
  display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:.98rem;
  padding:13px 22px; border-radius:var(--radius); text-decoration:none; cursor:pointer;
  border:1px solid transparent; transition:transform .12s ease, background .12s ease;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--copper); color:#1B1204;}
.btn-primary:hover{background:#c98446;}
.btn-ghost{background:transparent; color:#fff; border-color:rgba(255,255,255,.45);}
.btn-ghost:hover{border-color:#fff;}
.btn-dark{background:var(--navy); color:#fff;}
.btn-dark:hover{background:var(--navy-deep);}

.hero-figure{position:relative; border-radius:2px; overflow:hidden; box-shadow:var(--shadow);}
.hero-figure img{
  width:100%; height:100%; object-fit:cover; aspect-ratio:4/3;
  filter:grayscale(.15) sepia(.12) saturate(1.05) contrast(1.02);
}
.hero-figure::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(155deg, rgba(185,116,60,.32), rgba(14,42,63,.55));
  mix-blend-mode:multiply;
}
.hero-figure figcaption{
  position:absolute; left:14px; bottom:12px; color:#fff; font-size:.72rem;
  background:rgba(8,26,40,.55); padding:5px 10px; border-radius:2px; z-index:2;
}
.hero-stats{display:flex; gap:28px; margin-top:34px; flex-wrap:wrap;}
.hero-stats div{border-left:2px solid var(--copper); padding-left:12px;}
.hero-stats strong{display:block; font-family:"Fraunces",serif; font-size:1.5rem; color:#fff;}
.hero-stats span{font-size:.82rem; color:#B9C4CC;}

@media (max-width: 880px){
  .hero .container{grid-template-columns:minmax(0,1fr); padding-top:40px;}
  .hero-figure{order:-1;}
}

/* ---------- Generic section rhythm ---------- */
section{padding:76px 0;}
.section-tight{padding:56px 0;}
.section-head{max-width:64ch; margin-bottom:40px;}
.section-head .kicker{
  text-transform:uppercase; letter-spacing:.14em; font-size:.74rem; font-weight:700;
  color:var(--copper-deep); display:block; margin-bottom:10px;
}
.bg-navy .section-head .kicker{color:var(--copper-on-dark);}
.bg-navy{background:var(--navy); color:#fff;}
.bg-navy h2, .bg-navy h3{color:#fff;}
.bg-navy .section-head p{color:#CBD6DC;}
.bg-dim{background:var(--paper-dim);}

/* ---------- Situations / decisions grid ---------- */
.situations{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-top:1px solid var(--line);}
.situation{
  padding:30px 26px; border-bottom:1px solid var(--line); border-right:1px solid var(--line);
  background:var(--white);
}
.situation:nth-child(3n){border-right:none;}
.situation .icon-wrap{
  width:44px;height:44px; display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--copper); border-radius:50%; margin-bottom:16px;
}
.situation .icon-wrap img{width:20px;height:20px;}
.situation h3{font-size:1.08rem; margin-bottom:8px;}
.situation p{color:var(--ink-soft); font-size:.96rem; margin-bottom:0;}
@media (max-width:820px){
  .situations{grid-template-columns:minmax(0,1fr);}
  .situation{border-right:none;}
}

/* ---------- Process (asymmetric numbered rail, not circle-badge cards) ---------- */
.process{display:flex; flex-direction:column;}
.process-row{
  display:grid; grid-template-columns: 90px minmax(0,1fr); gap:20px; padding:26px 0;
  border-bottom:1px solid var(--line);
}
.process-row:first-child{border-top:1px solid var(--line);}
.process-index{
  font-family:"Fraunces",serif; font-size:2.4rem; color:var(--copper-on-dark); font-weight:600;
  line-height:1;
}
.process-body h3{margin-bottom:6px;}
.process-body p{color:#C9D3DA; margin-bottom:0; max-width:58ch;}
.process-meta{
  display:flex; gap:16px; margin-top:10px; font-size:.82rem; color:var(--copper-on-dark); font-weight:700;
}
@media (max-width:640px){
  .process-row{grid-template-columns:minmax(0,1fr);}
}

/* ---------- Profile / about split ---------- */
.about-split{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:56px; align-items:center;}
.about-figure{border-radius:2px; overflow:hidden; box-shadow:var(--shadow);}
.about-figure img{width:100%; aspect-ratio:4/3; object-fit:cover;}
.credential-list{list-style:none; margin:22px 0 0; padding:0; display:grid; gap:12px;}
.credential-list li{display:flex; gap:10px; align-items:flex-start; font-size:.96rem;}
.credential-list img{width:18px; height:18px; margin-top:3px; flex:none;}
@media (max-width:880px){ .about-split{grid-template-columns:minmax(0,1fr);} }

/* ---------- Focus areas preview ---------- */
.focus-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px;}
.focus-card{
  background:var(--white); border:1px solid var(--line); padding:26px; border-radius:2px;
  display:flex; flex-direction:column; gap:10px;
}
.focus-card h3{margin-bottom:0;}
.focus-card p{color:var(--ink-soft); font-size:.95rem; margin-bottom:0; flex:1;}
.focus-card a{font-weight:700; font-size:.92rem; text-decoration:none; color:var(--copper-deep);}
@media (max-width:880px){ .focus-grid{grid-template-columns:minmax(0,1fr);} }

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--line); max-width:78ch;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  list-style:none; cursor:pointer; padding:20px 4px; font-weight:700; color:var(--navy);
  display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:1.02rem;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary img{width:18px;height:18px; transition:transform .15s ease; flex:none;}
.faq-item[open] summary img{transform:rotate(180deg);}
.faq-item p{padding:0 4px 20px; color:var(--ink-soft); max-width:70ch;}

/* ---------- Contact block ---------- */
.contact-block{display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); border:1px solid var(--line); background:var(--white);}
.contact-map{position:relative; min-height:340px; background:var(--paper-dim);}
.map-placeholder{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; text-align:center; padding:20px;
}
.map-placeholder img{width:30px;height:30px;}
.contact-map iframe{width:100%;height:100%; min-height:340px; border:0; display:block;}
.contact-map.is-loaded .map-placeholder{display:none;}
.contact-facts{padding:44px 40px; display:flex; flex-direction:column; gap:22px;}
.fact-row{display:flex; gap:14px; align-items:flex-start;}
.fact-row .icon-wrap{
  width:38px;height:38px; border-radius:50%; background:var(--navy); display:flex;
  align-items:center; justify-content:center; flex:none;
}
.fact-row .icon-wrap img{width:18px;height:18px; filter:invert(1);}
.fact-row dt{font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--copper-deep); font-weight:700; margin-bottom:2px;}
.fact-row dd{margin:0; font-size:1rem; color:var(--ink); overflow-wrap:anywhere;}
@media (max-width:880px){
  .contact-block{grid-template-columns:minmax(0,1fr);}
  .contact-map{min-height:220px;}
}

/* ---------- Form ---------- */
.form-card{
  background:var(--white); border:1px solid var(--line); padding:36px; border-radius:2px;
  max-width:640px;
}
.form-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px;}
.form-field{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
.form-field.full{grid-column:1 / -1;}
.form-field label{font-weight:700; font-size:.9rem; color:var(--navy);}
.form-field input, .form-field select, .form-field textarea{
  border:1px solid var(--line); border-radius:2px; padding:12px 13px; font:inherit; color:var(--ink);
  background:#fff;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:2px solid var(--copper); outline-offset:1px; border-color:var(--copper);
}
.form-field textarea{resize:vertical; min-height:120px;}
.field-error{color:var(--error); font-size:.82rem; min-height:1.1em;}
.form-field.has-error input, .form-field.has-error select, .form-field.has-error textarea{border-color:var(--error);}
.consent-row{display:flex; gap:10px; align-items:flex-start; margin:6px 0 20px;}
.consent-row input{margin-top:4px;}
.consent-row label{font-size:.86rem; color:var(--ink-soft);}
.form-note{font-size:.82rem; color:var(--ink-soft); margin-top:10px;}
.submit-row{display:flex; align-items:center; gap:16px;}
.spinner{
  width:16px;height:16px; border-radius:50%; border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff; animation:spin .7s linear infinite; display:none;
}
.is-loading .spinner{display:inline-block;}
.is-loading .btn-label{opacity:.85;}
@keyframes spin{to{transform:rotate(360deg);}}
.form-status{font-size:.9rem; margin-top:14px;}
.form-status.error{color:var(--error);}
.form-status.success{color:var(--success);}
@media (max-width:600px){ .form-grid{grid-template-columns:minmax(0,1fr);} }

/* ---------- Trust / disclaimer strips ---------- */
.trust-strip{
  border:1px solid var(--line); background:var(--bg,var(--paper-dim)); padding:18px 22px; font-size:.88rem;
  color:var(--ink-soft); display:flex; gap:12px; align-items:flex-start; border-radius:2px;
}
.trust-strip img{width:18px;height:18px; flex:none; margin-top:2px;}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-deep); color:#CBD6DC; padding:56px 0 26px;}
.footer-grid{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr); gap:40px;}
.footer-brand{display:flex; gap:12px; align-items:center; margin-bottom:14px;}
.footer-brand img{width:30px;height:30px;}
.footer-brand span{font-family:"Fraunces",serif; font-weight:600; color:#fff; font-size:1.1rem;}
.site-footer p{color:#9FB0BA; font-size:.92rem;}
.site-footer h4{color:#fff; font-family:"Source Sans 3",sans-serif; font-size:.85rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:14px;}
.site-footer ul{list-style:none; margin:0; padding:0; display:grid; gap:10px;}
.site-footer a{color:#CBD6DC; text-decoration:none; font-size:.94rem;}
.site-footer a:hover{color:#fff;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12); margin-top:44px; padding-top:22px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.82rem; color:#8CA0AB;
}
@media (max-width:820px){ .footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);} }
@media (max-width:560px){ .footer-grid{grid-template-columns:minmax(0,1fr);} }

/* ---------- Cookie banner ---------- */
.cookie-banner{
  position:fixed; left:16px; right:16px; bottom:16px; max-width:400px; margin:0 0 0 auto;
  background:var(--navy); color:#fff; border-radius:3px; padding:20px 22px; box-shadow:var(--shadow);
  z-index:300;
}
@media (max-width:640px){
  .cookie-banner{left:12px; right:12px; max-width:none; bottom:12px;}
}
.cookie-banner[hidden]{display:none;}
.cookie-banner p{font-size:.9rem; color:#D8E0E6; margin-bottom:16px;}
.cookie-banner a{color:#fff; text-decoration:underline;}
.cookie-banner a:hover{color:var(--copper);}
.cookie-actions{display:flex; gap:12px; flex-wrap:wrap;}
.cookie-actions button{
  font:inherit; font-weight:700; padding:10px 16px; border-radius:2px; cursor:pointer; border:1px solid transparent;
}
.cookie-accept{background:var(--copper); color:#1B1204; border-color:var(--copper);}
.cookie-reject{background:transparent; color:#fff; border-color:rgba(255,255,255,.55);}
.cookie-settings-btn{background:transparent; color:#D8E0E6; border-color:transparent; text-decoration:underline; padding-left:2px;}

.cookie-modal{
  position:fixed; inset:0; background:rgba(8,26,40,.6); z-index:310;
  align-items:center; justify-content:center; padding:20px;
}
.cookie-modal[hidden]{display:none;}
.cookie-modal.is-visible{display:flex;}
.cookie-modal-card{
  background:#fff; max-width:560px; width:100%; border-radius:3px; padding:30px; max-height:86vh; overflow:auto;
}
.cookie-modal-card h2{font-size:1.4rem;}
.cookie-cat{border-top:1px solid var(--line); padding:16px 0; display:flex; justify-content:space-between; gap:16px;}
.cookie-cat:last-of-type{border-bottom:1px solid var(--line);}
.cookie-cat h4{margin:0 0 4px; font-size:.98rem; color:var(--navy);}
.cookie-cat p{margin:0; font-size:.85rem; color:var(--ink-soft);}
.cookie-modal-actions{display:flex; justify-content:flex-end; gap:12px; margin-top:22px;}

/* ---------- Contact page two-column layout ---------- */
.contact-page-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:48px; align-items:start;}
@media (max-width:900px){ .contact-page-grid{grid-template-columns:minmax(0,1fr);} }

/* ---------- Profile registry facts grid ---------- */
.facts-grid-2{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px 32px;}
@media (max-width:640px){ .facts-grid-2{grid-template-columns:minmax(0,1fr);} }

/* ---------- Utility page hero (legal / secondary pages) ---------- */
.page-hero{background:var(--navy); color:#fff; padding:52px 0 44px;}
.page-hero h1{color:#fff; margin-bottom:8px;}
.page-hero p{color:#CBD6DC; margin-bottom:0;}
.legal-content{max-width:74ch; padding:48px 0 80px;}
.legal-content h2{margin-top:2em;}
.legal-content ul{padding-left:1.3em;}
.legal-content .container{max-width:74ch;}
.legal-content, .legal-content p, .legal-content li{overflow-wrap:anywhere;}

/* thank you */
.thankyou{padding:90px 0 100px; text-align:center;}
.thankyou .icon-wrap{
  width:64px;height:64px; border-radius:50%; background:var(--copper); display:flex; align-items:center;
  justify-content:center; margin:0 auto 24px;
}
.thankyou .icon-wrap img{width:30px;height:30px; filter:invert(1);}
.thankyou-steps{
  list-style:none; padding:0; margin:32px auto; max-width:520px; text-align:left; display:grid; gap:14px;
}
.thankyou-steps li{display:flex; gap:12px; align-items:flex-start;}
.thankyou-steps span.n{
  font-family:"Fraunces",serif; color:var(--copper-deep); font-weight:700; font-size:1.1rem; flex:none; width:22px;
}
