/* Shared full-page design for country route directions. Isolated by body class. */
body.country-route-design{
  --np-panel:rgba(7,28,45,.96);
  --np-panel-2:rgba(17,46,61,.9);
  --np-cell:rgba(255,255,255,.045);
  --np-line:rgba(255,255,255,.105);
  --np-line-soft:rgba(255,255,255,.072);
  --np-muted:rgba(234,244,255,.7);
  --np-cyan:#6fe6ff;
  --np-gold:#ffd27a;
}

body.country-route-design .kn-page{padding:18px 0 8px}
body.country-route-design .kn-page .kicker,
body.country-route-design .kn-kicker{
  display:inline-flex;
  width:max-content;
  padding:8px 13px;
  border:1px solid rgba(0,181,200,.34);
  border-radius:999px;
  background:rgba(0,181,200,.13);
  color:rgba(220,251,255,.88);
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
body.country-route-design .kn-page .h2{
  margin:12px 0 0;
  font-size:clamp(28px,3.4vw,45px);
  line-height:1.05;
  letter-spacing:-.035em;
}
body.country-route-design .kn-page .btn{border-radius:11px;box-shadow:none}
body.country-route-design .kn-page .btn.ghost{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.055)}
body.country-route-design .kn-page .btn.gold{background:linear-gradient(135deg,#f0a500,#ffd45f);box-shadow:0 10px 24px rgba(240,165,0,.14)}

/* Hero: one coherent route workspace instead of two detached surfaces. */
body.country-route-design .kn-hero{padding:0 0 12px!important;overflow:visible}
body.country-route-design .kn-hero>.container{
  overflow:hidden;
  border:1px solid rgba(111,230,255,.16);
  border-radius:30px;
  background:
    radial-gradient(circle at 8% 0%,rgba(30,185,215,.15),transparent 30%),
    linear-gradient(112deg,var(--np-panel),var(--np-panel-2));
  box-shadow:0 26px 64px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.04);
}
body.country-route-design .kn-breadcrumbs{margin:0!important;padding:20px 26px 0}
body.country-route-design .kn-grid{grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr)!important;gap:0!important}
body.country-route-design .kn-grid>.reveal{padding:14px 26px 26px}
body.country-route-design .kn-title{margin:10px 0 8px!important}
body.country-route-design .kn-subtitle{margin-bottom:13px!important}
body.country-route-design .kn-lead{color:rgba(234,244,255,.82)}
body.country-route-design .kn-chipline span,
body.country-route-design .kn-route-tags span{border-color:rgba(255,255,255,.11);background:rgba(255,255,255,.055)}
body.country-route-design .kn-metrics{
  margin-top:20px;
  padding:16px 0 0;
  border:0;
  border-top:1px solid var(--np-line-soft);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
body.country-route-design .kn-metrics article{padding:0 9px}
body.country-route-design .kn-metrics img{width:52px;height:52px;margin-bottom:5px}
body.country-route-design .kn-metrics b{font-size:11px}
body.country-route-design .kn-panel{
  align-self:stretch;
  padding:26px;
  border:0;
  border-left:1px solid var(--np-line);
  border-radius:0;
  background:rgba(3,18,30,.3);
  box-shadow:none;
}
body.country-route-design .kn-stop__code{border-radius:11px;background:rgba(255,255,255,.055)}
body.country-route-design .kn-panel-routes{border-top-color:var(--np-line-soft)}
body.country-route-design .kn-panel-routes__list a{border-radius:10px;background:rgba(255,255,255,.045)}

/* Shared section rhythm and surfaces. */
body.country-route-design .country-schedule--calendar{padding:0 0 12px}
body.country-route-design .kn-band{padding:0 0 12px}
body.country-route-design .kn-section{padding:12px 0}
body.country-route-design .kn-section--fare{padding:0 0 12px}
body.country-route-design .kn-route-fact-section{padding:0 0 12px}
body.country-route-design #booking{padding:0 0 12px;scroll-margin-top:90px}
body.country-route-design .kn-gallery-section{padding:0 0 12px}

body.country-route-design .route-calendar,
body.country-route-design .kn-coverage,
body.country-route-design .kn-fare,
body.country-route-design .kn-ticket-card,
body.country-route-design #booking>.kn-form-wrap,
body.country-route-design .kn-gallery-shell,
body.country-route-design .kn-card--faq-combo{
  border-color:rgba(111,230,255,.15);
  border-radius:28px;
  background:
    radial-gradient(circle at 9% 0%,rgba(31,184,214,.1),transparent 30%),
    linear-gradient(112deg,var(--np-panel),var(--np-panel-2));
  box-shadow:0 22px 54px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.04);
}
body.country-route-design .route-calendar{overflow:hidden}
body.country-route-design .route-calendar__intro{background:rgba(3,18,30,.23)}
body.country-route-design .route-calendar__tabs{border-radius:11px}
body.country-route-design .route-calendar__tab{border-radius:8px}
body.country-route-design .route-calendar__day{border-radius:9px}
body.country-route-design .kn-coverage{padding:28px}
body.country-route-design .kn-coverage__card{border-radius:18px;background:rgba(255,255,255,.04);box-shadow:none}

