/*
Theme Name: Nordic Coastal
Theme URI: https://fergetildanmark.no
Description: Selvstendig block-tema (Full Site Editing) for fergetildanmark.no. Skandinavisk kyst-estetikk – havblå, dyp marine, sand og varm hvit, med Fraunces (serif) overskrifter og Inter brødtekst. Ingen forelder-tema nødvendig.
Author: fergetildanmark.no
Version: 1.21.1
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: nordic-coastal
Tags: travel, blog, full-site-editing, block-patterns, custom-colors, custom-menu, featured-images, threaded-comments
*/

/* Sørg for luft i kantene på fullbredde-seksjoner og hovedinnhold */
.nc-section { padding-inline: 20px; }
.wp-block-cover__inner-container { padding-inline: 20px; }
.nc-main { padding-inline: 20px; padding-block: clamp(24px, 3.5vw, 48px); }

/* =========================================================
   1. Designtokens (CSS-variabler)
   ========================================================= */
:root {
  --nc-base:        #FCFBF8; /* varm hvit – bakgrunn */
  --nc-white:       #FFFFFF;
  --nc-ink:         #14272F; /* tekst, blå-undertone */
  --nc-muted:       #5B6B72; /* dempet tekst */
  --nc-primary:     #2A6F8E; /* havblå */
  --nc-primary-700: #205A74;
  --nc-secondary:   #143B4A; /* dyp marine */
  --nc-sand:        #E9DCC4; /* sand */
  --nc-sand-light:  #F3ECDD;
  --nc-sky:         #E3EEF2; /* lys himmelblå seksjon */
  --nc-accent:      #E2725B; /* varm korall – CTA */
  --nc-accent-700:  #C85A45;
  --nc-line:        #E4E0D6; /* hårfine streker */

  --nc-radius:      14px;
  --nc-radius-sm:   10px;
  --nc-shadow:      0 6px 24px rgba(20, 39, 49, .08);
  --nc-shadow-lg:   0 16px 48px rgba(20, 39, 49, .12);
  --nc-maxw:        1180px;
  --nc-contentw:    760px;

  --nc-font-head:   "Fraunces", Georgia, "Times New Roman", serif;
  --nc-font-body:   "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* =========================================================
   2. Grunnstil
   ========================================================= */
body {
  font-family: var(--nc-font-body);
  color: var(--nc-ink);
  background: var(--nc-base);
  font-size: 1.0625rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--nc-primary); text-underline-offset: 3px; }
a:hover { color: var(--nc-primary-700); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--nc-font-head);
  font-weight: 400;
  color: var(--nc-secondary);
  line-height: 1.15;
  letter-spacing: -0.01em;
}
h1 { font-size: clamp(2.3rem, 1.6rem + 3vw, 3.6rem); font-weight: 500; }
h2 { font-size: clamp(1.8rem, 1.4rem + 2vw, 2.6rem); }
h3 { font-size: clamp(1.3rem, 1.1rem + 1vw, 1.6rem); }

p { margin: 0 0 1.1em; }

/* Liten "eyebrow"-etikett over overskrifter */
.nc-eyebrow {
  font-family: var(--nc-font-body);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .78rem;
  font-weight: 600;
  color: var(--nc-primary);
  margin-bottom: .4em;
}

/* =========================================================
   3. Knapper
   ========================================================= */
.wp-block-button__link,
.button, button, input[type="submit"] {
  font-family: var(--nc-font-body);
  font-weight: 600;
  letter-spacing: .01em;
  border-radius: 999px;
  padding: .85em 1.7em;
  transition: transform .15s ease, background-color .2s ease, box-shadow .2s ease;
}
.wp-block-button__link { background-color: var(--nc-accent); color: #fff; }
.wp-block-button__link:hover { background-color: var(--nc-accent-700); transform: translateY(-1px); box-shadow: var(--nc-shadow); }

/* Sekundær/utline-knapp: legg klassen "is-style-outline" på knappen */
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--nc-secondary);
  border: 1.5px solid currentColor;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--nc-secondary); color: #fff; border-color: var(--nc-secondary);
}
/* På mørk bakgrunn */
.has-secondary-background-color .wp-block-button.is-style-outline .wp-block-button__link,
.nc-on-dark .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; }

