/*
 * Shared visual finish for all custom page templates.
 * This file intentionally loads after each specialist stylesheet: it aligns the
 * surfaces without changing template content, data, behaviour or page order.
 */
body.page-template{
  --pt-navy:#00284a;
  --pt-blue:#005293;
  --pt-gold:#fecc00;
  --pt-ink:#123a59;
  --pt-muted:#536b7d;
  --pt-paper:#fbfcfe;
  --pt-soft:#f1f6f8;
  --pt-soft-blue:#eaf3f8;
  --pt-cream:#fffbe7;
  --pt-line:#c8d7e1;
  --pt-radius:14px;
  background:var(--pt-paper);
}
body.page-template main{color:var(--pt-navy)}
body.page-template main ::selection{background:var(--pt-gold);color:var(--pt-navy)}
body.page-template main :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--pt-gold);outline-offset:3px}
body.page-template main :is(input,select,textarea){caret-color:var(--pt-blue)}
body.page-template main :is(.rp-wrap,.container,.u-wrap,.swnet-media__shell,.nn-page,.swnet-archive){max-width:1180px}

/* One calm arrival pattern for the data-led templates. */
body.page-template .rp-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(3.5rem,7vw,5.5rem) 0;
  background:
    radial-gradient(circle at 88% 20%,rgb(254 204 0 / .18) 0 2px,transparent 3px),
    radial-gradient(circle at 82% 66%,rgb(255 255 255 / .13) 0 2px,transparent 3px),
    linear-gradient(118deg,#00284a 0%,#004b82 58%,#005f9f 100%);
  background-size:54px 54px,72px 72px,auto;
  color:#fff;
}
body.page-template .rp-hero::after{content:none}
body.page-template .rp-hero .rp-wrap{position:relative;z-index:1}
body.page-template .rp-hero .rp-eyebrow{color:var(--pt-gold)}
body.page-template .rp-hero h1{
  max-width:860px;
  margin-bottom:1rem;
  color:#fff;
  font-size:clamp(2.35rem,5vw,4rem);
  line-height:1.04;
  letter-spacing:-.03em;
  text-wrap:balance;
}
body.page-template .rp-hero p:not(.rp-eyebrow){max-width:720px;margin-bottom:1.4rem;color:#e7f0f6;font-size:1.05rem;line-height:1.65}
body.page-template .rp-hero__links a{border:0;border-radius:8px;background:var(--pt-gold);color:var(--pt-navy)}
body.page-template .rp-hero__links a:hover{background:#ffe06a}
body.page-template .rp-hero__links a+a{background:#fff;color:var(--pt-blue);box-shadow:none}
body.page-template .rp .rp-section{padding-block:clamp(3rem,6vw,5rem)}
body.page-template .rp .rp-heading{margin-bottom:1.5rem}
body.page-template .rp .rp-heading :is(h2,h3){font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.12;text-wrap:balance}
body.page-template .rp .rp-heading>p:last-child{font-size:.95rem;line-height:1.65}

/* Inputs remain defined; content surfaces do not need a surrounding wireframe. */
body.page-template .rp :is(input[type="text"],input[type="search"],input[type="number"],select,textarea),
body.page-template .swnet-archive :is(input,select),
body.page-template .nn-page :is(input,select){border:1px solid #b5c6d2;border-radius:8px;background:#fff}
body.page-template .rp :is(input,select,textarea):focus,
body.page-template .swnet-archive :is(input,select):focus,
body.page-template .nn-page :is(input,select):focus{border-color:var(--pt-blue);box-shadow:0 0 0 3px rgb(0 82 147 / .13);outline:0}
body.page-template .rp-filters button,
body.page-template .rp-months button{min-height:40px;border:0;border-radius:8px;background:var(--pt-soft-blue)}
body.page-template .rp-filters button:hover,
body.page-template .rp-months button:hover{background:#dcebf3}
body.page-template .rp-filters button.is-active{background:var(--pt-navy);color:#fff}
body.page-template .rp-months button.is-active{background:var(--pt-gold);color:var(--pt-navy)}

body.page-template .rp-card,
body.page-template .rp-insight__card,
body.page-template .rp-insight__stats>div,
body.page-template .swnet-school__insights article{
  border:0;
  border-radius:var(--pt-radius);
  background:var(--pt-soft);
  box-shadow:none;
}
body.page-template .rp-insight__card::before{content:none}
body.page-template .rp-insight__grid,
body.page-template .rp-insight__stats,
body.page-template .swnet-school__insights{gap:.8rem}
body.page-template .rp-insight__card strong,
body.page-template .rp-insight__stats strong{font-variant-numeric:tabular-nums}
body.page-template :is(.rp-timeline,.rp-insight__table-wrap,.rp-insight__price-table-wrap,.rp-insight__chart){border:0;border-radius:var(--pt-radius);box-shadow:none}
body.page-template :is(.rp-timeline,.rp-insight__table-wrap,.rp-insight__price-table-wrap){overflow:auto;background:#fff}
body.page-template .rp-insight__chart{background:var(--pt-soft)}
body.page-template .rp-insight__related a{border:0;border-radius:9px;background:var(--pt-soft)}
body.page-template .rp-insight__related a:hover{background:var(--pt-soft-blue)}
body.page-template :is(.rp-note,.rp-empty-message,.rp-insight__price-intro,.rp-insight__empty,.rp-bathing__snapshot,.rp-bathing__stale){border:0;border-radius:12px}

/* Map and finder pages use one two-surface composition. */
body.page-template :is(.rp-map-side,.rp-communes__side){padding:1.2rem;border:0;border-radius:var(--pt-radius);background:var(--pt-soft)}
body.page-template :is(.rp-map-canvas,.swnet-protected__map,.swnet-aurora__map){border:0;border-radius:var(--pt-radius)}
body.page-template .rp-place{border-top:0;border-bottom:1px solid #dbe5eb}
body.page-template .rp-place:last-child{border-bottom:0}
body.page-template .rp-bathing__more{border:0;border-radius:8px;background:#fff;color:var(--pt-blue)}
body.page-template .rp-bathing__more:hover{background:var(--pt-soft-blue)}
body.page-template .rp-map-consent,
body.page-template :is(.swnet-aurora__map-consent,.swnet-partner__consent){border-radius:var(--pt-radius);background:var(--pt-soft-blue)}
body.page-template :is(.rp-map-consent,.swnet-aurora__map-consent,.swnet-partner__consent) button{border:0;border-radius:8px;background:var(--pt-navy);color:#fff}

/* School holidays, live travel and protected nature: stronger grouping, fewer seams. */
body.page-template .swnet-school__primer,
body.page-template .swnet-school__next,
body.page-template .swnet-school__ranking section,
body.page-template .swnet-school__legend,
body.page-template .swnet-school__empty{border:0;border-radius:12px}
body.page-template .swnet-school__insights article{padding:1.2rem}
body.page-template .swnet-school__ranking{gap:.8rem}
body.page-template .swnet-school__ranking section{background:var(--pt-soft-blue)}
body.page-template .swnet-school__ranking .swnet-school__basis{border:0;border-radius:12px;background:var(--pt-cream)}
body.page-template .swnet-trip-monitor{border:0;border-radius:16px;background:var(--pt-soft)}
body.page-template .swnet-trip-monitor__layout{overflow:hidden;border:0;border-radius:14px}
body.page-template .swnet-trip-monitor :is(input,select,button){border-radius:8px}
body.page-template .swnet-protected__facts{gap:.8rem}
body.page-template .swnet-protected>.rp-hero{
  background:
    radial-gradient(circle at 88% 20%,rgb(254 204 0 / .18) 0 2px,transparent 3px),
    radial-gradient(circle at 82% 66%,rgb(255 255 255 / .13) 0 2px,transparent 3px),
    linear-gradient(118deg,#00284a 0%,#004b82 58%,#005f9f 100%)!important;
  background-size:54px 54px,72px 72px,auto!important;
}
body.page-template .swnet-protected__facts{border:0;background:transparent}
body.page-template .swnet-protected__facts article{border:0;border-radius:12px;background:var(--pt-soft)}
body.page-template .swnet-protected__guide,
body.page-template .swnet-protected__types{border:0;border-radius:16px;background:var(--pt-soft)}
body.page-template .swnet-protected__guide>div,
body.page-template .swnet-protected__types nav{gap:.75rem;border:0;background:transparent}
body.page-template .swnet-protected__guide article,
body.page-template .swnet-protected__types nav a{border-radius:10px;background:#fff}
body.page-template .swnet-protected__types nav a:hover,
body.page-template .swnet-protected__types nav a[aria-current="page"]{box-shadow:none;background:var(--pt-cream)}
body.page-template .swnet-partner__stats{gap:.8rem}
body.page-template .swnet-partner__stats span{border:0;border-radius:12px;background:var(--pt-soft)}

/* Complete archive: a functional table, not a stack of outlined boxes. */
body.page-template-page-template-archiv .swnet-archive{max-width:1180px;padding-top:clamp(3rem,6vw,5rem)}
body.page-template-page-template-archiv .swnet-archive__filters{gap:.8rem;padding:1.2rem;border:0;border-radius:14px;background:var(--pt-soft)}
body.page-template-page-template-archiv .swnet-archive__reset,
body.page-template-page-template-archiv .swnet-archive__more{border:0;border-radius:8px;background:var(--pt-navy);color:#fff}
body.page-template-page-template-archiv .swnet-archive__summary{border-bottom:0}

/* Navigation hubs: lighter cards and no ornamental empty image block. */
body.page-template-page-template-navigation-hub .archive-hero{padding-block:clamp(3.5rem,7vw,5.5rem);background:var(--pt-cream);color:var(--pt-navy)}
body.page-template-page-template-navigation-hub .archive-hero :is(h1,.hero-lead){color:var(--pt-navy)}
body.page-template-page-template-navigation-hub .archive-hero .kicker{color:var(--pt-blue)}
body.page-template-page-template-navigation-hub .archive-results-section{padding-block:clamp(3rem,6vw,5rem);background:var(--pt-paper)}
body.page-template-page-template-navigation-hub .archive-toolbar{padding:0;border:0;background:transparent;box-shadow:none}
body.page-template-page-template-navigation-hub .archive-grid{gap:1rem}
body.page-template-page-template-navigation-hub .archive-card{overflow:hidden;border:0;border-radius:14px;background:var(--pt-soft);box-shadow:none}
body.page-template-page-template-navigation-hub .archive-card .search-card__image{aspect-ratio:16/7}
body.page-template-page-template-navigation-hub .archive-card .search-card__image--fallback{min-height:12px;max-height:12px;background:var(--pt-gold)}
body.page-template-page-template-navigation-hub .archive-card .search-card__body{padding:1.25rem}

/* Design and all 83 category/brand pages. */
body.page-template-page-template-produktkatalog .nn-breadcrumb{padding-block:1rem;color:var(--pt-muted)}
body.page-template-page-template-produktkatalog .nn-page__hero{
  min-height:0;
  margin-bottom:1rem;
  padding:clamp(2rem,5vw,4rem);
  border:0;
  border-radius:16px;
  background:var(--pt-cream);
}
body.page-template-page-template-produktkatalog .nn-page__hero h1{font-weight:800!important;letter-spacing:-.03em;text-wrap:balance}
body.page-template-page-template-produktkatalog .nn-catalog__controls{gap:.7rem;margin:0 0 1.1rem;padding:1rem;border:0;border-radius:14px;background:var(--pt-soft)}
body.page-template-page-template-produktkatalog .nn-catalog__grid{gap:.85rem;border:0;background:transparent}
body.page-template-page-template-produktkatalog .nn-card{overflow:hidden;border:0;border-radius:14px;background:var(--pt-soft)}
body.page-template-page-template-produktkatalog .nn-card button{background:transparent}
body.page-template-page-template-produktkatalog .nn-card__image{background:#fff}
body.page-template-page-template-produktkatalog .nn-card__open{padding:.45rem 0;border:0;background:transparent;color:var(--pt-blue)}
body.page-template-page-template-produktkatalog .nn-card button:hover .nn-card__open{background:transparent;color:var(--pt-navy);text-decoration:underline;text-underline-offset:3px}
body.page-template-page-template-produktkatalog .nn-catalog__more{border:0;border-radius:8px}
body.page-template-page-template-produktkatalog :is(.nn-brand-directory__grid,.nn-related-pages>div,.nn-insights__grid,.nn-insights__colors>div,.nn-insights__groups>div){gap:.8rem;background:transparent}
body.page-template-page-template-produktkatalog .nn-brand-directory__grid>a,
body.page-template-page-template-produktkatalog .nn-related-pages a,
body.page-template-page-template-produktkatalog .nn-insights__panel,
body.page-template-page-template-produktkatalog .nn-insights__groups,
body.page-template-page-template-produktkatalog .nn-insights__colors article{border:0;border-radius:12px;background:var(--pt-soft)}
body.page-template-page-template-produktkatalog .nn-brand-directory__grid>a{overflow:hidden}
body.page-template-page-template-produktkatalog .nn-brand-directory__grid>a>span{background:#fff}
body.page-template-page-template-produktkatalog .nn-insights__kpis{gap:.6rem;border:0;background:transparent}
body.page-template-page-template-produktkatalog .nn-insights__kpis>div{border:0;border-radius:10px;background:var(--pt-soft-blue)}
body.page-template-page-template-produktkatalog .nn-insights__compact .nn-insights__kpis>div{border:0;border-radius:10px;background:var(--pt-soft-blue);color:var(--pt-navy)}
body.page-template-page-template-produktkatalog .nn-brand-profile{overflow:hidden;border:0;border-radius:14px;background:var(--pt-soft)}
body.page-template-page-template-produktkatalog .nn-brand-profile>img{background:#fff}
body.page-template-page-template-produktkatalog .nn-insights__compact>button{min-height:46px;border:0;border-radius:9px;background:var(--pt-navy);color:#fff}
body.page-template-page-template-produktkatalog .nn-insights__compact>button:hover{background:var(--pt-blue)}
body.page-template-page-template-produktkatalog .nn-brand-profile>div>div{gap:.65rem;background:transparent}
body.page-template-page-template-produktkatalog .nn-brand-profile button{padding:.4rem;border-radius:10px;background:#fff}
body.page-template-page-template-produktkatalog .nn-brand-profile button:hover{background:var(--pt-cream)}
body.page-template-page-template-produktkatalog .nn-brand-profile button img{border-radius:8px;background:var(--pt-soft)}
body.page-template-page-template-produktkatalog .nn-stock-filter{border:0;border-radius:8px;background:var(--pt-soft-blue)}
body.page-template-page-template-produktkatalog .nn-stock-filter:has(input:checked){border:0;border-radius:8px;background:#e3f3ea}
body.page-template-page-template-produktkatalog .nn-sort{border:0;border-radius:8px;background:var(--pt-soft-blue)}
body.page-template-page-template-produktkatalog .nn-sort-menu{overflow:hidden;border:0;border-radius:10px;box-shadow:0 14px 34px rgb(0 40 74 / .18)}
body.page-template-page-template-produktkatalog .nn-sort-menu button{border-bottom:0}

/* Aurora: make both live forecast and long-range planning read as one tool. */
body.page-template-page-template-polarlicht .swnet-aurora__layout{gap:1rem;border:0;background:transparent}
body.page-template-page-template-polarlicht .swnet-aurora__places,
body.page-template-page-template-polarlicht .swnet-aurora__forecast{border:0;border-radius:16px;background:var(--pt-soft)}
body.page-template-page-template-polarlicht .swnet-aurora__places{padding:1.35rem}
body.page-template-page-template-polarlicht .swnet-aurora__forecast{padding:1.35rem;background:#fff}
body.page-template-page-template-polarlicht .swnet-aurora__modes{gap:.4rem;padding:.35rem;border:0;border-radius:11px;background:var(--pt-navy)}
body.page-template-page-template-polarlicht .swnet-aurora__modes button{border-radius:7px}
body.page-template-page-template-polarlicht .swnet-aurora__nights button,
body.page-template-page-template-polarlicht .swnet-aurora__months button{border:0;border-radius:8px;background:var(--pt-soft-blue)}
body.page-template-page-template-polarlicht .swnet-aurora__nights button.is-active,
body.page-template-page-template-polarlicht .swnet-aurora__months button.is-active{background:var(--pt-blue);color:#fff}
body.page-template-page-template-polarlicht .swnet-aurora__status{border:0;border-radius:10px;background:var(--pt-cream)}
body.page-template-page-template-polarlicht .swnet-aurora__facts{gap:.65rem}
body.page-template-page-template-polarlicht .swnet-aurora__fact{border-radius:10px;background:var(--pt-soft-blue)}
body.page-template-page-template-polarlicht .swnet-aurora__chart{border:0;border-radius:12px;background:var(--pt-soft)}
body.page-template-page-template-polarlicht .swnet-aurora__thresholds{gap:.45rem}
body.page-template-page-template-polarlicht .swnet-aurora__thresholds button{border:0;border-radius:8px;background:#fff}
body.page-template-page-template-polarlicht .swnet-aurora__thresholds button:hover,
body.page-template-page-template-polarlicht .swnet-aurora__thresholds button.is-active{border:0;box-shadow:none;background:var(--pt-cream)}
body.page-template-page-template-polarlicht .swnet-aurora__calendar{gap:.5rem}
body.page-template-page-template-polarlicht .swnet-aurora__calendar>span{border-radius:9px}

/* Municipality and school-holiday endings: preserve data density without hard frames. */
body.page-template-page-template-kommunen .rp-communes__rankings{gap:.8rem}
body.page-template-page-template-kommunen .rp-communes__rankings section{border:0;border-radius:14px;background:var(--pt-soft)}
body.page-template-page-template-kommunen .rp-communes__rankings button{border-bottom:0;border-radius:8px;padding:.65rem .7rem}
body.page-template-page-template-kommunen .rp-communes__rankings button:hover,
body.page-template-page-template-kommunen .rp-communes__rankings button:focus-visible{background:#fff;text-decoration:none}
body.page-template-page-template-ferienkalender .swnet-school__filters{gap:.8rem;border:0;border-radius:14px;background:var(--pt-soft-blue)}
body.page-template-page-template-ferienkalender .swnet-school__summary{border-radius:10px}
body.page-template-page-template-ferienkalender .swnet-school-month{border:0;border-radius:12px;background:var(--pt-soft)}
body.page-template-page-template-ferienkalender .swnet-school__past-toggle{border:0;border-radius:8px;background:var(--pt-soft-blue)}
body.page-template-page-template-ferienkalender .swnet-school__table-wrap{overflow:hidden;border-radius:14px;background:#fff}

/* The standalone live application keeps necessary table dividers, but sheds the old framed-card look. */
body.page-template-page-template-schweden-live .swnet-live{overflow:hidden;border-radius:16px;background:var(--pt-paper)}
body.page-template-page-template-schweden-live :is(.swnet-live__search-input,.swnet-live__suggestions,.swnet-live__compare-suggestions){border-radius:8px}
body.page-template-page-template-schweden-live :is(.swnet-live__load,.swnet-live__compare-form>button,.swnet-live__saved form>button,.swnet-live__map-consent button,.swnet-live__source-link){border:0;border-radius:8px}
body.page-template-page-template-schweden-live .swnet-live__plans{gap:.8rem}
body.page-template-page-template-schweden-live .swnet-live__plans article,
body.page-template-page-template-schweden-live .swnet-live__saved-grid>form,
body.page-template-page-template-schweden-live .swnet-live__saved-grid>div{border:0;border-radius:14px;background:var(--pt-soft)}
body.page-template-page-template-schweden-live .swnet-live__plans article.is-featured{box-shadow:none}
body.page-template-page-template-schweden-live .swnet-live__source-drawer{border-radius:14px}

/* Destination cooperation page: one field of offers instead of a one-pixel matrix. */
body.page-template-page-template-destinationen .archive-hero{background:var(--pt-cream);color:var(--pt-navy)}
body.page-template-page-template-destinationen .archive-hero :is(h1,.hero-lead){color:var(--pt-navy)}
body.page-template-page-template-destinationen .swnet-destination-facts{border:0;border-radius:14px}
body.page-template-page-template-destinationen .swnet-destination-cards{gap:.8rem;border:0;background:transparent}
body.page-template-page-template-destinationen .swnet-destination-cards article{border-radius:14px;background:#fff}
body.page-template-page-template-destinationen .swnet-destination-brief ul{border-top:0}
body.page-template-page-template-destinationen .swnet-destination-brief li{border-bottom:1px solid #dbe5eb}

/* Editorial special pages keep their own art direction but share details. */
body.page-template-page-template-mediadaten .swnet-media__breadcrumb,
body.page-template-page-template-produktkatalog .nn-breadcrumb{font-size:.75rem}
body.page-template-page-template-mediadaten :is(.swnet-media__hero,.swnet-media__trend,.swnet-media__profile,.swnet-media__contact){border-radius:16px}
body.page-template-page-template-bilder-gallery .swnet-gallery-slide{border-radius:14px}
body.page-template-page-template-bilder-gallery .swnet-gallery-dots button{min-width:12px;min-height:12px}
body.page-template-page-template-destinationen .swnet-destination-page__section,
body.page-template-page-template-destination-partner .dalarna-guide-plan__grid article{border-radius:14px}

@media(max-width:920px){
  body.page-template .rp-hero{padding-block:3.5rem}
  body.page-template .rp-map-layout,
  body.page-template .rp-bathing__layout{gap:1rem}
  body.page-template-page-template-produktkatalog .nn-page__hero{margin-inline:1rem}
}
@media(max-width:620px){
  body.page-template main :is(.rp-wrap,.container,.u-wrap,.swnet-media__shell,.nn-page,.swnet-archive){width:min(100% - 24px,1180px)}
  body.page-template .rp-hero{padding-block:2.8rem}
  body.page-template .rp-hero h1{font-size:clamp(2.05rem,10vw,3rem)}
  body.page-template .rp-hero p:not(.rp-eyebrow){font-size:.98rem}
  body.page-template .rp .rp-section{padding-block:2.6rem}
  body.page-template :is(.rp-map-side,.rp-communes__side){padding:1rem}
  body.page-template .swnet-trip-monitor{margin-block:2rem;padding:1rem}
  body.page-template-page-template-navigation-hub .archive-card .search-card__image--fallback{display:block}
  body.page-template-page-template-produktkatalog .nn-page__hero{margin-inline:0;padding:1.5rem;border-radius:0}
  body.page-template-page-template-produktkatalog .nn-catalog{padding-inline:0}
  body.page-template-page-template-produktkatalog .nn-catalog__grid{gap:.6rem}
  body.page-template-page-template-produktkatalog .nn-card{border-radius:10px}
}