/* Fare: concise price rail. */
body.country-route-design .kn-fare{grid-template-columns:minmax(0,1fr) 300px;gap:0;padding:0;overflow:hidden}
body.country-route-design .kn-fare__content{padding:28px}
body.country-route-design .kn-fare__content p{max-width:820px;color:var(--np-muted)}
body.country-route-design .kn-fare__aside{
  align-self:stretch;
  display:grid;
  align-content:center;
  padding:28px;
  border:0;
  border-left:1px solid var(--np-line);
  border-radius:0;
  background:linear-gradient(150deg,rgba(255,210,122,.1),rgba(255,255,255,.025));
  box-shadow:none;
}
body.country-route-design .kn-fare__aside b{font-size:36px}

/* Ferry value block follows the same system while remaining distinctive. */
body.country-route-design .kn-ticket-card{gap:24px 30px;padding:30px}
body.country-route-design .kn-ticket-card::before{background:linear-gradient(115deg,rgba(255,255,255,.035),transparent 38%,rgba(255,210,122,.035))}
body.country-route-design .kn-ticket-visual{border-radius:18px;background:linear-gradient(155deg,rgba(111,230,255,.1),rgba(4,17,29,.62));box-shadow:none}
body.country-route-design .kn-ticket-feature{border-radius:14px;background:var(--np-cell);box-shadow:none}

/* Booking: form and decision support are one workspace. */
body.country-route-design #booking>.kn-form-wrap{
  grid-template-columns:minmax(0,1fr) 350px;
  gap:0;
  padding:0;
  overflow:hidden;
}
body.country-route-design .kn-form{padding:30px;border:0;border-radius:0;background:transparent;box-shadow:none}
body.country-route-design .kn-form .lead{color:var(--np-muted);font-size:14px;line-height:1.65}
body.country-route-design .kn-form-grid{gap:12px}
body.country-route-design .kn-field{gap:6px}
body.country-route-design .kn-field label{color:rgba(223,247,255,.7);font-size:11px}
body.country-route-design .kn-form input,
body.country-route-design .kn-form select,
body.country-route-design .kn-form textarea{padding:13px 14px;border-radius:9px;background:rgba(255,255,255,.055)}
body.country-route-design .kn-aside{display:block;border-left:1px solid var(--np-line);background:rgba(3,18,30,.2)}
body.country-route-design .kn-note{padding:23px;border:0;border-bottom:1px solid var(--np-line-soft);border-radius:0;background:transparent;box-shadow:none}
body.country-route-design .kn-note:last-child{border-bottom:0}
body.country-route-design .kn-note a{border-radius:9px;background:rgba(255,255,255,.045)}

/* Gallery and FAQ. */
body.country-route-design .kn-gallery-shell{padding:24px}
body.country-route-design .kn-gallery-head{padding-bottom:15px;border-bottom:1px solid var(--np-line-soft)}
body.country-route-design .kn-gallery-line{padding-top:2px}
body.country-route-design .kn-film-stage{border-radius:18px;background:rgba(3,15,25,.58);box-shadow:none}
body.country-route-design .kn-film-stage .kn-carousel-slide img{border-radius:12px}
body.country-route-design .kn-film-btn,
body.country-route-design .kn-film-counter{border-radius:10px}
body.country-route-design .kn-film-thumb-frame{border-radius:12px}
body.country-route-design .kn-film-thumb-frame img{border-radius:8px}
body.country-route-design .kn-card--faq-combo{gap:0;padding:0;overflow:hidden}
body.country-route-design .kn-card--faq-combo>div{padding:30px}
body.country-route-design .kn-card--faq-combo>div+div{border-left:1px solid var(--np-line)}
body.country-route-design .kn-card--faq-combo .kn-combo-copy p{color:var(--np-muted);line-height:1.72}
body.country-route-design .kn-faq{margin-top:18px}
body.country-route-design .kn-faq details{padding:15px 16px;border-radius:9px;background:rgba(255,255,255,.04)}
body.country-route-design .kn-faq details+details{margin-top:8px}