/* =========================================================
   4. Header & navigasjon (GeneratePress)
   ========================================================= */
.site-header { background: var(--nc-base); border-bottom: 1px solid var(--nc-line); }
.main-title a { font-family: var(--nc-font-head); font-weight: 500; color: var(--nc-secondary); }
.site-description { color: var(--nc-muted); font-style: italic; }

.main-navigation { background: transparent; }
.main-navigation .main-nav ul li a {
  font-weight: 500;
  letter-spacing: .01em;
  text-transform: none;
}
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li a:hover { color: var(--nc-primary); }

/* "Book"-knapp i menyen: gi menypunktet CSS-klassen "nc-nav-cta" */
.main-navigation .main-nav ul li.nc-nav-cta a {
  background: var(--nc-accent);
  color: #fff;
  border-radius: 999px;
  margin: .35em 0 .35em 1em;
  padding: .5em 1.3em;
}
.main-navigation .main-nav ul li.nc-nav-cta a:hover { background: var(--nc-accent-700); color:#fff; }

/* =========================================================
   5. Seksjoner & layout-hjelpere
   ========================================================= */
.nc-section { padding-block: clamp(28px, 3.5vw, 52px); }
/* Strammere luft mellom seksjons-intro og innhold (slår inline-margin) */
.nc-section .nc-lead { margin-bottom: 1.3rem !important; }
.nc-section--sky { background: var(--nc-sky); }
.nc-section--sand { background: var(--nc-sand-light); }
.nc-section--dark { background: var(--nc-secondary); color: #fff; }
.nc-section--dark h1, .nc-section--dark h2, .nc-section--dark h3 { color: #fff; }
.nc-section--dark .nc-eyebrow { color: var(--nc-sand); }

.nc-lead { font-size: 1.2rem; color: var(--nc-muted); max-width: 44ch; }
.nc-section--dark .nc-lead { color: rgba(255,255,255,.82); }

/* Innholdsbredde for lesbarhet i artikler */
.single-post .entry-content,
.page .entry-content > *:not(.alignfull):not(.alignwide) {
  max-width: var(--nc-contentw);
}

/* =========================================================
   6. Kort (rutekort, destinasjoner, guider)
   ========================================================= */
.nc-card {
  background: var(--nc-white);
  border: 1px solid var(--nc-line);
  border-radius: var(--nc-radius);
  padding: 1.6rem 1.5rem;
  box-shadow: var(--nc-shadow);
  height: 100%;
  transition: transform .18s ease, box-shadow .18s ease;
}
.nc-card:hover { transform: translateY(-3px); box-shadow: var(--nc-shadow-lg); }
.nc-card h3 { margin-top: 0; }
.nc-card .nc-meta {
  font-size: .9rem; color: var(--nc-muted); font-weight: 500;
  display: block; margin-bottom: .6rem;
}
.nc-card a.nc-card-link {
  font-weight: 600; text-decoration: none; display: inline-flex; gap: .4em; align-items: center;
}
.nc-card a.nc-card-link::after { content: "→"; transition: transform .15s ease; }
.nc-card:hover a.nc-card-link::after { transform: translateX(3px); }

/* Bildekort med foto øverst (destinasjoner) */
.nc-photo-card { overflow: hidden; padding: 0; }
.nc-photo-card .wp-block-image { margin: 0; }
.nc-photo-card .wp-block-image img { width: 100%; aspect-ratio: 3/2; object-fit: cover; display: block; }
.nc-photo-card .nc-photo-card__body { padding: 1.3rem 1.4rem 1.5rem; }

/* =========================================================
   7. Faktaboks (rute-/selskapssider)
   ========================================================= */
.nc-factbox {
  background: var(--nc-sand-light);
  border: 1px solid var(--nc-sand);
  border-left: 5px solid var(--nc-primary);
  border-radius: var(--nc-radius-sm);
  padding: 1.4rem 1.6rem;
}
.nc-factbox h3 { margin: 0 0 .8rem; font-family: var(--nc-font-body); font-weight: 700; font-size: 1.05rem; color: var(--nc-secondary); }

/* =========================================================
   8. Footer (GeneratePress)
   ========================================================= */
.site-footer .footer-widgets { background: var(--nc-secondary); color: rgba(255,255,255,.8); }
.site-footer .footer-widgets a { color: #fff; }
.site-footer .footer-widgets a:hover { color: var(--nc-sand); }
.site-footer .footer-widgets .widget-title { font-family: var(--nc-font-head); color: #fff; font-weight: 500; }
.site-info { background: #0E2C38; color: rgba(255,255,255,.7); }
.site-info a { color: #fff; }

/* =========================================================
   9. Affiliate-merking
   ========================================================= */
.nc-disclosure {
  font-size: .85rem; color: var(--nc-muted);
  background: var(--nc-sand-light);
  border-radius: var(--nc-radius-sm);
  padding: .7rem 1rem;
  margin-bottom: 1.4rem;
}

/* =========================================================
   10. FAQ
   ========================================================= */
.nc-faq details {
  border-bottom: 1px solid var(--nc-line);
  padding: .9rem 0;
}
.nc-faq summary {
  cursor: pointer; font-weight: 600; color: var(--nc-secondary);
  font-size: 1.08rem; list-style: none;
}
.nc-faq summary::-webkit-details-marker { display: none; }
.nc-faq summary::after { content: "+"; float: right; color: var(--nc-primary); font-weight: 400; }
.nc-faq details[open] summary::after { content: "–"; }
.nc-faq details[open] p { margin-top: .7rem; }

/* =========================================================
   11. Diverse
   ========================================================= */
.entry-title, .page-header h1 { margin-bottom: .3em; }
.entry-meta { color: var(--nc-muted); font-size: .9rem; }
figure.wp-block-image img { border-radius: var(--nc-radius-sm); }
blockquote { border-left: 4px solid var(--nc-primary); padding-left: 1.2rem; color: var(--nc-secondary); font-style: italic; }

@media (max-width: 768px) {
  .nc-lead { font-size: 1.1rem; }
}

/* =========================================================
   12. Tematiske illustrasjoner – ferge & kyst
   ========================================================= */

/* Hero med fergefoto */
.nc-hero { position: relative; }
.nc-hero .wp-block-cover__background {
  background: linear-gradient(180deg, rgba(16,32,40,.44) 0%, rgba(16,32,40,.56) 45%, rgba(16,32,40,.82) 100%) !important;
}
.nc-hero__content {
  position: relative; z-index: 3; text-align: center;
  max-width: 720px; margin-inline: auto;
  padding-block: clamp(16px, 2.5vw, 32px);
}
.nc-hero h1 { font-size: clamp(1.55rem, 1.05rem + 2.3vw, 2.9rem); margin-bottom: .4rem; }
.nc-hero .nc-lead { font-size: 1.08rem; }
.nc-hero .nc-routebadge { margin-bottom: .9rem; }
.nc-hero, .nc-hero h1, .nc-hero p { color: #fff; }
.nc-hero h1 { text-shadow: 0 2px 22px rgba(8,22,28,.55); }
.nc-hero .nc-lead { color: #fff; margin-inline: auto; text-shadow: 0 1px 12px rgba(8,22,28,.6); }
.nc-hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px;
  height: clamp(26px, 4vw, 52px); z-index: 4; pointer-events: none;
  background: url(assets/img/wave.svg) center bottom / 100% 100% no-repeat;
}

/* «Norge → Danmark»-merkelapp med flagg */
.nc-routebadge {
  display: inline-flex; align-items: center; gap: .55rem;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.34);
  color: #fff; padding: .42rem .95rem; border-radius: 999px;
  font-family: var(--nc-font-body); font-weight: 600; font-size: .9rem;
  letter-spacing: .02em; margin-bottom: 1.3rem; backdrop-filter: blur(6px);
}
.nc-routebadge svg.nc-flag { display: block; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,.5); }
.nc-routebadge .nc-arrow { opacity: .9; font-weight: 700; }

/* USP-stripe */
.nc-usp { padding-block: clamp(26px, 3.5vw, 44px); background: var(--nc-base); border-bottom: 1px solid var(--nc-line); }
.nc-usp__item { text-align: center; padding-inline: .5rem; }
.nc-usp__icon { width: 32px; height: 32px; color: var(--nc-primary); margin: 0 auto .5rem; display: block; }
.nc-usp__item h3 { font-family: var(--nc-font-body); font-size: 1.02rem; font-weight: 700; color: var(--nc-secondary); margin: 0 0 .25rem; }
.nc-usp__item p { font-size: .9rem; color: var(--nc-muted); margin: 0; line-height: 1.5; }

/* Kryssningskart */
.nc-mapwrap { max-width: 840px; margin-inline: auto; }
.nc-map {
  width: 100%; height: auto; display: block;
  border-radius: 18px;
  filter: drop-shadow(0 14px 34px rgba(20,39,49,.14));
}

/* Fergeikon på rutekort */
.nc-route-card { position: relative; }
.nc-cardicon {
  width: 38px; height: 38px; display: block;
  color: var(--nc-primary); margin-bottom: .7rem;
}

/* Fotokort (destinasjoner) */
.nc-photo-cover { border-radius: 16px; overflow: hidden; box-shadow: var(--nc-shadow); transition: transform .25s ease, box-shadow .25s ease; }
.nc-photo-cover:hover { transform: translateY(-4px); box-shadow: var(--nc-shadow-lg); }
.nc-photo-cover .wp-block-cover__image-background { transition: transform .6s ease; }
.nc-photo-cover:hover .wp-block-cover__image-background { transform: scale(1.07); }
.nc-photo-cover .wp-block-cover__background {
  background: linear-gradient(180deg, rgba(20,39,49,0) 35%, rgba(20,39,49,.78) 100%) !important;
}
.nc-photo-cover h3 { margin: 0; font-size: 1.5rem; }
.nc-photo-cover h3 a { color: #fff; text-decoration: none; }
.nc-photo-cover h3 a::after { content: " →"; opacity: 0; transition: opacity .2s ease; }
.nc-photo-cover:hover h3 a::after { opacity: .9; }

/* Foto-CTA */
.nc-cta-cover .wp-block-cover__background {
  background: linear-gradient(180deg, rgba(20,39,49,.60) 0%, rgba(20,39,49,.80) 100%) !important;
}
.nc-cta-cover h2, .nc-cta-cover p { color: #fff; }
.nc-cta-cover .nc-lead { color: rgba(255,255,255,.9); }

/* =========================================================
   13. Affiliate-konvertering: hero-trust, hurtignav, toppliste
   ========================================================= */

/* Hero trust-linje */
.nc-trustline { text-align: center; color: #fff; font-size: .92rem; font-weight: 600; margin: 0; text-shadow: 0 1px 10px rgba(8,22,28,.6); }
.nc-stars { color: #FFC94D; letter-spacing: 1px; }

/* Hurtignav */
.nc-quicknav { background: var(--nc-base); border-bottom: 1px solid var(--nc-line); padding-block: .85rem; position: sticky; top: 0; z-index: 50; }
.nc-quicknav__row { display: flex; flex-wrap: wrap; gap: .55rem; justify-content: center; }
.nc-quicknav__row a {
  display: inline-flex; align-items: center;
  background: var(--nc-sand-light); color: var(--nc-secondary);
  font-weight: 600; font-size: .9rem; padding: .5rem 1.05rem;
  border-radius: 999px; text-decoration: none; border: 1px solid var(--nc-line);
  transition: background .15s, color .15s, border-color .15s;
}
.nc-quicknav__row a:hover { background: var(--nc-primary); color: #fff; border-color: var(--nc-primary); }

/* Toppliste */
.nc-disclosure-inline { text-align: center; font-size: .82rem; color: var(--nc-muted); margin: 0 0 1rem; }
.nc-toplist { display: flex; flex-direction: column; gap: .85rem; max-width: 920px; margin-inline: auto; }
.nc-top {
  display: grid; grid-template-columns: 58px 1fr 232px; gap: 1.4rem; align-items: center;
  background: #fff; border: 1px solid var(--nc-line); border-radius: 16px;
  padding: 1.5rem 1.6rem; box-shadow: var(--nc-shadow); position: relative;
  transition: transform .18s ease, box-shadow .18s ease;
}
.nc-top:hover { transform: translateY(-2px); box-shadow: var(--nc-shadow-lg); }
.nc-top--featured { border-color: var(--nc-accent); box-shadow: 0 0 0 2px rgba(226,114,91,.28), var(--nc-shadow); }
.nc-top__rank { font-family: var(--nc-font-head); font-size: 2.1rem; font-weight: 600; color: var(--nc-primary); text-align: center; line-height: 1; }
.nc-top__main { display: flex; gap: 1.1rem; align-items: flex-start; }
.nc-top__ship { width: 96px; height: 96px; border-radius: 14px; object-fit: cover; flex: none; background: #fff; border: 1px solid var(--nc-line); box-shadow: var(--nc-shadow); }
.nc-top__info { flex: 1; min-width: 0; }
.nc-top__badge {
  position: absolute; top: -11px; left: 20px;
  background: var(--nc-accent); color: #fff; font-size: .68rem; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase; padding: .22rem .7rem; border-radius: 999px;
}
.nc-top__badge--alt { background: var(--nc-primary); }
.nc-top__name { font-size: 1.4rem; margin: 0 0 .15rem; line-height: 1.1; }
.nc-top__tag { font-size: .88rem; color: var(--nc-muted); margin: 0 0 .7rem; font-weight: 600; }
.nc-top__feats { list-style: none; margin: 0; padding: 0; display: grid; gap: .28rem; }
.nc-top__feats li { font-size: .92rem; padding-left: 1.5rem; position: relative; line-height: 1.4; }
.nc-top__feats li::before { content: "✓"; position: absolute; left: 0; color: var(--nc-primary); font-weight: 700; }
.nc-top__side { text-align: center; }
.nc-top__score { display: flex; flex-direction: column; align-items: center; margin-bottom: .65rem; }
.nc-top__num { font-family: var(--nc-font-head); font-size: 1.9rem; font-weight: 600; color: #1d7a4f; line-height: 1; }
.nc-top__lbl { font-size: .72rem; color: var(--nc-muted); text-transform: uppercase; letter-spacing: .05em; margin-top: .15rem; }
.nc-top__stars { color: #FFB22E; font-size: .95rem; letter-spacing: 1px; margin-top: .2rem; }
.nc-top__cta {
  display: block; background: var(--nc-accent); color: #fff; font-weight: 700;
  text-align: center; padding: .8rem 1rem; border-radius: 999px; text-decoration: none;
  transition: background .15s, transform .15s, box-shadow .15s;
}
.nc-top__cta:hover { background: var(--nc-accent-700); color: #fff; transform: translateY(-1px); box-shadow: var(--nc-shadow); }
.nc-top__review { display: inline-block; margin-top: .55rem; font-size: .85rem; color: var(--nc-primary); font-weight: 600; text-decoration: none; }
.nc-top__review:hover { text-decoration: underline; }

@media (max-width: 760px) {
  .nc-top { grid-template-columns: 32px 1fr; gap: .7rem; padding: 1.3rem 1.1rem; }
  .nc-top__rank { font-size: 1.4rem; align-self: start; padding-top: .15rem; }
  .nc-top__tag { font-size: .82rem; }
  .nc-top__feats li { font-size: .88rem; }
  .nc-top__main { gap: .8rem; }
  .nc-top__ship { width: 76px; height: 76px; }
  .nc-top__side { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--nc-line); padding-top: 1rem; }
  .nc-top__score { flex-direction: row; align-items: baseline; gap: .4rem; margin: 0; }
  .nc-top__cta { flex: 1; max-width: 220px; }
  .nc-quicknav { position: static; }
}

/* SEO-innhold */
.nc-prose { max-width: 760px; margin-inline: auto; }
.nc-prose h2 { margin: 0 0 .6rem; }
.nc-prose h3 { margin: 1.2rem 0 .4rem; }
.nc-prose p { color: #33474f; }

/* =========================================================
   14. Header / logo (block-tema)
   ========================================================= */
.nc-site-header { border-bottom: 1px solid var(--nc-line); position: relative; z-index: 200; }
.nc-header__inner { min-height: 54px; }
.nc-brand { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; }
.nc-brand__icon { width: 30px; height: 30px; color: var(--nc-primary); display: block; flex: none; }
.nc-brand__text { font-family: var(--nc-font-head); font-weight: 600; font-size: 1.32rem; color: var(--nc-secondary); letter-spacing: -0.01em; line-height: 1; }
.nc-brand:hover .nc-brand__text { color: var(--nc-primary); }

.nc-header__right .wp-block-navigation { font-size: .95rem; }
.nc-header__right .wp-block-navigation a { color: var(--nc-secondary); text-decoration: none; }
.nc-header__right .wp-block-navigation a:hover { color: var(--nc-primary); }
.nc-header__cta .wp-block-button__link { padding: .5rem 1.2rem; }

@media (max-width: 600px) {
  .nc-brand__text { font-size: 1.15rem; }
}

/* =========================================================
   15. Toppliste – pris, fasiliteter, spar-badge
   ========================================================= */
.nc-top__save {
  display: inline-block; background: #e7f3ec; color: #1d7a4f;
  font-family: var(--nc-font-body); font-size: .72rem; font-weight: 700;
  padding: .14rem .55rem; border-radius: 6px; margin-left: .5rem; vertical-align: middle;
}
.nc-top__icons { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .8rem; }
.nc-fac {
  width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center;
  color: var(--nc-primary); background: var(--nc-sand-light);
  border: 1px solid var(--nc-line); border-radius: 8px;
}
.nc-fac svg { width: 16px; height: 16px; display: block; }
.nc-top__price { margin: .6rem 0 .3rem; line-height: 1.05; }
.nc-top__pricelbl { display: block; font-size: .7rem; color: var(--nc-muted); text-transform: uppercase; letter-spacing: .05em; }
.nc-top__priceval { font-family: var(--nc-font-head); font-weight: 600; font-size: 1.35rem; color: var(--nc-secondary); }

@media (max-width: 760px) {
  .nc-top__side { flex-wrap: wrap; }
  .nc-top__price { margin: 0; text-align: left; }
  .nc-top__priceval { font-size: 1.2rem; }
  .nc-top__cta { flex: 1 1 100%; max-width: none; order: 3; }
  .nc-top__score { order: 1; }
  .nc-top__price { order: 2; }
  .nc-top__review { order: 4; flex: 1 1 100%; text-align: center; }
}

/* =========================================================
   16. Rutekort som bilde-overlegg
   ========================================================= */
.nc-routegrid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem;
  max-width: 1080px; margin-inline: auto;
}
.nc-route-cover {
  position: relative; display: block; overflow: hidden;
  aspect-ratio: 16 / 10; border-radius: 14px; text-decoration: none;
  box-shadow: var(--nc-shadow);
  transition: transform .2s ease, box-shadow .2s ease;
}
.nc-route-cover:hover { transform: translateY(-3px); box-shadow: var(--nc-shadow-lg); }
.nc-route-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.nc-route-cover:hover img { transform: scale(1.06); }
.nc-route-cover__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16,32,40,.05) 25%, rgba(16,32,40,.55) 62%, rgba(16,32,40,.88) 100%); }
.nc-route-cover__txt { position: absolute; left: 0; right: 0; bottom: 0; padding: 1rem 1.15rem 1.1rem; }
.nc-route-cover__name { display: block; font-family: var(--nc-font-head); font-weight: 600; font-size: 1.32rem; line-height: 1.12; color: #fff; }
.nc-route-cover__meta { display: block; margin-top: .25rem; color: rgba(255,255,255,.92); font-size: .84rem; font-weight: 600; }
.nc-route-cover__go { display: inline-block; margin-top: .55rem; color: #fff; font-weight: 700; font-size: .85rem; opacity: .9; transition: transform .15s ease; }
.nc-route-cover:hover .nc-route-cover__go { transform: translateX(3px); }

@media (max-width: 820px) { .nc-routegrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .nc-routegrid { grid-template-columns: 1fr; } }

/* Kart som bilde */
img.nc-map { width: 100%; height: auto; }

/* 4-kolonners grid (reisemål + guider) – gjenbruker .nc-route-cover */
.nc-grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; max-width: 1100px; margin-inline: auto; }
.nc-destgrid .nc-route-cover { aspect-ratio: 4 / 5; }
.nc-guidegrid .nc-route-cover { aspect-ratio: 1 / 1; }
.nc-guidegrid .nc-route-cover__name { font-size: 1.05rem; }
.nc-guidegrid .nc-route-cover__txt { padding: .8rem .9rem .95rem; }
@media (max-width: 900px) { .nc-grid4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .nc-grid4 { grid-template-columns: 1fr; } }

/* Stedsnavn skal aldri brytes midt i ordet */
.nc-route-cover__name, .nc-route-cover__meta { overflow-wrap: normal; word-break: normal; hyphens: none; }
.nc-destgrid .nc-route-cover__name { font-size: 1.25rem; }

/* =========================================================
   17. Innholdsmaler: omtale, guide, nyhet
   ========================================================= */
.nc-page-head { max-width: 820px; margin-inline: auto; padding-top: .5rem; }
.nc-page-head .nc-eyebrow { margin-bottom: .3rem; }
.nc-page-lead { font-size: 1.2rem; color: var(--nc-muted); max-width: 60ch; }

/* Selskapsomtale – topp-boks */
.nc-reviewbox {
  display: grid; grid-template-columns: 160px 1fr; gap: 1.6rem; align-items: center;
  background: var(--nc-sand-light); border: 1px solid var(--nc-sand);
  border-radius: 16px; padding: 1.5rem 1.7rem; margin: 1.8rem 0;
}
.nc-reviewbox__score { text-align: center; background: #fff; border: 1px solid var(--nc-line); border-radius: 12px; padding: 1rem .5rem; }
.nc-reviewbox__score p { margin: 0; }
.nc-reviewbox__num { font-family: var(--nc-font-head); font-size: 2.3rem; font-weight: 600; color: #1d7a4f; display: block; line-height: 1; }
.nc-reviewbox__lbl { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--nc-muted); display: block; margin-top: .2rem; }
.nc-reviewbox__stars { color: #FFB22E; display: block; margin-top: .25rem; }
.nc-reviewbox__facts { margin: 0 0 .9rem; font-size: .95rem; }
@media (max-width: 600px) { .nc-reviewbox { grid-template-columns: 1fr; } }

/* Fordeler / ulemper */
.nc-pros, .nc-cons { background: #fff; border: 1px solid var(--nc-line); border-radius: 12px; padding: 1.2rem 1.4rem; }
.nc-pros { border-top: 4px solid #1d7a4f; }
.nc-cons { border-top: 4px solid var(--nc-accent); }
.nc-pros ul, .nc-cons ul { list-style: none; margin: 0; padding: 0; }
.nc-pros li, .nc-cons li { padding-left: 1.6rem; position: relative; margin-bottom: .45rem; }
.nc-pros li::before { content: "✓"; position: absolute; left: 0; color: #1d7a4f; font-weight: 700; }
.nc-cons li::before { content: "✕"; position: absolute; left: 0; color: var(--nc-accent); font-weight: 700; }

/* Inline CTA-boks */
.nc-ctabox { background: linear-gradient(135deg, var(--nc-primary), var(--nc-secondary)); color: #fff; border-radius: 16px; padding: 1.8rem; margin: 1.8rem 0; text-align: center; }
.nc-ctabox h2, .nc-ctabox h3, .nc-ctabox p { color: #fff; }
.nc-ctabox h2, .nc-ctabox h3 { margin-top: 0; }

/* Artikkel-/nyhetsmeta */
.nc-article-meta { color: var(--nc-muted); font-size: .9rem; }

/* =========================================================
   18. Mobiloptimalisering – konvertering & design
   ========================================================= */

.nc-stickybar { display: none !important; }

@media (max-width: 768px) {
  /* Ryddigere header – logo til venstre, hamburger til høyre, ingen CTA (sticky-baren tar over) */
  .nc-header__cta,
  .nc-header__right .wp-block-buttons { display: none !important; }
  .nc-header__inner { flex-wrap: nowrap !important; padding-top: .45rem; padding-bottom: .45rem; }
  .nc-header__right { margin-left: auto; gap: 0 !important; }

  /* Hero: full-bredde CTA-er, mer tommelvennlig */
  .nc-hero .wp-block-buttons { flex-direction: column; align-items: stretch; gap: .7rem; width: 100%; max-width: 360px; margin-inline: auto; }
  .nc-hero .wp-block-button { width: 100%; }
  .nc-hero .wp-block-button__link { display: block; text-align: center; padding-block: .95em; }
  .nc-hero__content { padding-block: clamp(20px, 4vw, 32px); }
  .nc-hero .nc-lead { font-size: 1.02rem; }

  /* Knapper generelt: god tap-høyde */
  .wp-block-button__link { padding-block: .9em; }
}

/* Topplista: litt mindre logo på mobil for mer tekstplass */
@media (max-width: 760px) {
  .nc-top__ship { width: 54px; height: 54px; }
  .nc-top__name { font-size: 1.12rem; }
  .nc-top__main { gap: .7rem; }
}

/* Reisemål + guider: behold 2 kolonner på telefon (mer skannbart) */
@media (max-width: 520px) {
  .nc-destgrid, .nc-guidegrid { grid-template-columns: repeat(2, 1fr); gap: .8rem; }
  .nc-guidegrid .nc-route-cover__name { font-size: .95rem; }
}

/* =========================================================
   19. Sekundærknapp i hero – synlig hvit ghost på mørkt foto
   ========================================================= */
.nc-hero .wp-block-button.is-style-outline .wp-block-button__link {
  color: #fff;
  border: 1.5px solid rgba(255,255,255,.8);
  background: rgba(255,255,255,.12);
}
.nc-hero .wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: #fff;
  color: var(--nc-secondary);
  border-color: #fff;
}

/* =========================================================
   20. Mobil overlay-meny – sentrer elementene (unngå at de faller utenfor)
   ========================================================= */
.wp-block-navigation__responsive-container.is-menu-open { padding: 2.5rem 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  justify-content: center !important;
  align-items: center !important;
  text-align: center;
  width: 100%;
  gap: .4rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { justify-content: center; width: auto; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; }

/* CTA-knapp i menyen (siste menypunkt) – pill på desktop og i mobil-overlay */
.wp-block-navigation .nc-nav-btn .wp-block-navigation-item__content {
  background: var(--nc-accent); color: #fff; border-radius: 999px;
  padding: .5em 1.25em; font-weight: 700;
}
.wp-block-navigation .nc-nav-btn .wp-block-navigation-item__content:hover { background: var(--nc-accent-700); color: #fff; }
.wp-block-navigation__responsive-container.is-menu-open .nc-nav-btn { margin-top: .6rem; }
.wp-block-navigation__responsive-container.is-menu-open .nc-nav-btn .wp-block-navigation-item__content { padding: .65em 1.6em; }

/* Dropdown-menyer (undermeny) */
.wp-block-navigation .wp-block-navigation__submenu-container {
  background: #fff; border: 1px solid var(--nc-line);
  border-radius: 12px; box-shadow: var(--nc-shadow-lg);
  padding: .4rem 0; min-width: 230px; z-index: 210;
}
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  color: var(--nc-secondary); padding: .5em 1.1em;
}
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--nc-primary); }

/* Topplista: logo og navn er direkte (cloakede) salgslenker */
.nc-top__logolink { display: block; line-height: 0; }
.nc-top__name a { color: inherit; text-decoration: none; }
.nc-top__name a:hover { color: var(--nc-primary); }
