:root{
  --nav:#000;         /* Rijksmuseum black */
  --nav-2:#111;
  --gold:#c8a24a;
  --accent:#0057b8;
  --ink:#1b2431;
  --muted:#5b6778;
  --line:#e4e7ee;
  --bg:#f8f6f2;
  --ok:#0a7d3e;
  --err:#b3261e;
  --radius:6px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* Topbar */
.topbar{background:#fff;border-bottom:1px solid var(--line)}
.topbar__inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px}
.brand{display:inline-flex;align-items:center;flex:0 0 auto}
.brand svg{display:block;height:28px;width:auto}
.topbar__meta{display:flex;gap:16px;align-items:center;font-size:13px;color:#333;flex:0 1 auto;min-width:0}
.topbar__meta .secure{display:inline-flex;align-items:center;gap:6px;color:#0a7d3e;font-weight:600;white-space:nowrap}
.topbar__meta .help{color:var(--nav);font-weight:600;white-space:nowrap}
@media (max-width: 560px){
  html,body{overflow-x:hidden}
  .topbar__meta .secure{display:none}
  .topbar__meta .help{display:none} /* hide phone label on phones to keep logo full */
  .topbar__inner{padding:10px 12px;gap:8px;justify-content:flex-start}
  .brand{min-width:0;flex:1 1 auto}
  .brand svg{height:20px;max-width:100%}
  .steps ol{padding:10px 12px;font-size:11px;gap:4px}
  .steps li{font-size:11px}
  .steps li span{display:none} /* on mobile show only numbered circles */
  .steps li.active span{display:inline} /* keep label of current step */
  .steps li+li:before{width:16px;margin:0 3px}
  .steps li i{width:22px;height:22px;font-size:11px}
  .wrap{padding:0 12px;margin:14px auto 24px;gap:14px}
  .card{padding:16px}
  .card h1{font-size:19px}
  .row{grid-template-columns:1fr;gap:8px}
  form label{margin-bottom:10px}
  .btn{width:100%;padding:14px 18px;font-size:16px}
  .actions{gap:12px}
  .actions .link{order:2;text-align:center;width:100%}
  .actions .btn{order:1}
  .summary{position:static}
  .prices li.tot b{font-size:16px}
  .badges img{height:18px}
  .foot__inner{padding:12px 14px;gap:10px}
  .brand-icons{right:6px}
  .cc input{padding-right:52px}
  .tix-row{grid-template-columns:1fr auto;gap:12px;padding:12px}
  .tix-info b{font-size:14px}
  .tix-info small{font-size:11px}
  .tix-qty{justify-content:flex-end}
  .leg__route{grid-template-columns:1fr auto 1fr;gap:6px}
  .stn .time{font-size:15px}
  .stn .name{font-size:11px}
  .line{min-width:36px}
}

/* Steps */
.steps{background:#fff;border-bottom:1px solid var(--line)}
.steps ol{list-style:none;margin:0;padding:14px 20px;max-width:1180px;margin:0 auto;display:flex;gap:8px;align-items:center;overflow-x:auto}
.steps li{display:flex;align-items:center;gap:8px;color:#8a95a8;font-size:13px;white-space:nowrap}
.steps li i{width:22px;height:22px;border-radius:50%;background:#dfe4ee;color:#8a95a8;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;font-size:12px}
.steps li.done{color:var(--nav)}
.steps li.done i{background:var(--nav);color:#fff}
.steps li.active{color:var(--nav);font-weight:700}
.steps li.active i{background:var(--gold);color:#fff}
.steps li+li:before{content:"";display:inline-block;width:26px;height:1px;background:#c9d1de;margin:0 4px}

/* Wrap */
.wrap{max-width:1180px;margin:22px auto 40px;padding:0 20px;display:grid;grid-template-columns:2fr 1fr;gap:20px}
@media (max-width: 900px){.wrap{grid-template-columns:1fr}}

/* Cards */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:18px;box-shadow:0 1px 2px rgba(20,30,60,.04)}
.card h1{margin:0 0 8px;font-size:22px;color:var(--nav);font-family:Georgia,"Times New Roman",serif}
.card h2{margin:0 0 12px;font-size:14px;color:var(--nav);text-transform:uppercase;letter-spacing:.6px}
.muted{color:var(--muted);margin:0 0 18px}

/* Forms */
form label{display:block;margin-bottom:14px;font-size:13px;color:#33445a;font-weight:600}
form input,form select{margin-top:6px;display:block;width:100%;padding:10px 12px;font:14px/1.4 inherit;color:#1b2431;background:#fff;border:1px solid #cfd5df;border-radius:4px;transition:border .15s,box-shadow .15s}
form input:focus,form select:focus{outline:none;border-color:var(--nav);box-shadow:0 0 0 3px rgba(200,162,74,.25)}
form input.err,form select.err{border-color:var(--err);box-shadow:0 0 0 3px rgba(179,38,30,.15)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width: 640px){.row{grid-template-columns:1fr}}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;color:#33445a;font-size:13px;line-height:1.4;margin:8px 0 18px}
.check input{width:auto;margin:2px 0 0}
.actions{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:12px;flex-wrap:wrap}
.btn{border:none;border-radius:4px;font:600 15px/1 inherit;cursor:pointer;padding:12px 22px;transition:background .15s,transform .05s}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--nav);color:#fff}
.btn.primary:hover{background:var(--nav-2)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.link{color:var(--nav);font-size:14px}
.disclaimer{font-size:12px;color:var(--muted);margin:14px 0 0}
.cc{position:relative}
.cc input{padding-right:60px;letter-spacing:1px;font-family:"Menlo","Consolas",monospace}
.brand-icons{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;gap:4px;pointer-events:none}
.pb-spin{display:inline-flex;gap:4px}
.pb-spin .dot{width:6px;height:6px;background:currentColor;border-radius:50%;animation:pbb 1.2s infinite ease-in-out both}
.pb-spin .dot:nth-child(2){animation-delay:.15s}
.pb-spin .dot:nth-child(3){animation-delay:.3s}
@keyframes pbb{0%,80%,100%{transform:scale(.5);opacity:.4}40%{transform:scale(1);opacity:1}}

/* Tickets picker */
.tix-list{display:flex;flex-direction:column;gap:10px;margin:6px 0 16px}
.tix-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:6px;background:#fff}
.tix-info b{display:block;font-size:15px;color:var(--nav);font-family:Georgia,"Times New Roman",serif;font-weight:700}
.tix-info .tix-price{font-size:13px;color:var(--gold);font-weight:700;margin:2px 0}
.tix-info small{display:block;color:var(--muted);font-size:12px}
.tix-qty{display:inline-flex;align-items:center;gap:8px;background:#f2f0eb;border-radius:6px;padding:4px}
.tix-qty .qbtn{width:32px;height:32px;border:none;background:#fff;border-radius:4px;color:var(--nav);font-size:18px;font-weight:700;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.tix-qty .qbtn:hover{background:var(--nav);color:#fff}
.tix-qty .qbtn:disabled{opacity:.4;cursor:not-allowed}
.tix-qty input{width:36px;margin:0;text-align:center;background:transparent;border:none;font-size:15px;font-weight:700;color:var(--nav);padding:6px 0}
.tix-qty input::-webkit-outer-spin-button,.tix-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.tix-qty input[type=number]{-moz-appearance:textfield}

/* Ticket summary */
.tix-summary{list-style:none;margin:10px 0 0;padding:12px 0 0;border-top:1px solid var(--line);font-size:13px}
.tix-summary li{display:flex;justify-content:space-between;padding:3px 0;color:#33445a}
.tix-summary li b{color:var(--ink);font-weight:600}
.tix-summary li.empty{color:var(--muted);font-style:italic;justify-content:center;padding:6px 0}

/* Summary */
.summary{position:sticky;top:14px}
.leg{border-top:1px solid var(--line);padding:14px 0}
.leg:first-of-type{border-top:none;padding-top:0}
.leg__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.pill{background:#000;color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:3px 8px;border-radius:99px}
.leg__date{color:var(--muted);font-size:13px}
.leg__route{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:6px 0 8px}
.stn .time{font-size:18px;font-weight:700;color:var(--nav);font-family:Georgia,"Times New Roman",serif}
.stn .name{font-size:12px;color:var(--muted)}
.line{position:relative;height:2px;background:var(--nav);border-radius:2px;margin:0 4px;min-width:80px}
.line .dur{position:absolute;left:50%;transform:translate(-50%,-16px);font-size:11px;color:var(--nav);background:#fff;padding:0 6px;white-space:nowrap;font-weight:600}
.prices{list-style:none;margin:14px 0 6px;padding:12px 0 0;border-top:1px solid var(--line)}
.prices li{display:flex;justify-content:space-between;font-size:13px;color:#33445a;padding:3px 0}
.prices li b{color:var(--ink)}
.prices li.tot{margin-top:6px;padding-top:8px;border-top:1px solid var(--line);font-size:15px}
.prices li.tot b{color:var(--nav);font-size:18px}
.reassure{display:flex;gap:6px;align-items:center;color:var(--ok);font-size:12px;background:#eef7f0;border-radius:4px;padding:8px 10px;margin:12px 0 0}
.badges{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;padding:8px 0}
.badges img{opacity:.85}

/* Foot */
.foot{background:#000;color:#dbdad5;margin-top:40px}
.foot__inner{max-width:1180px;margin:0 auto;padding:16px 20px;display:flex;gap:18px;flex-wrap:wrap;font-size:12px}
.foot a{color:#c9c7bf}

[hidden]{display:none!important}

/* Language picker (topbar) */
.langpick{position:relative;display:inline-block}
.langpick__btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line);color:#333;font:inherit;font-size:13px;padding:6px 10px;border-radius:6px;cursor:pointer;white-space:nowrap}
.langpick__btn:hover{border-color:#bfbfbf;background:#fafafa}
.langpick__list{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 24px rgba(0,0,0,.08);min-width:160px;max-height:340px;overflow-y:auto;list-style:none;padding:6px 0;margin:0;z-index:1000}
.langpick__list li{padding:8px 14px;cursor:pointer;font-size:14px;color:#222;white-space:nowrap}
.langpick__list li:hover{background:#f2efe4;color:#000}
.langpick__list li[aria-selected=true]{font-weight:600;background:#f7f3e6}
@media (max-width: 560px){
  .langpick__btn span{max-width:60px;overflow:hidden;text-overflow:ellipsis}
  .langpick__list{right:-10px}
}