/* Spain: generated route illustration, embedded as a lightweight static asset. */
body.country-route-design .kn-route-illustration-section{padding:0 0 12px}
body.country-route-design .route-illustration{
  overflow:hidden;
  border:1px solid var(--np-line);
  border-radius:24px;
  background:linear-gradient(130deg,rgba(7,28,44,.96),rgba(5,21,34,.98));
  box-shadow:0 22px 54px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.04);
}
body.country-route-design .route-illustration__header{padding:28px 30px 24px}
body.country-route-design .route-illustration__header p{max-width:720px;margin:9px 0 0;color:var(--np-muted);font-size:14px;line-height:1.65}
body.country-route-design .route-illustration__figure{margin:0;border-top:1px solid var(--np-line)}
body.country-route-design .route-illustration__figure picture{display:block;background:#071421}
body.country-route-design .route-illustration__figure img{display:block;width:100%;height:auto;background:#071421}
body.country-route-design .route-illustration__figure figcaption{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;color:#dff8ff;font-size:11px;font-weight:700}
body.country-route-design .route-illustration__figure figcaption span{display:flex;align-items:center;gap:9px}
body.country-route-design .route-illustration__figure figcaption i{width:24px;height:4px;border-radius:999px;background:linear-gradient(90deg,#72e2f5,#ffd27a)}
body.country-route-design .route-illustration__figure .btn{min-height:42px;padding:11px 16px;font-size:11px}

@media (max-width:1080px){
  body.country-route-design .kn-grid{grid-template-columns:1fr!important}
  body.country-route-design .kn-panel{border-left:0;border-top:1px solid var(--np-line)}
  body.country-route-design #booking>.kn-form-wrap{grid-template-columns:1fr}
  body.country-route-design .kn-aside{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-left:0;border-top:1px solid var(--np-line)}
  body.country-route-design .kn-note{border-right:1px solid var(--np-line-soft);border-bottom:0}
  body.country-route-design .kn-note:last-child{border-right:0}
}

@media (max-width:760px){
  body.country-route-design .kn-page{padding-top:10px}
  body.country-route-design .kn-hero>.container,
  body.country-route-design .route-calendar,
  body.country-route-design .kn-coverage,
  body.country-route-design .kn-fare,
  body.country-route-design .kn-ticket-card,
  body.country-route-design #booking>.kn-form-wrap,
  body.country-route-design .kn-gallery-shell,
  body.country-route-design .kn-card--faq-combo{border-radius:20px}
  body.country-route-design .kn-breadcrumbs{padding:17px 18px 0}
  body.country-route-design .kn-grid>.reveal,
  body.country-route-design .kn-panel,
  body.country-route-design .kn-form,
  body.country-route-design .kn-gallery-shell,
  body.country-route-design .kn-card--faq-combo>div{padding:20px}
  body.country-route-design .kn-metrics{padding-top:13px}
  body.country-route-design .kn-coverage{padding:20px 16px}
  body.country-route-design .kn-coverage::after{display:none}
  body.country-route-design .kn-coverage__connector span{
    z-index:1;
    transform:none;
    font-size:0;
  }
  body.country-route-design .kn-coverage__connector span::before{
    content:"↓";
    font-size:15px;
    line-height:1;
  }
  body.country-route-design .kn-fare{grid-template-columns:1fr}
  body.country-route-design .kn-fare__content,
  body.country-route-design .kn-fare__aside{padding:22px}
  body.country-route-design .kn-fare__aside{border-left:0;border-top:1px solid var(--np-line)}
  body.country-route-design .kn-fare__aside b{font-size:30px}
  body.country-route-design .kn-ticket-card{padding:22px}
  body.country-route-design .kn-aside{display:block}
  body.country-route-design .kn-note{border-right:0;border-bottom:1px solid var(--np-line-soft)}
  body.country-route-design .kn-note:last-child{border-bottom:0}
  body.country-route-design .kn-card--faq-combo{grid-template-columns:1fr}
  body.country-route-design .kn-card--faq-combo>div+div{border-left:0;border-top:1px solid var(--np-line)}
  body.country-route-design .route-illustration{border-radius:20px}
  body.country-route-design .route-illustration__header{padding:20px}
  body.country-route-design .route-illustration__figure figcaption{align-items:stretch;flex-direction:column;padding:17px 18px}
  body.country-route-design .route-illustration__figure .btn{width:100%}
}
