/* ==========================================================================
   HALCYON CUSTOM FONTS
   ========================================================================== */

@font-face {
    font-family: 'Halcyon-Regular';
    src: url('../fonts/Halcyon-Regular.woff2') format('woff2'),
        url('../fonts/Halcyon-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Halcyon-Medium';
    src: url('../fonts/Halcyon-Medium.woff2') format('woff2'),
        url('../fonts/Halcyon-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Halcyon-SemiBold';
    src: url('../fonts/Halcyon-SemiBold.woff2') format('woff2'),
        url('../fonts/Halcyon-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Halcyon-Bold';
    src: url('../fonts/Halcyon-Bold.woff2') format('woff2'),
        url('../fonts/Halcyon-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* ==========================================================================
   BOOTSTRAP 3 .WELL CLASS (for countdown section)
   ========================================================================== */

.well {
    background-color: rgb(230, 239, 233);
    padding: 19px;
    margin: 40px 0px 20px;
    border-radius: 30px;
    box-shadow: rgba(0, 0, 0, 0.05) 0px 0px 0px 0px inset;
    border: 0px solid rgb(51, 51, 51);
}

/* Countdown section heading - override template defaults */
.well h2 {
    font-weight: 500 !important;
    font-size: 30px !important;
    line-height: 42px !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
    max-width: 100% !important;
    text-align: center !important;
}

/* Countdown number styling - match original site line-height */
.well #codepopularCountdown li {
    line-height: 102px !important;
}

.well #codepopularCountdown li span {
    line-height: 102px !important;
}

/* Countdown button - override Bootstrap button styling */
.well .btn.btn-default {
    background-color: rgb(255, 255, 255) !important;
    color: rgb(51, 51, 51) !important;
    font-size: 18px !important;
    font-family: Halcyon-Medium !important;
    font-weight: 400 !important;
    padding: 8px 16px !important;
    border: 2px solid rgb(204, 204, 204) !important;
    border-radius: 50px !important;
    display: block !important;
    width: 307px !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Countdown button hover state */
.well .btn.btn-default:hover {
    background-color: rgb(245, 245, 245) !important;
    color: rgb(51, 51, 51) !important;
    border-color: rgb(204, 204, 204) !important;
}

/* ==========================================================================
   FLEKSIBLE NETTSTUDIER SECTION
   ========================================================================== */

/* Container spacing and fixed height - desktop only */
.bachelorutlandet2024 {
    margin: 40px auto !important;
    max-width: 1170px !important;
}

/* Fixed height only on desktop (md and above) */
@media (min-width: 992px) {
    .bachelorutlandet2024 {
        height: 400px !important;
    }
}

/* Row margins to match Bootstrap 3 */
.bachelorutlandet2024 .row {
    margin: 0px -15px !important;
}

/* Force columns to stack on mobile */
.bachelorutlandet2024infocol,
.bachelorutlandet2024imgcol {
    flex: 0 0 100% !important;
    max-width: 100% !important;
}

/* Content column padding, background, and rounded corners */
.bachelorutlandet2024infocol {
    padding: 20px !important;
    background-color: rgb(230, 239, 233) !important;
    border-radius: 30px 30px 0px 0px !important;
    position: relative !important;
}

/* Desktop: restore side-by-side layout */
@media (min-width: 992px) {

    .bachelorutlandet2024infocol,
    .bachelorutlandet2024imgcol {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }

    .bachelorutlandet2024infocol {
        padding: 30px 30px 30px 50px !important;
        border-radius: 30px 0px 0px 30px !important;
    }
}

/* Content wrapper - static on mobile, centered on desktop */
.bachelorutlandet2024content {
    position: static !important;
}

@media (min-width: 992px) {
    .bachelorutlandet2024content {
        position: absolute !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        left: 50px !important;
        right: 30px !important;
    }
}

/* Heading styling */
.bachelorutlandet2024 h2 {
    font-family: Halcyon-Medium !important;
    font-weight: 500 !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
    color: rgb(0, 0, 0) !important;
}

/* Paragraph styling */
.bachelorutlandet2024 p {
    font-size: 17px !important;
    line-height: 27.2px !important;
}

/* Button styling - exclude .bachelorutlandet2024button to avoid overriding its orange color */
.bachelorutlandet2024 button:not(.bachelorutlandet2024button),
.bachelorutlandet2024 .btn:not(.bachelorutlandet2024button) {
    font-size: 18px !important;
    font-family: Halcyon-Medium !important;
    padding: 10px 16px !important;
    background-color: rgb(255, 255, 255) !important;
    color: rgb(51, 51, 51) !important;
}

/* Image column - remove padding and set height on desktop only */
.bachelorutlandet2024imgcol {
    padding: 0px !important;
}

@media (min-width: 992px) {
    .bachelorutlandet2024imgcol {
        height: 400px !important;
    }
}

/* Image wrapper - rounded corners and fixed height on desktop */
.bachelorutlandet2024imgwrapper {
    border-radius: 0 !important;
    overflow: hidden !important;
    width: 100% !important;
}

@media (min-width: 992px) {
    .bachelorutlandet2024imgwrapper {
        border-radius: 0px 30px 30px 0px !important;
        height: 400px !important;
    }
}

/* Image - fill the wrapper with zoom effect */
.bachelorutlandet2024img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: top center !important;
    transition: transform 0.8s !important;
    margin: 0px auto !important;
}

/* Image zoom on hover */
.bachelorutlandet2024img:hover {
    transform: scale(1.1) !important;
}

/* ==========================================================================
   CAMPUS BOXES SECTION
   ========================================================================== */

/* Campus section wrapper - flex container for horizontal layout */
.campuses-section {
    display: flex !important;
    flex-wrap: wrap !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Fix parent row margin to match Bootstrap standard (Cassiopeia uses -8.5px by default) */
.row:has(.campuses-section) {
    margin-left: -15px !important;
    margin-right: -15px !important;
}

/* Campus columns - responsive widths */
.campuses-section .col-md-3,
.campuses-section .col-md-4 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    padding: 0px 15px !important;
}

/* col-md-6 columns need same padding as col-md-3/4 for consistent 30px gaps */
.campuses-section .col-md-6 {
    padding: 0px 15px !important;
}

/* 4 columns on desktop (md and above - 992px+) */
@media (min-width: 992px) {
    .campuses-section .col-md-3 {
        flex: 0 0 25% !important;
        max-width: 25% !important;
    }

    /* 3 columns layout */
    .campuses-section .col-md-4 {
        flex: 0 0 33.333% !important;
        max-width: 33.333% !important;
    }
}

/* Mobile: campus section adjustments */
@media (max-width: 767px) {
    .campuses-section {
        margin: 0 !important;
        padding: 0 !important;
    }

    .campuses-section .col-md-3,
    .campuses-section .col-md-4 {
        padding: 0 15px !important;
    }
}

/* Campus box container - light beige background with rounded corners */
.campus-thumb {
    background-color: rgb(217, 212, 214) !important;
    border-radius: 30px !important;
    margin-bottom: 40px !important;
}

/* Image wrapper with rounded top corners and overflow hidden for zoom effect */
.campus-thumb .zoom2024wrap {
    border-top-right-radius: 30px !important;
    border-top-left-radius: 30px !important;
    overflow: hidden !important;
}

/* General zoom wrapper */
.zoom2024wrap {
    overflow: hidden !important;
}

/* Image zoom transition */
.zoom2024 {
    transition: transform 0.8s !important;
    margin: 0px auto !important;
}

/* Image zoom effect on hover */
.zoom2024:hover {
    transform: scale(1.1) !important;
}

/* Content area with horizontal padding */
.campus-thumb .campus-thumb-content {
    padding: 0px 25px 10px !important;
}

/* "Campus" label styling - muted purple-gray color */
/* Higher specificity to override .mod-custom h4 rule */
.mod-custom .campus-thumb .campus-thumb-content h4,
.campus-thumb .campus-thumb-content h4 {
    color: rgb(97, 86, 91) !important;
    margin-top: 18px !important;
    margin-bottom: 10px !important;
    font-size: 19px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    line-height: 20.9px !important;
}

/* City name heading styling */
.campus-thumb .campus-thumb-content h3 {
    margin-top: 5px !important;
    margin-bottom: 10px !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    color: rgb(0, 0, 0) !important;
    line-height: 26.4px !important;
}

/* City name link - black text, no underline */
/* High specificity to override container-slideshow link rules */
.container-slideshow .mod-custom .campus-thumb .campus-thumb-content h3 a:not(.never-match),
.campus-thumb .campus-thumb-content h3 a {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    transition: all !important;
}

/* Link hover/active states - keep black */
.campus-thumb .campus-thumb-content h3 a:hover,
.campus-thumb .campus-thumb-content h3 a:active {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Arrow icon - light gray/purple, floated to right */
.campus-thumb .campus-thumb-content h3 i {
    color: rgb(169, 158, 162) !important;
    float: right !important;
    font-size: 24px !important;
}

/* ==========================================================================
   VÅRE STUDIER - COURSE THUMBNAILS
   ========================================================================== */

/* "Våre studier" section heading - target the h2 inside the module container */
#mod-custom714 h2,
.row[style*="margin-bottom: 50px"] h2 {
    font-size: 30px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    line-height: 42px !important;
    margin-top: 25px !important;
    margin-bottom: 25px !important;
}

/* Rows containing thumbnails need Bootstrap 3 style margins */
.row:has(.thumbnail) {
    margin-left: -15px !important;
    margin-right: -15px !important;
}

/* Only neutralize margin for rows that wrap a container with nested thumbnail rows */
.mod-custom > .row:has(> .container) {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Remove default Cassiopeia padding from containers wrapping thumbnail rows for proper alignment */
.container:has(.thumbnail) {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Use Bootstrap 3 style 15px gutters for study card columns */
.row:has(.thumbnail) > [class*="col"] {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

/* Orphaned col-md-4 elements (not inside .row) need float to match Bootstrap 3 behavior */
.com-content-article__body > .col-md-4 {
    float: left !important;
    width: 33.333% !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
    box-sizing: border-box !important;
}

/* Clear floats after orphaned columns */
.com-content-article__body > .row {
    clear: both !important;
}

/* Course thumbnail box - light beige background with rounded corners */
.thumbnail {
    background-color: rgb(217, 212, 214) !important;
    border-radius: 30px !important;
    width: 100% !important;
    margin-top: 18px !important;
    margin-bottom: 18px !important;
    padding: 0px !important;
    border: 0px !important;
}

/* Constrain thumbnail width in 3-column layouts to match original site */
.col-md-4 .thumbnail {
    max-width: 360px !important;
}

/* Image wrapper with rounded top corners */
.thumbnail .zoom2024wrap {
    border-top-right-radius: 30px !important;
    border-top-left-radius: 30px !important;
    overflow: hidden !important;
}

/* Caption/text area padding */
.thumbnail .caption {
    padding: 0px 15px 20px 25px !important;
}

/* Category label (e.g., "Årsstudium", "Toårig utdanning") */
.thumbnail .caption h4,
.thumbnail .caption .thumb-category-heading {
    font-size: 20px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    color: rgb(97, 86, 91) !important;
    line-height: 22px !important;
    margin-top: 16px !important;
    margin-bottom: 5px !important;
}

/* Course title */
.thumbnail .caption h3 {
    font-size: 24px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    color: rgb(0, 0, 0) !important;
    line-height: 26.4px !important;
    margin-top: 8px !important;
    margin-bottom: 10px !important;
}

/* All thumbnail links - remove underline (including image wrapper links) */
.thumbnail a,
.thumbnail a:hover,
.thumbnail a:focus,
.view-article .com-content-article__body .thumbnail a,
.view-article .com-content-article__body .thumbnail a:hover,
.view-article .com-content-article__body .thumbnail a:focus {
    text-decoration: none !important;
}

/* Course title link - remove default link styling */
.thumbnail .caption h3 a {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
    font-family: Halcyon-Medium !important;
}

.thumbnail .caption h3 a:hover {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Study box chevron rotation animation on expand/collapse */
.thumbnail .caption a[data-toggle="collapse"] .icon-down {
    transition: transform 0.3s ease;
    display: inline-block;
}

.thumbnail .caption a[data-toggle="collapse"][aria-expanded="true"] .icon-down {
    transform: rotate(180deg);
}

/* Mobile: ensure proper 15px gutters for study cards (Bootstrap default is reduced on mobile) */
@media (max-width: 767px) {
    /* Article body - no extra padding, container provides 15px edge padding */
    .view-article .com-content-article__body {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Container needs 15px padding to work with Bootstrap negative margins */
    .container:has(.thumbnail) {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    /* Also target container-component (used on /studier page) */
    .container-component:has(.thumbnail) {
        padding-inline: 15px !important;
    }

    .row:has(.thumbnail) {
        margin-left: -15px !important;
        margin-right: -15px !important;
    }

    .row:has(.thumbnail) > [class*="col"] {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    /* On mobile, thumbnails should be full-width (not constrained to 360px) */
    .col-md-4 .thumbnail {
        max-width: 100% !important;
    }
}

/* Tablet: study cards should be single column (matching original site) */
@media (min-width: 768px) and (max-width: 991px) {
    /* Make col-md-3 thumbnails full width on tablet */
    .col-md-3:has(.thumbnail) {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

/* ==========================================================================
   HERO BANNER / SLIDESHOW
   ========================================================================== */

.slideshow2024 {
    position: relative !important;
    max-height: 650px !important;
    width: 100vw !important;
    max-width: 100vw !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    overflow: hidden !important;
    margin-top: -24px !important;
}

/* Remove top padding when slideshow hero is first element */
.com-content-article__body > .slideshow2024:first-child {
    margin-top: -48px !important;
}

.mainprogramimg2024 {
    width: 100% !important;
    height: auto !important;
}

.slideshow2024overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(0, 0, 0, 0.3) !important;
}

.programcontent2024 {
    position: absolute !important;
    bottom: 0 !important;
    left: calc((100vw - 1170px) / 2 + 7.5px) !important;
    padding: 0 15px 30px !important;
}

.programabovetitle2024,
h2.programabovetitle2024,
.container-slideshow h2.programabovetitle2024 {
    font-size: 40px !important;
    font-weight: 500 !important;
    color: #fff !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
    text-transform: uppercase !important;
    font-family: 'Halcyon-Bold', sans-serif !important;
    line-height: 1.1 !important;
}

.programtitle2024 {
    font-size: 78px !important;
    font-weight: 500 !important;
    color: #fff !important;
    margin-bottom: 10px !important;
    text-transform: uppercase !important;
    font-family: 'Halcyon-Bold', sans-serif !important;
    line-height: 1.1 !important;
    max-width: 1000px !important;
}

.slideshow2024 .programbeneathtitle2024,
h3.programbeneathtitle2024 {
    font-size: 35px !important;
    font-weight: 500 !important;
    color: rgb(224, 224, 224) !important;
    font-family: 'Halcyon-Medium', sans-serif !important;
    margin-top: 10px !important;
    max-width: 1000px !important;
    line-height: 1.1 !important;
}

/* Lead section below hero */
.leadrow2024 {
    padding: 0 !important;
    margin: 50px -15px 40px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
}

.leadrow2024 p.programlead2024 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 22px !important;
    line-height: 30.8px !important;
    color: rgb(51, 51, 51) !important;
    margin-bottom: 16px !important;
    padding-left: 0 !important;
}

.divapplybutton2024 {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
}

.divapplybutton2024 .btn-success {
    background-color: rgb(87, 126, 78) !important;
    border-color: rgb(87, 126, 78) !important;
    padding: 14px !important;
    font-size: 20px !important;
    border-radius: 50px !important;
    color: #fff !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.divapplybutton2024 .btn-success:hover {
    background-color: #4a7f5b !important;
    border-color: #4a7f5b !important;
}

/* Info boxes for location/pricing */
.infoboxrow2024 {
    margin-bottom: 10px !important;
    margin-top: 0px !important;
    margin-left: -15px !important;
    margin-right: -15px !important;
}

/* Info box columns - 15px padding to match Bootstrap 3 gutters */
.infoboxrow2024 .col-md-4 {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

/* Tablet: info boxes, intro text, CTA buttons, and career section should be single column (matching original site) */
@media (min-width: 768px) and (max-width: 991px) {
    .infoboxrow2024 .col-md-5,
    .infoboxrow2024 .col-md-7 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    /* Intro text and CTA buttons (Få mer informasjon, Søk på studiet) */
    .leadrow2024 .col-md-7,
    .leadrow2024 .col-md-4.divapplybutton2024 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    /* Jobbmuligheter/Career section - stack columns */
    .career2024listcol,
    .career2024imgcol {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }

    /* Adjust border-radius for stacked layout */
    .career2024listcol {
        border-radius: 30px 30px 0 0 !important;
    }

    .career2024imgwrapper {
        border-radius: 0 0 30px 30px !important;
    }

    /* AI accordion and "Hvorfor studere" sections - full width */
    .container-slideshow .col-md-7,
    .mod-custom .col-md-7 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    /* Student testimonials and staff cards - 50% width (2 columns) instead of 25% */
    .testimonials2024 .col-md-3,
    .fagpersoner2024 .col-md-3 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }

    /* Hide Bootstrap 3 hidden-sm spacer columns at tablet */
    .hidden-sm {
        display: none !important;
    }

    /* Fix studieveiledning section whitespace - use auto height at tablet */
    .leadstudyguidance2024 {
        height: auto !important;
    }

    /* Bachelor i utlandet - increase left padding to match original */
    .bachelorutlandet2024infocol {
        padding: 30px 30px 30px 50px !important;
    }

    /* Center containers properly at tablet breakpoint */
    .container-footer .container,
    .container-slideshow .container {
        max-width: 720px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
}

/* Fix column padding in module content to match Bootstrap 3 (15px instead of 7.5px) */
.container-slideshow .col-md-7,
.container-slideshow .col-md-5,
.container-slideshow .col-md-4,
.mod-custom .col-md-7,
.mod-custom .col-md-5,
.mod-custom .col-md-4 {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

.infobox2024 {
    background-color: rgb(230, 239, 233) !important;
    border-radius: 30px !important;
    padding: 10px 15px 10px 30px !important;
    margin-bottom: 20px !important;
}

.infobox2024 h3 {
    font-size: 24px !important;
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    margin-bottom: 10px !important;
    margin-top: 0 !important;
}

.infobox2024 h3 a,
.view-article .com-content-article__body .infobox2024 h3 a,
.container-slideshow .infobox2024 h3 a,
.container-slideshow .mod-custom .infobox2024 h3 a {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

.infobox2024 h3 a:hover,
.view-article .com-content-article__body .infobox2024 h3 a:hover,
.container-slideshow .infobox2024 h3 a:hover,
.container-slideshow .mod-custom .infobox2024 h3 a:hover {
    text-decoration: underline !important;
}

.infobox2024 table {
    width: 100% !important;
}

.tdleft2024 {
    width: 50px !important;
    vertical-align: top !important;
    color: rgb(0, 0, 0) !important;
    padding-top: 0px !important;
    text-align: center !important;
}

/* Match icon size to live site */
.tdleft2024 i.fa-lg {
    font-size: 18.75px !important;
}

/* Top icon in info box header should be red */
.infobox2024 h3 i {
    color: rgb(255, 47, 2) !important;
}

/* Other icons in info box table should be black */
.tdleft2024 i {
    color: rgb(0, 0, 0) !important;
}

.infobox2024 p {
    margin-bottom: 10px !important;
    font-size: 17px !important;
    color: #000000 !important;
}

.infoboxpris2024,
.infobox2024 p.infoboxpris2024,
.container .infobox2024 p.infoboxpris2024 {
    font-size: 17px !important;
    line-height: 1.2 !important;
    font-family: Halcyon-Medium !important;
    color: #000000 !important;
}

/* Intro price with inline color style - uses SemiBold */
.infobox2024 p.infoboxpris2024[style*="color"],
.container .infobox2024 p.infoboxpris2024[style*="color"] {
    font-family: Halcyon-SemiBold !important;
}

/* "Flere oppstarter" link in info box - gray, SemiBold, 14px, no underline */
.infobox2024 a[data-toggle],
.infobox2024 .vocdates a,
.infobox2024 a.nounderline {
    color: rgb(128, 128, 128) !important;
    font-family: Halcyon-SemiBold !important;
    text-decoration: none !important;
}

/* "Flere oppstarter" span styling - gray, 14px to match original */
.flereoppstarter {
    color: rgb(128, 128, 128) !important;
    font-family: Halcyon-SemiBold !important;
    font-size: 14px !important;
    margin-left: 15px !important;
}

.infobox2024 a[data-toggle]:hover,
.infobox2024 .vocdates a:hover,
.infobox2024 a.nounderline:hover {
    text-decoration: underline !important;
}

/* Links in slideshow module content - black with underline */
/* Exclude thumbnail links, infobox title links, campus-thumb links, and blockquote links which have their own styling */
.container-slideshow .mod-custom a:not(.btn):not([data-toggle]):not(.nounderline) {
    color: #000000 !important;
    text-decoration: underline !important;
    font-family: Halcyon-SemiBold, sans-serif !important;
}

.container-slideshow .mod-custom a:not(.btn):not([data-toggle]):not(.nounderline):hover {
    text-decoration: none !important;
}

/* Exception: blockquote links should NOT have underline */
.container-slideshow .mod-custom .blockquote2024pp a,
.container-slideshow .mod-custom .testimonial2024quotewrap a {
    text-decoration: none !important;
}
.container-slideshow .mod-custom .blockquote2024pp a:hover,
.container-slideshow .mod-custom .testimonial2024quotewrap a:hover {
    text-decoration: none !important;
}

/* Campus thumb links - no underline (must come after the general container-slideshow rule) */
.container-slideshow .mod-custom .campus-thumb-content h3 a {
    text-decoration: none !important;
}

/* Infobox title links in slideshow - no underline (overrides container-slideshow rule) */
.container-slideshow .mod-custom .infobox2024 h3 a,
.container-slideshow.full-width .mod-custom.custom .infobox2024 table td h3 a,
.view-featured .container-slideshow .mod-custom .infobox2024 h3 a {
    text-decoration: none !important;
}
.container-slideshow .mod-custom .infobox2024 h3 a:hover,
.container-slideshow.full-width .mod-custom.custom .infobox2024 table td h3 a:hover,
.view-featured .container-slideshow .mod-custom .infobox2024 h3 a:hover {
    text-decoration: underline !important;
}


/* Override for thumbnail/short-course image links inside container-slideshow */
/* Must include :not() pseudo-classes to match specificity of general link rule at line 873 */
.container-slideshow .mod-custom .thumbnail .zoom2024wrap a:not(.btn):not([data-toggle]),
.container-slideshow .mod-custom .short-course-thumb .zoom2024wrap a:not(.btn):not([data-toggle]),
.container-slideshow .mod-custom .thumbnail .caption h3 a:not(.btn):not([data-toggle]),
.container-slideshow .mod-custom .short-course-thumb-content h3 a:not(.btn):not([data-toggle]) {
    text-decoration: none !important;
}

/* Short course thumb paragraph links - black with underline */
.container-slideshow .mod-custom .short-course-thumb-content p a {
    font-family: 'Halcyon-SemiBold', sans-serif !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: underline !important;
}

/* Short course thumb paragraph links hover - Noroff red, no underline */
.container-slideshow .mod-custom .short-course-thumb-content p a:hover {
    color: rgb(255, 47, 2) !important;
    text-decoration: none !important;
}

.container-slideshow .mod-custom .short-course-thumb-content h3 a:not(.btn):not([data-toggle]),
.container-slideshow .mod-custom .thumbnail .caption h3 a:not(.btn):not([data-toggle]) {
    font-family: 'Halcyon-Medium', sans-serif !important;
    text-decoration: none !important;
    color: rgb(0, 0, 0) !important;
}

/* ==========================================================================
   HEADER — white, logo left, menu right (one row), compact spacing
   ========================================================================== */

/* Add padding to body to offset fixed header */
body {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 17px !important;
    line-height: 1.6 !important;
    color: rgb(51, 51, 51) !important;
    padding-top: 73px !important;
    overflow-x: hidden !important;
}

/* Override Cassiopeia em-based padding to match original site (0px padding) */
header.container-header > .grid-child,
header.container-header > .grid-child:first-child,
header.container-header > .grid-child:last-child {
    padding: 0 !important;
}

header.container-header .container-nav {
    padding: 0 !important;
    padding-bottom: 0 !important;
}

header.container-header nav {
    margin-top: 0 !important;
}

/* clamp header content to ~1140px while keeping full-width background */
header.container-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1030 !important;
    width: 100% !important;
    background: #fff !important;
    border-bottom: 1px solid #e8e8e8;
    box-shadow: 0 0 3px rgba(0, 0, 0, 1);
    padding-inline: max(16px, calc(50% - 570px));
    /* 1140/2 */
    padding-block: 0;
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: nowrap;
}

/* two header columns */
header.container-header>.grid-child:first-child {
    flex: 0 0 auto;
    min-width: 0;
    width: auto !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

header.container-header>.grid-child:last-child {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    justify-content: flex-end;
    width: auto !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* container-nav holds menu + CTA button inline */
header.container-header .container-nav {
    flex-wrap: nowrap !important;
    align-items: center !important;
    /* gap removed - was creating excessive 20px gaps */
}

/* logo */
header.container-header .navbar-brand {
    margin: 0;
    padding: 0;
    flex: 0 0 auto;
}

header.container-header .navbar-brand img {
    height: 50px;
    width: auto;
    display: block;
}

/* ----- menus (works for both "Default" and "Collapsible Dropdown") ------- */
header.container-header nav.navbar {
    margin-left: 20px !important;
    margin-right: 20px !important;
    /* 20px gap to CTA button */
}

header.container-header .navbar-collapse {
    display: flex !important;
}

header.container-header .navbar-nav {
    display: flex;
    flex-wrap: nowrap !important;
    gap: 0;
    white-space: nowrap;
    align-items: center;
    flex: 0 1 auto !important;
}

header.container-header .navbar-nav .nav-item {
    white-space: nowrap;
}

header.container-header .mod-menu {
    display: flex;
    flex-direction: row !important;  /* Override Cassiopeia's column default */
    flex-wrap: nowrap !important;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    white-space: nowrap;
    align-items: center;
    flex: 0 1 auto !important;
}

header.container-header .mod-menu>li {
    white-space: nowrap;
}

/* Remove unwanted margin/padding on menu items to match original spacing */
header.container-header .navbar-nav .nav-item,
header.container-header .mod-menu>li {
    margin: 0 !important;
    padding: 0 !important;
}

/* visible link colours on white header + consistent vertical alignment - TOP LEVEL ONLY */
header.container-header .navbar-nav .nav-link,
header.container-header .mod-menu > li > a {
    color: #212529 !important;
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 16.5px !important;
    font-weight: 400;
    padding: 26px 15px;
    line-height: 20px;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    text-decoration: none;
}

header.container-header .navbar-nav .nav-link:hover,
header.container-header .navbar-nav .nav-link:focus,
header.container-header .navbar-nav .nav-link.active,
header.container-header .mod-menu > li > a:hover,
header.container-header .mod-menu > li > a:focus {
    color: #333333 !important;
    text-decoration: none !important;
}

/* dropdowns */
header.container-header .dropdown-menu {
    background: #fff;
    color: #212529;
    border-radius: .5rem;
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1);
    z-index: 1000;
}

/* Use (hover: hover) to prevent touch devices from triggering hover on first tap */
@media (min-width:768px) and (hover: hover) {
    header.container-header .dropdown:hover>.dropdown-menu {
        display: block;
    }
}

/* Add dropdown indicators (▾) to parent menu items */
header.container-header .mod-menu>li.deeper>a::after,
header.container-header .navbar-nav>li.dropdown>a::after,
header.container-header .mod-menu>li.parent>a::after {
    content: " ▾";
    font-size: 0.8em;
    margin-left: 2px;
}

/* ==========================================================================
   SUBMENU — Position and styling for dropdown menus
   ========================================================================== */

/* Position parent items relatively for absolute submenu positioning */
header.container-header .mod-menu>li.parent,
header.container-header .mod-menu>li.deeper {
    position: relative;
}

/* Fix orphan LI elements that are direct children of container-nav (outside the UL) */
header.container-header .container-nav > li.nav-item {
    display: none; /* Hide orphan menu items - they should be inside the UL */
}

/* Hide submenu by default */
header.container-header .mod-menu .parent>ul {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: #fff;
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
    padding: 0.5rem 0;
    margin: 0;
    list-style: none;
    z-index: 1000;
}

/* Show submenu on hover for desktop - ONLY direct child ul */
/* Use (hover: hover) to prevent touch devices from triggering hover on first tap */
@media (min-width: 768px) and (hover: hover) {
    header.container-header .mod-menu > li.parent:hover > ul {
        display: block;
    }
}

/* Hide nested submenus (2nd level+) by default */
header.container-header .mod-menu .parent ul .parent > ul,
header.container-header .mod-menu .parent ul ul {
    display: none !important;
    position: absolute;
    left: 100%;
    top: 0;
    min-width: 220px;
    background: #fff;
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
    padding: 0.5rem 0;
    margin: 0;
    list-style: none;
    z-index: 1001;
}

/* Show nested submenu on hover of its parent */
/* Use (hover: hover) to prevent touch devices from triggering hover on first tap */
@media (min-width: 768px) and (hover: hover) {
    header.container-header .mod-menu .parent ul .parent:hover > ul {
        display: block !important;
    }
}

/* Show nested submenu on click for tablet (touch devices without hover) */
@media (min-width: 768px) and (max-width: 1359px) {
    header.container-header .mod-menu .parent ul .parent.show > ul {
        display: block !important;
        position: absolute;
        left: 100%;
        top: 0;
    }
}

/* Submenu item styling */
header.container-header .mod-menu .parent>ul>li {
    white-space: normal;
    margin: 0;
    padding: 0;
}

/* Submenu links */
header.container-header .mod-menu .parent>ul>li>a {
    display: block;
    padding: 0.5rem 1rem;
    color: #212529 !important;
    font-weight: 400;
    text-decoration: none;
}

/* Submenu link hover */
header.container-header .mod-menu .parent>ul>li>a:hover,
header.container-header .mod-menu .parent>ul>li>a:focus {
    background: #f8f9fa;
    color: #333333 !important;
}

/* hamburger icon when "Collapsible Dropdown" is used */
header.container-header .navbar-toggler {
    border: none;
}

header.container-header .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ff2f02' stroke-linecap='round' stroke-miterlimit='10' stroke-width='4' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ==========================================================================
   HEADER CTA BUTTON & LANGUAGE SWITCHER
   ========================================================================== */

/* CTA Button Module Container - make it inline with menu */
header.container-header .container-nav .mod-custom,
header.container-header .container-nav #mod-custom710 {
    display: inline-flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    margin-left: 25px;
}

/* CTA Button "Søk studieplass" */
header.container-header .cta-button,
header.container-header .btn-cta,
header.container-header a[href*="sok"].btn,
header.container-header .header-cta-button {
    background: #577e4e !important;
    color: #fff !important;
    border: none !important;
    border-radius: 50px !important;
    padding: 6px 12px !important;
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    white-space: nowrap !important;
    transition: background 0.2s !important;
    margin-right: 12px !important;
}

header.container-header .cta-button:hover,
header.container-header .btn-cta:hover {
    background: #45653e !important;
    color: #fff !important;
}

/* Language switcher flags */
header.container-header .language-switcher,
header.container-header .mod-languages {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    align-items: center !important;
}

header.container-header .mod-languages ul {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}

header.container-header .mod-languages li {
    display: block !important;
}

header.container-header .language-switcher a,
header.container-header .mod-languages a {
    padding: 0 !important;
    display: block !important;
    line-height: 0 !important;
}

header.container-header .language-switcher img,
header.container-header .mod-languages img {
    width: 18px !important;
    min-width: 18px !important;
    max-width: 18px !important;
    height: 12px !important;
    display: block !important;
    border: 1px solid #ddd !important;
    border-radius: 2px !important;
}

/* ==========================================================================
   TABLET BREAKPOINT — Compact menu for 768px-1000px (no CTA)
   Must come AFTER CTA button rules to override them
   ========================================================================== */

@media (min-width: 768px) and (max-width: 1000px) {
    /* Reduce menu item padding to fit more items - only top-level items */
    header.container-header .navbar-nav .nav-link,
    header.container-header .mod-menu > li > a {
        padding: 26px 8px !important;
        font-size: 14px !important;
    }

    /* Keep submenu links with normal padding */
    header.container-header .mod-menu .parent > ul > li > a {
        padding: 0.5rem 1rem !important;
        font-size: 14px !important;
    }

    /* Hide CTA button on tablet - not enough space */
    header.container-header .container-nav .mod-custom,
    header.container-header .container-nav #mod-custom710 {
        display: none !important;
    }

    /* Hide dropdown arrows on tablet to save space */
    header.container-header .mod-menu>li.deeper>a::after,
    header.container-header .navbar-nav>li.dropdown>a::after,
    header.container-header .mod-menu>li.parent>a::after {
        display: none !important;
    }

    /* Reduce header padding on tablet */
    header.container-header {
        padding-inline: 15px !important;
        gap: 10px !important;
    }

    /* Reduce nav margin */
    header.container-header nav.navbar {
        margin-left: 5px !important;
        margin-right: 5px !important;
    }

    /* Keep language switcher visible on tablet - matches original site */
}

/* 1001px-1200px: Show CTA, hide dropdown arrows */
@media (min-width: 1001px) and (max-width: 1200px) {
    /* Hide dropdown arrows to save space */
    header.container-header .mod-menu>li.deeper>a::after,
    header.container-header .navbar-nav>li.dropdown>a::after,
    header.container-header .mod-menu>li.parent>a::after {
        display: none !important;
    }

    /* Slightly reduce menu padding - only top-level items */
    header.container-header .navbar-nav .nav-link,
    header.container-header .mod-menu > li > a {
        padding: 26px 12px !important;
    }

    /* Keep submenu links with normal padding */
    header.container-header .mod-menu .parent > ul > li > a {
        padding: 0.5rem 1rem !important;
    }
}

/* ==========================================================================
     ARTICLE PAGES (title, byline/date, widths)
     ========================================================================== */

/* Ensure article content aligns with header */
.container-component {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: 15px;
}

/* Style the page-header container with bottom border */
.view-article .page-header {
    border-bottom: 1px dotted rgb(228, 233, 240);
    margin-bottom: 22px;
    padding-bottom: 0;
}

/* Style the article page title (H1) in page-header */
.view-article .page-header h1,
.view-article h1.page-header {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 46px !important;
    font-weight: 500 !important;
    line-height: 50.6px !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 30px; /* No !important - allow inline styles to override */
    margin-bottom: 10px !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
    letter-spacing: normal !important;
}

/* Style the article title (H2) as H1 - only in page-header (fallback) */
.view-article .page-header h2 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 46px !important;
    font-weight: 500 !important;
    line-height: 50.6px !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 30px; /* No !important - allow inline styles to override */
    margin-bottom: 10px !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
    letter-spacing: normal !important;
}

/* CTA button styles - "Søk på nettstudier" green pill button */
.soknad.btn-success,
.com-content-article__body .soknad.btn-success.btn-lg {
    font-family: 'Halcyon-SemiBold', sans-serif !important;
    font-size: 25.5px !important;
    font-weight: 400 !important;
    padding: 25.5px 16px !important;
    line-height: 33.9px !important;
    background-color: rgb(87, 126, 78) !important;
    border-color: rgb(87, 126, 78) !important;
    border-radius: 50px !important;
    margin-top: 4px !important;
    margin-bottom: 25.5px !important;
}

/* Mobile responsive - Apply now button */
@media (max-width: 767px) {
    .soknad.btn-success,
    .com-content-article__body .soknad.btn-success.btn-lg {
        font-family: 'Halcyon-Medium', sans-serif !important;
        font-size: 18px !important;
        min-height: 75px !important;
        height: auto !important;
        padding: 16px !important;
    }
}

/* Content h2 headings - 30px like live site */
/* Exclude h2.page-header which has inline styles that should be respected */
.view-article .com-content-article__body h2:not(.page-header) {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    line-height: 33px !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 40px !important;
    margin-bottom: 28px !important;
}

/* h2.page-header - use font-family and weight but respect inline font-size */
.view-article .com-content-article__body h2.page-header {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    /* font-size is set via inline style on the element */
}

/* Ensure article subtitle is not oversized */
.view-article h3,
.view-article h4 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    line-height: 26.4px !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 40px !important;
    margin-bottom: 10px !important;
    border: none !important;
}

/* byline/date (stacked, no icons) */
.view-article .article-info-term,
.view-article .article-info [class^="icon-"],
.view-article .article-info [class*=" icon-"],
.view-article .article-info .category-name,
.view-article .article-info .hits {
    display: none !important;
}

.view-article dl.article-info {
    font-family: 'Halcyon-Regular', sans-serif !important;
    font-size: 15px !important;
    color: rgb(51, 51, 51) !important;
    margin-top: 10px !important;
    margin-bottom: 20px !important;
    padding: 0 !important;
    border: 0 !important;
    line-height: 1.8 !important;
    display: block;
}

.view-article dl.article-info dd {
    margin: 0;
    display: block;
}

/* Show author and publish date - each on own line */
.view-article dl.article-info dd.createdby,
.view-article dl.article-info dd.published {
    display: block !important;
}


/* lead paragraph - only for elements with .lead class */
.view-article .com-content-article__body .lead {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 21px !important;
    font-weight: 300 !important;
    line-height: 29.4px !important;
    color: rgb(51, 51, 51) !important;
    margin-top: 0 !important;
    margin-bottom: 20px !important;
}

/* Highlighted text paragraph - fremhev-tekst */
.view-article .com-content-article__body .fremhev-tekst {
    font-family: 'halcyon-medium', sans-serif !important;
    font-size: 24px !important;
    font-weight: 400 !important;
    line-height: 33.6px !important;
    color: rgb(51, 51, 51) !important;
    margin-bottom: 30px !important;
    max-width: 652.5px !important;
}

/* Regular body paragraphs */
.view-article .com-content-article__body p {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 17px !important;
    line-height: 27.2px !important;
    color: rgb(51, 51, 51) !important;
    margin-bottom: 16px !important;
    max-width: 652.5px !important;
}

/* Article body links - Halcyon-SemiBold, black, underlined */
.view-article .com-content-article__body a {
    font-family: 'Halcyon-SemiBold', sans-serif !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: underline !important;
}

/* Buttons in article body - no underline */
.view-article .com-content-article__body a.btn,
.view-article .com-content-article__body a.nounderline {
    text-decoration: none !important;
}

/* Green CTA button wrapper links (forside-knapp) - no underline */
.view-article .com-content-article__body a.forside-knapp,
.view-article .com-content-article__body a.forside-knapp:hover,
.view-article .com-content-article__body a.forside-knapp:focus {
    text-decoration: none !important;
}

/* Green CTA buttons inside forside-knapp - correct font size and family */
.view-article .com-content-article__body .forside-knapp .btn-success {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 20px !important;
    font-weight: 400 !important;
}

/* Accordion panel title links - no underline, use Halcyon-Medium like original */
.view-article .com-content-article__body .panel-title a {
    text-decoration: none !important;
    font-family: 'Halcyon-Medium', sans-serif !important;
}

/* Green button (btn-success) - white text */
.view-article .com-content-article__body a.btn-success {
    color: rgb(255, 255, 255) !important;
}

/* Horizontal rule spacing in article body */
.view-article .com-content-article__body hr {
    margin-top: 35px !important;
    margin-bottom: 35px !important;
}

/* Constrain headings to readable width */
.view-article .com-content-article__body h1,
.view-article .com-content-article__body h2,
.view-article .com-content-article__body h3,
.view-article .com-content-article__body h4,
.view-article .com-content-article__body h5,
.view-article .com-content-article__body h6 {
    max-width: 652.5px !important;
}

/* Exception: countdown section headings should be full width and centered */
.view-article .com-content-article__body .well h2 {
    max-width: 100% !important;
    text-align: center !important;
}

/* page width (1170px to match live site) */
@media (min-width:1200px) {

    .view-article .container-component,
    .view-article .container-breadcrumb,
    .view-featured .container-component {
        max-width: 1170px !important;
        margin-inline: auto !important;
        padding-inline: 15px !important;
    }
}

/* Article body content - full width within container */
.view-article .com-content-article__body {
    max-width: none !important;
    margin-left: 0 !important;
}

.view-article .article-full-image,
.view-article figure[class*="image"] {
    max-width: none;
}

/* Remove excessive spacing between breadcrumb and article content */
.view-article .container-component > main:first-child {
    margin-top: 0 !important;
}

/* Hide breadcrumb on articles at mobile breakpoint */
@media (max-width: 767px) {
    .view-article .container-breadcrumb,
    .view-article nav.mod-breadcrumbs__wrapper {
        display: none !important;
    }
}

/* ==========================================================================
   HOMEPAGE INTRO SECTION — Button styling and layout
   ========================================================================== */

/* Homepage intro section container */
.container-top-a {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: 15px;
}

/* Fix flex direction on homepage to stack module and component vertically */
.grid-child.container-top-a {
    flex-direction: column !important;
}

/* General button styling - rounded pill shape with borders */
.btn,
.btn-default {
    border-radius: 50px;
    border: 2px solid #ccc;
    text-decoration: none;
}

/* Bootstrap 3 btn-block compatibility */
.btn-block {
    display: block !important;
    width: 100% !important;
}

/* Success/Green button styling */
.btn-success {
    color: #fff;
    background-color: #577E4E;
    border-size: 0px;
    border-color: #577E4E;
    border-radius: 50px;
    border: 2px solid #577E4E;
}

.btn-success:hover,
.btn-success:focus,
.btn-success.focus,
.btn-success:active,
.btn-success.active,
.open>.dropdown-toggle.btn-success {
    color: #fff;
    background-color: #45653E;
    border-color: #45653E;
    border-size: 0px;
}

/* Search button specific styling */
.search-button .custom p .btn-success {
    background-color: #577E4E;
    border-radius: 50px;
    color: #fff;
    margin-top: -2px;
}

.search-button .custom p .btn-success:hover {
    color: #fff;
    background-color: #45653E;
}

/* Homepage button container styling */
.forside-knapp .btn-default {
    margin-bottom: 20px;
    min-height: 47px;
    font-size: 20px;
    font-family: Halcyon-Medium, sans-serif;
}

/* Button icon spacing */
button i,
.btn i {
    margin-left: 6px;
}

/* Button font family */
button {
    font-family: 'Halcyon-Medium', sans-serif;
}

.search-button i {
    margin-left: 6px;
}

/* Icon spacing */
.glyphicon {
    margin-right: 10px;
}

/* Homepage button container */
.forside-knapper {
    padding: 15px 15px 0px;
}

/* Hide the spacer div to match original site alignment */
.forside-knapper .visible-md {
    display: none !important;
}

/* Remove underline from button wrapper links */
.forside-knapper a,
.forside-knapper a:hover,
.forside-knapper a:focus,
.forside-knapp,
a.forside-knapp,
a.forside-knapp:hover,
a.forside-knapp:focus,
a.forside-knapp button,
a.forside-knapp:hover button,
.nounderline,
a.nounderline,
a.nounderline:hover,
a.nounderline:focus,
a.nounderline button,
a.nounderline:hover button {
    text-decoration: none !important;
}

/* Force homepage buttons to stack vertically with fixed width */
.forside-knapper .btn,
.forside-knapper button,
.forside-knapper .btn-default,
.forside-knapper .btn-success,
.forside-knapper .btn-block {
    display: block !important;
    width: 360px !important;
    max-width: 100% !important;
    margin-bottom: 10px !important;
    padding: 10px 16px !important;
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1.33 !important;
    border-radius: 50px !important;
    text-align: center !important;
    text-decoration: none !important;
}

/* White buttons - ensure white background and proper border */
.forside-knapper .btn-default {
    background-color: #ffffff !important;
    color: #333333 !important;
    border: 2px solid #cccccc !important;
}

/* Green success button - maintain green styling */
.forside-knapper .btn-success {
    background-color: #577E4E !important;
    color: #ffffff !important;
    border: 2px solid #577E4E !important;
}

/* Constrain and center ONLY the second section module container (not hero) */
.mod-custom.custom:has(.main-page-2017) {
    max-width: 1140px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
    flex: 1 1 100% !important;
}

/* Main page section spacing */
.main-page-2017 {
    margin-top: 20px;
    margin-left: -15px !important;
    margin-right: -15px !important;
    max-width: 1170px !important;
}

/* Fix column padding to match original site (15px instead of 8px) */
.main-page-2017 .col-md-7,
.main-page-2017 .col-md-4 {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

/* Tablet breakpoint - stack columns and make buttons full-width */
@media (max-width: 1000px) {
    .main-page-2017 .col-md-7,
    .main-page-2017 .col-md-4 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    /* Make buttons full width on tablet */
    .main-page-2017 .forside-knapp .btn,
    .main-page-2017 .forside-knapper .btn {
        width: 100% !important;
        display: block !important;
    }
}

/* Elevator pitch section */
.elevator-pitch {
    margin-bottom: 30px;
}

.elevator-pitch h1 {
    margin-top: 15px;
    font-size: 42px;
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-weight: 500 !important;
    line-height: 1.1 !important;
    color: #000000 !important;
}

.elevator-pitch h2 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
}

.elevator-pitch h3 {
    font-family: 'Halcyon-Regular', sans-serif !important;
    font-weight: 400 !important;
    line-height: 1.3;
}

/* Animated scrolling text */
.h2-animate-phrases {
    display: flex;
    align-items: center;
}

.h2-animate-phrases h2 {
    line-height: 1.4;
}

.scrolling-text {
    display: inline-block;
    overflow: hidden;
    height: 1.4em;
    vertical-align: bottom;
}

.scrolling-text div {
    color: rgb(255, 47, 2) !important;
    animation: scrollText 20s infinite;
}

@keyframes scrollText {

    0%,
    10% {
        transform: translateY(0);
    }

    12%,
    20% {
        transform: translateY(-100%);
    }

    22%,
    30% {
        transform: translateY(-200%);
    }

    32%,
    40% {
        transform: translateY(-300%);
    }

    42%,
    50% {
        transform: translateY(-400%);
    }

    52%,
    60% {
        transform: translateY(-500%);
    }

    62%,
    70% {
        transform: translateY(-600%);
    }

    72%,
    80% {
        transform: translateY(-700%);
    }

    82%,
    90% {
        transform: translateY(-800%);
    }

    92%,
    98% {
        transform: translateY(-900%);
    }

    100% {
        transform: translateY(0);
    }
}

/* Apply button 2024 styling */
.divapplybutton2024 {
    font-size: 26px;
    padding: 0.7em;
    padding-top: 0px;
}

.divapplybutton2024 p a {
    font-size: 20px;
    padding: 0.7em;
}

/* Career and bachelor abroad buttons */
.career2024contentbutton {
    margin-top: 20px;
    margin-bottom: 10px;
    min-height: 30px;
    min-width: 200px;
}

/* Orange/red button with stronger specificity */
.bachelorutlandet2024 .bachelorutlandet2024button,
button.bachelorutlandet2024button,
.btn.bachelorutlandet2024button {
    margin-top: 20px !important;
    margin-bottom: 10px !important;
    min-height: 30px !important;
    min-width: 200px !important;
    padding: 10px 25px !important;
    color: #fff !important;
    background-color: #ff2f02 !important;
    border: 2px solid #ff2f02 !important;
    border-radius: 50px !important;
}

.bachelorutlandet2024 .bachelorutlandet2024button:hover,
button.bachelorutlandet2024button:hover,
.btn.bachelorutlandet2024button:hover {
    color: #fff !important;
    background-color: #CC2500 !important;
    border-color: #CC2500 !important;
}

/* Study guidance button */
.leadstudyguidance2024button {
    margin-top: 30px;
    margin-bottom: 10px;
    min-height: 30px;
    font-size: 25px;
}

/* Online studies middle section buttons */
.nettstudier2024knappermidtseksjon {
    margin-bottom: 30px;
}

/* Center buttons below FAQ accordion on nettstudier page */
/* Hide empty spacer div and center the button container */
.nettstudier2024knappermidtseksjon .col-md-12 > .col-md-4:first-child:empty {
    display: none;
}

.nettstudier2024knappermidtseksjon .divapplybutton2024 {
    float: none;
    margin: 0 auto;
    margin-top: 60px;
    width: 33.33333%;
}

@media (max-width: 768px) {
    .nettstudier2024knappermidtseksjon .divapplybutton2024 {
        width: 100%;
        max-width: 320px;
        padding: 0 15px;
    }
}

/* Accordion buttons in thumbnails */
.thumbnail #accordion a.btn {
    min-width: 200px;
    margin-top: 10px;
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
    .elevator-pitch h3 {
        font-size: 20px;
    }

    /* Default title margin on mobile - can be overridden by inline styles */
    .view-article .page-header h1,
    .view-article h1.page-header,
    .view-article .page-header h2 {
        margin-top: 10px;
    }
}

@media (max-width: 480px) {
    .main-page-2017 {
        margin-top: 20px;
    }

    .elevator-pitch h1 {
        font-size: 38px;
        max-width: calc(100vw - 30px) !important;
        width: auto !important;
    }

    .forside-knapper {
        padding-right: 20px;
        padding-left: 20px;
        text-align: center;
    }

    .forside-knapper .btn,
    .forside-knapper button,
    .forside-knapper .btn-default,
    .forside-knapper .btn-success,
    .forside-knapper .btn-block {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        margin-top: 10px !important;
        margin-bottom: 10px !important;
    }

    .forside-knapp .btn-default {
        font-size: 18px;
    }

    .btn-lg {
        padding: 8px 16px;
    }

    /* Reduce margin on studies section row on mobile */
    .mod-custom .row[style*="margin-bottom: 50px"],
    .moduletable .row[style*="margin-bottom: 50px"] {
        margin-bottom: 20px !important;
    }

    /* News article headings on front page - reduce size on mobile */
    .news-card-title,
    h3.news-card-title,
    .news-grid-leading .news-card-title {
        font-size: 28px !important;
        line-height: 1.2 !important;
    }
}

/* Small laptops */
@media (min-width: 992px) and (max-width: 1199px) {
    .elevator-pitch h1 {
        font-size: 34px;
        margin-top: 30px;
        margin-bottom: 40px;
    }
}

/* ==========================================================================
     FOOTER — Black background with white text and hero logo
     ========================================================================== */

/* Make module wrapper transparent so Bootstrap columns work */
footer .mod-custom,
footer [id^="mod-custom"] {
    display: contents;
}

/* kill Cassiopeia gradient layers */
footer.site-footer::before,
footer.footer::before,
.wrap-footer::before,
.container-footer::before {
    content: none !important;
    background: none !important;
}

/* Black background, white text */
footer.site-footer,
footer.footer,
footer .container-footer,
.grid-child.container-footer {
    background: #000000 !important;
    color: #ffffff !important;
    border-top: none !important;
    margin-top: 60px !important;
}

/* inner spacing */
footer.site-footer .grid-child.container-footer,
footer.footer .grid-child.container-footer {
    padding-top: 0 !important;
    padding-bottom: 40px !important;
}

/* Footer container alignment */
footer .container {
    max-width: 1140px;
    margin-inline: auto;
    padding-inline: 16px;
}

/* Footer logo section - hero style */
.footer-logo {
    text-align: left;
    padding: 60px 0 40px;
    margin-bottom: 40px;
    width: 100%;
    position: relative;
    flex-basis: 100% !important;
    max-width: none !important;
}

.footer-logo img {
    max-width: 200px;
    height: auto;
    display: block;
}

/* Footer mobile - tighter spacing */
@media (max-width: 768px) {
    /* Add side gutters on mobile */
    footer.container-footer,
    footer.footer,
    footer.site-footer {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .footer-logo {
        padding: 30px 0 20px;
        margin-bottom: 20px;
    }

    .footer-logo img {
        max-width: 160px;
    }

    footer h4 {
        margin-bottom: 12px !important;
        margin-top: 25px;
    }

    footer .row > div:first-child h4 {
        margin-top: 0;
    }

    footer p {
        margin-bottom: 8px !important;
    }

    footer.site-footer .grid-child.container-footer,
    footer.footer .grid-child.container-footer {
        padding-bottom: 30px !important;
    }
}

/* Footer row - ensure proper column spacing */
footer .row {
    --bs-gutter-x: 30px;
    margin-left: calc(var(--bs-gutter-x) * -0.5);
    margin-right: calc(var(--bs-gutter-x) * -0.5);
}

/* Reset padding on module wrapper (direct child of row) */
footer .row > .mod-custom {
    padding-left: 0;
    padding-right: 0;
}

/* Apply padding to actual Bootstrap columns inside footer */
footer .row [class*="col-"] {
    padding-left: 15px;
    padding-right: 15px;
}

/* White headings */
footer h4,
footer.site-footer h4,
footer.footer h4,
.view-tag footer.site-footer h4,
.view-tag footer.footer h4,
.view-tag footer h4 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 19px !important;
    font-weight: 500 !important;
    color: #ffffff !important;
    margin-bottom: 20px;
}

/* Footer body text */
footer.footer p,
footer.footer .grey,
footer.site-footer p,
footer p {
    font-size: 14px !important;
    line-height: 22.4px !important;
    color: rgba(255, 255, 255, 0.8) !important;
    font-family: 'Halcyon-Regular', sans-serif !important;
    font-weight: 400 !important;
}

/* White links - use very high specificity selectors to override all other rules */
body.site footer.footer a,
body.site footer.container-footer a,
body.site footer a,
body.com_content footer a,
body.view-featured footer a,
body footer.footer a,
body footer a,
html body footer a,
footer.footer a,
footer.site-footer a,
footer.container-footer a,
footer a,
.view-tag footer.site-footer a,
.view-tag footer.footer a,
.view-tag footer a,
footer.footer p a,
footer.footer .about a,
footer.footer .about p a,
footer.footer .grey a,
footer.footer .grey p a,
footer.footer div a,
footer.footer div p a,
footer p a,
footer div a,
footer .col-sm-12 a,
footer .col-md-3 a,
footer [class*="col-"] a {
    font-size: 14px !important;
    line-height: 22.4px !important;
    font-family: 'Halcyon-Regular', sans-serif !important;
    font-weight: 400 !important;
    color: rgba(255, 255, 255, 0.8) !important;
    text-decoration: none !important;
}

body.site footer.footer a:hover,
body.site footer.footer a:focus,
body.site footer a:hover,
body.site footer a:focus,
body footer a:hover,
body footer a:focus,
footer.site-footer a:hover,
footer.site-footer a:focus,
footer.footer a:hover,
footer.footer a:focus,
footer a:hover,
footer a:focus {
    color: #ffffff !important;
    text-decoration: none !important;
}

/* Buttons for dark background - outline style */
footer.site-footer .btn,
footer.site-footer .btn-primary,
footer.site-footer .btn-light,
footer.site-footer .btn-outline-light,
footer.site-footer .btn-outline-primary,
footer.footer .btn,
footer.footer .btn-primary,
footer.footer .btn-light,
footer.footer .btn-outline-light,
footer.footer .btn-outline-primary {
    display: block !important;
    background: transparent !important;
    border: 2px solid rgba(255, 255, 255, 0.5) !important;
    border-radius: 50px !important;
    color: #ffffff !important;
    padding: 6px 12px !important;
    font-size: 15px;
    font-family: 'Halcyon-Medium', sans-serif;
    box-shadow: none !important;
    transition: .2s;
    margin-bottom: 15px !important;
    width: 100% !important;
    text-align: center !important;
    text-decoration: none !important;
}

footer.site-footer .btn:hover,
footer.site-footer .btn:focus,
footer.footer .btn:hover,
footer.footer .btn:focus {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

footer.site-footer .mod-list li a,
footer.footer .mod-list li a {
    text-transform: none !important;
}

/* Remove underline from links wrapping buttons */
footer.site-footer a:has(.btn),
footer.footer a:has(.btn) {
    text-decoration: none !important;
}

footer.site-footer a:has(.btn):hover,
footer.site-footer a:has(.btn):focus,
footer.footer a:has(.btn):hover,
footer.footer a:has(.btn):focus {
    text-decoration: none !important;
}

/* ==========================================================================
   BREADCRUMBS — match production styling exactly
   ========================================================================== */

/* No background, transparent container */
.container-breadcrumb,
nav.mod-breadcrumbs__wrapper {
    background: transparent;
    padding: 6px 0;
    margin: 30px 0 0 0;
}

.container-breadcrumb .breadcrumb,
.mod-breadcrumbs {
    font-family: 'Halcyon-Medium', sans-serif;
    font-size: 15px;
    color: #999;
    padding: 0 !important;
    margin: 0;
    background: transparent;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
}

/* Override Bootstrap px-3 class */
.mod-breadcrumbs.px-3 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Hide "You are here:" text and default location icon */
.mod-breadcrumbs__here,
li.mod-breadcrumbs__here,
.mod-breadcrumbs__divider,
li.mod-breadcrumbs__divider {
    display: none !important;
}

/* Breadcrumb items */
.container-breadcrumb .breadcrumb-item,
.mod-breadcrumbs__item {
    font-size: 15px;
    color: #999;
    display: flex;
    align-items: center;
}

/* Breadcrumb links */
.container-breadcrumb .breadcrumb-item a,
.mod-breadcrumbs__item a {
    font-family: 'Halcyon-SemiBold', sans-serif;
    color: #999;
    text-decoration: none;
}

.container-breadcrumb .breadcrumb-item a:hover,
.mod-breadcrumbs__item a:hover {
    color: #808080;
    text-decoration: underline;
}

/* Current page (active/last item) - darker */
.container-breadcrumb .breadcrumb-item.active,
.mod-breadcrumbs__item:last-child {
    color: #666;
}

/* Style breadcrumb separators as right arrows */
.container-breadcrumb .breadcrumb-item+.breadcrumb-item::before,
.mod-breadcrumbs__item+.mod-breadcrumbs__item::before {
    content: "›";
    color: #ccc;
    padding: 0 8px;
    font-size: 16px;
    font-weight: normal;
}

/* ==========================================================================
   MENU — Hide "Hjem" (Home) menu item
   ========================================================================== */
/* Hide menu item with "hjem" in the link */
header.container-header .mod-menu>li>a[href*="hjem"],
header.container-header .navbar-nav>li>a[href*="hjem"] {
    display: none !important;
}

/* Or hide by position if it's always first */
header.container-header .mod-menu>li:first-child:has(a[href*="hjem"]),
header.container-header .navbar-nav>li:first-child:has(a[href*="hjem"]) {
    display: none !important;
}

/* ==========================================================================
   MOBILE RESPONSIVE — Hamburger menu and mobile navigation
   ========================================================================== */

/* Add hamburger menu button for mobile */
header.container-header .navbar-toggler {
    display: none;
    position: relative;
    padding: 9px 10px;
    background: transparent;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    width: 55px;
    height: 41px;
    align-items: center;
    justify-content: center;
    margin: 8px 15px 8px 0px;
}

header.container-header .navbar-toggler-icon {
    display: block;
    width: 35px;
    height: 5px;
    background-color: #ff2f02;
    position: relative;
    transition: background-color 0.3s;
}

header.container-header .navbar-toggler-icon::before,
header.container-header .navbar-toggler-icon::after {
    content: '';
    position: absolute;
    width: 35px;
    height: 5px;
    background-color: #ff2f02;
    left: 0;
    transition: transform 0.3s;
}

header.container-header .navbar-toggler-icon::before {
    top: -9px;  /* 5px bar height + 4px visual gap */
}

header.container-header .navbar-toggler-icon::after {
    bottom: -9px;  /* 5px bar height + 4px visual gap */
}

/* Hide close button on desktop - only show in mobile menu overlay */
.mobile-menu-close {
    display: none;
}

/* Hide mobile language switcher on desktop - only show in mobile menu overlay */
.mobile-language-switcher {
    display: none;
}

/* Mobile breakpoint - hide CTA and show hamburger menu */
@media (max-width: 767px) {

    /* Prevent horizontal overflow on mobile */
    html, body {
        overflow-x: hidden !important;
        max-width: 100vw !important;
    }

    /* Remove body padding on mobile - live site has none */
    body.site {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Adjust header layout for mobile */
    header.container-header {
        padding-inline: 15px !important;
        gap: 12px !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        min-height: 85px !important;  /* Match live site header height */
    }

    /* Remove extra padding - content should align to logo edge */
    .container-component {
        padding-inline: 0 !important;
    }

    /* Add padding to breadcrumb wrapper to match header */
    nav.mod-breadcrumbs__wrapper {
        padding-inline: 15px !important;
    }

    /* Add padding to containers inside slideshow modules on mobile */
    .container-slideshow .container {
        padding-inline: 15px !important;
    }

    /* Add padding to article content */
    .view-article {
        padding-inline: 15px !important;
    }

    /* Logo container - don't let it expand and remove centering margin */
    header.container-header>.grid-child:first-child {
        flex: 0 0 auto !important;
        max-width: max-content !important;
        margin-left: 0 !important;
        padding-left: 0 !important;
    }

    /* Make logo smaller on mobile */
    header.container-header .navbar-brand {
        max-width: max-content !important;
    }

    header.container-header .navbar-brand img {
        height: 50px !important;  /* Match live site - keep consistent on mobile */
    }

    /* Override desktop last-child rule - don't let it expand */
    header.container-header>.grid-child:last-child {
        flex: 0 0 auto !important;
        justify-content: flex-start !important;
        margin-left: auto !important;
    }

    /* Container-nav - just hold hamburger */
    header.container-header .container-nav {
        min-width: 55px !important;
        max-width: 55px !important;
        width: 55px !important;
    }

    /* Container-nav layout for mobile */
    header.container-header .container-nav {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
    }

    /* Show hamburger menu */
    header.container-header .navbar-toggler {
        display: flex !important;
    }

    /* Hide CTA button on tablet/mobile */
    header.container-header .container-nav .mod-custom,
    header.container-header .container-nav #mod-custom710 {
        display: none !important;
    }

    /* Hide language switcher on tablet/mobile */
    header.container-header .language-switcher,
    header.container-header .mod-languages {
        display: none !important;
    }

    /* Hide regular menu by default */
    header.container-header .mod-menu {
        display: none !important;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        width: 100vw !important;
        height: 100vh;
        background: #fff;
        z-index: 9999;
        padding: 60px 20px 20px;
        overflow-y: auto;
        overflow-x: hidden;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        gap: 0 !important;
    }

    /* Show menu when active */
    header.container-header .mod-menu.show {
        display: flex !important;
    }

    /* Close button for mobile menu */
    .mobile-menu-close {
        position: absolute;
        top: 12px;
        right: 12px;
        width: 44px;
        height: 44px;
        background: transparent;
        border: 2px solid rgba(33, 37, 41, 0.55);
        border-radius: 4px;
        font-size: 32px;
        line-height: 1;
        color: rgba(33, 37, 41, 0.85);
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        transition: background 0.2s, color 0.2s;
    }

    .mobile-menu-close:hover,
    .mobile-menu-close:focus {
        background: #f8f9fa;
        color: #d12e1a;
    }

    /* Mobile menu items - vertical stack */
    header.container-header .mod-menu>li {
        width: 100%;
        border-bottom: 1px solid #e8e8e8;
    }

    header.container-header .mod-menu>li>a {
        display: block !important;
        padding: 16px 0 !important;
        font-size: 18px !important;
        width: 100%;
    }

    /* Submenu styling for mobile */
    header.container-header .mod-menu .parent>ul {
        position: static !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        padding: 0 0 0 20px !important;
        margin: 0 !important;
        background: #f8f9fa !important;
    }

    header.container-header .mod-menu .parent>ul>li {
        border-bottom: 1px solid #e0e0e0;
    }

    header.container-header .mod-menu .parent>ul>li:last-child {
        border-bottom: none;
    }

    header.container-header .mod-menu .parent>ul>li>a {
        padding: 12px 0 !important;
        font-size: 16px !important;
    }

    /* Mobile submenu always visible when parent is opened */
    header.container-header .mod-menu .parent.show>ul {
        display: block !important;
    }

    /* Mobile nested submenu visible when parent is opened */
    header.container-header .mod-menu .parent.show ul .parent.show > ul {
        display: block !important;
        position: static !important;
        left: auto !important;
        box-shadow: none !important;
        padding-left: 20px !important;
    }

    /* Mobile language switcher below menu items */
    .mobile-language-switcher {
        display: block;
        margin-top: 20px;
        padding: 20px 0;
    }

    .mobile-language-switcher .mobile-lang-list {
        display: flex !important;
        gap: 15px;
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .mobile-language-switcher .mobile-lang-list li {
        display: inline-block;
    }

    .mobile-language-switcher .mobile-lang-list img {
        width: 30px;
        height: auto;
        border: 1px solid #ddd;
        border-radius: 2px;
    }

    .mobile-language-switcher .mobile-lang-list a {
        display: block;
        text-decoration: none;
    }
}

/* Mobile breakpoint - even more compact */
@media (max-width: 767px) {
    header.container-header .navbar-brand img {
        height: 50px !important;  /* Match live site - keep consistent on mobile */
    }

    header.container-header {
        padding-inline: 15px !important;
        min-height: 85px !important;  /* Match live site header height */
    }

    /* Reduce grid column gap on mobile and add padding to match original 15px margins */
    .site-grid {
        column-gap: 0 !important;
    }

    /* Push banner/slideshow below fixed header on mobile */
    .container-banner,
    .container-slideshow {
        margin-top: 0 !important;  /* Header padding already provides space */
    }

    /* Add padding to moduletable to achieve 15px total margin on mobile */
    .container-component .moduletable {
        padding-inline: 15px !important;
    }

    /* Remove Bootstrap column padding on mobile - moduletable padding handles spacing */
    .container-component .moduletable .row {
        margin-inline: 0 !important;
    }

    .container-component .moduletable [class*="col-"] {
        padding-inline: 0 !important;
    }

    /* Remove extra padding - content should align to logo edge */
    .container-component {
        padding-inline: 0 !important;
    }

    /* Add padding to breadcrumb wrapper to match header */
    nav.mod-breadcrumbs__wrapper {
        padding-inline: 15px !important;
    }

    /* Add padding to article content on mobile - only on container, not article */
    .view-article .container-component,
    .view-featured .container-component {
        padding-inline: 15px !important;
    }

    .view-article .com-content-article,
    .view-featured .com-content-article {
        padding-inline: 0 !important;
    }

    /* Article content adjustments for mobile */
    .view-article .page-header h1,
    .view-article h1.page-header,
    .view-article .page-header h2,
    .view-article h2 {
        font-size: 36px !important;
        line-height: 39.6px !important;
    }

    .view-article .com-content-article__body>p:first-of-type {
        font-size: clamp(18px, 4.5vw, 23px) !important;
    }

    .view-article .com-content-article__body p {
        font-size: 16px !important;
        line-height: 25.6px !important;
    }

    /* Adjust breadcrumb for mobile */
    .container-breadcrumb,
    .mod-breadcrumbs {
        font-size: 13px !important;
    }

    /* Footer adjustments for mobile */
    footer .row {
        --bs-gutter-x: 30px;
    }

    footer .col-md-4 {
        margin-bottom: 30px;
    }
}

/* Very small mobile devices */
@media (max-width: 374px) {
    header.container-header .navbar-brand img {
        height: 50px !important;  /* Match live site - keep consistent on mobile */
    }

    header.container-header {
        padding-inline: 15px !important;
        min-height: 85px !important;  /* Match live site header height */
    }

    /* Remove extra padding - content should align to logo edge */
    .container-component {
        padding-inline: 0 !important;
    }

    /* Add padding to breadcrumb wrapper to match header */
    nav.mod-breadcrumbs__wrapper {
        padding-inline: 15px !important;
    }

    /* Add padding to article content */
    .view-article {
        padding-inline: 15px !important;
    }
}

/* ==========================================================================
   RESPONSIVE BODY PADDING — Match header height at each breakpoint
   ========================================================================== */

/* Desktop/tablet breakpoint - header height is 85px to match live site */
@media (max-width: 1359px) and (min-width: 768px) {
    body {
        padding-top: 85px !important;
    }
}

/* Mobile breakpoint - header height is 85px to match live site */
@media (max-width: 767px) {
    body {
        padding-top: 85px !important;
    }
}

/* Very small mobile devices - header height is 85px to match live site */
@media (max-width: 374px) {
    body {
        padding-top: 85px !important;
    }
}

/* ==========================================================================
   RESPONSIVE VIDEO EMBED (Vimeo/YouTube)
   ========================================================================== */

/* Responsive embed wrapper - creates aspect ratio container */
.embed-responsive {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    overflow: hidden !important;
}

/* 16:9 aspect ratio (56.25% = 9/16) */
.embed-responsive-16by9 {
    padding-bottom: 56.25% !important;
}

/* iframe fills the container */
.embed-responsive iframe,
.embed-responsive-item {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
    border-radius: 30px !important;
}

/* ==========================================================================
   NEWS CARDS (Featured Articles)
   ========================================================================== */

/* News grid container */
.blog-featured {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0;
}

/* Mobile: let container-component provide the 15px edge padding */
@media (max-width: 767px) {
    .blog-featured {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* Hide breadcrumb on featured articles view (homepage) */
.view-featured .mod-breadcrumbs__wrapper {
    display: none !important;
}

/* Featured view - module headings (interview pages etc.) */
.view-featured .container-component .mod-custom h1 {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 46px !important;
    font-weight: 500 !important;
    line-height: 50.6px !important;
    color: rgb(0, 0, 0) !important;
    margin-bottom: 20px !important;
}

/* Mobile: h1 in featured view - smaller size (36px) */
@media (max-width: 767px) {
    .view-featured .container-component .mod-custom h1 {
        font-size: 36px !important;
        line-height: 39.6px !important;
    }
}

.view-featured .container-component .mod-custom h3,
.view-featured .container-component .elevator-pitch h3 {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 19px !important;
    font-weight: 300 !important;
    line-height: 26.6px !important;
    color: rgb(51, 51, 51) !important;
}

/* Override for h3 in moduletable (above position) - match original (24px, 500) */
.view-featured .container-component > .moduletable h3,
.view-featured .container-component > .moduletable .mod-custom h3,
.container-component > .moduletable h3 {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    color: rgb(0, 0, 0) !important;
}

/* Nyheter heading (matches original site) */
#mod-custom125 h2,
.blog-featured h2 {
    font-family: Halcyon-Medium !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    line-height: 42px !important;
    margin-top: 30px !important;
    margin-bottom: 10px !important;
}

/* News grid rows */
.news-grid .row {
    margin: 0;
}

/* News grid columns - standard Bootstrap gutter (15px on each side) */
.news-grid .row {
    margin-left: -15px;
    margin-right: -15px;
}

.news-grid .row>* {
    padding: 0 15px;
}

/* Individual news card */
.news-card {
    background-color: transparent !important;
    border-radius: 0 !important;
    margin-bottom: 40px !important;
    overflow: visible;
    transition: transform 0.3s ease;
}

/* Hover movement disabled per design feedback */
.news-card:hover {
    transform: none;
}

/* News card link - remove default link styling */
.news-card-link {
    display: block;
    text-decoration: none !important;
    color: inherit;
}

.news-card-link:hover,
.news-card-link:focus {
    text-decoration: none !important;
    color: inherit;
}

/* News card image wrapper - overflow visible to match original site */
/* News card image container */
.news-card-image {
    overflow: visible !important;
    border-radius: 0 !important;
}

/* News card zoom wrapper - overflow visible to allow image border-radius to show */
.news-card .zoom2024wrap,
.news-card-image .zoom2024wrap {
    overflow: visible !important;
}

/* News card image with zoom effect */
.news-card-img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 15px !important;
    transition: transform 0.8s !important;
}

/* Zoom effect disabled per design feedback */
.news-card:hover .news-card-img {
    transform: none !important;
}

/* News card body (text content) */
.news-card-body {
    background-color: rgb(255, 255, 255) !important;
    padding: 0px 0px 20px !important;
    border-bottom-left-radius: 15px !important;
    border-bottom-right-radius: 15px !important;
}

/* News card title - base styles */
.news-card-title {
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 0px !important;
    margin-bottom: 10px !important;
}

/* Leading articles (first row) - larger title */
.news-grid-leading .news-card-title {
    font-size: 42px !important;
    line-height: 46px !important;
}

/* Mobile: reduce news card title size */
@media (max-width: 767px) {
    .news-grid-leading .news-card-title {
        font-size: 28px !important;
        line-height: 1.2 !important;
    }
}

/* If there's only one leading article, make it full width */
.news-grid-leading .row > .col-md-6:only-child {
    flex: 0 0 100% !important;
    max-width: 100% !important;
}

/* Intro articles (second row) - smaller title */
.news-grid-intro .news-card-title {
    font-size: 27px !important;
    line-height: 30px !important;
}

/* News card title hover - red color like original site */
.news-card:hover .news-card-title,
.news-card-link:hover .news-card-title {
    color: #ff2f02 !important;
}

/* News card intro text */
.news-card-intro {
    font-size: 17px !important;
    line-height: 27.2px !important;
    color: rgb(51, 51, 51) !important;
}

.news-card-intro p {
    margin-bottom: 10px !important;
    font-size: 17px !important;
    line-height: 27.2px !important;
}


/* Adjust leading articles (larger cards) on mobile */
@media (max-width: 767px) {

    .news-grid-leading .col-md-6,
    .news-grid-intro .col-md-3 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* Adjust intro articles (4 column grid) on tablet */
@media (min-width: 768px) and (max-width: 991px) {
    .news-grid-intro .col-md-3 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
}

/* ==========================================================================
   NETTSTUDIER PAGE - "Nettstudier som lønner seg" section
   ========================================================================== */

/* Section container - spacing from hero image */
.leadrow2024 {
    margin-top: 50px !important;
}

/* Lead paragraph styling - match original site */
.programlead2024 {
    font-family: Halcyon-Medium !important;
    font-size: 22px !important;
    line-height: 30.8px !important;
    color: rgb(51, 51, 51) !important;
}

/* Links inside programlead2024 should be black like original */
.programlead2024 a {
    color: rgb(0, 0, 0) !important;
    text-decoration: underline !important;
}

.programlead2024 a:hover {
    color: rgb(0, 0, 0) !important;
}

/* H1 heading on Nettstudier page - override Cassiopeia defaults */
.leadrow2024 h1 {
    font-family: Halcyon-Medium !important;
    font-weight: 500 !important;
    line-height: 44px !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
}

/* H2 heading inside leadrow2024 section */
.leadrow2024 h2 {
    font-family: Halcyon-Medium !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    line-height: 33px !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
}

/* H2 headings in slideshow module containers */
.container-slideshow h2 {
    font-family: Halcyon-Medium !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    line-height: 33px !important;
    color: rgb(0, 0, 0) !important;
}

/* Primary button "Søk på nettstudier" */
.divapplybutton2024 .btn-success {
    font-family: Halcyon-SemiBold !important;
}

/* Secondary button "Nettstudier oversikt" - white background with border */
.divapplybutton2024 .btn-default {
    font-family: Halcyon-Medium !important;
    background-color: rgb(255, 255, 255) !important;
    color: rgb(51, 51, 51) !important;
    padding: 10px 16px !important;
}

/* Force buttons to full width block display (matches original 353.6px width) */
.divapplybutton2024 .btn,
.divapplybutton2024 .btn-success,
.divapplybutton2024 .btn-default {
    display: block !important;
    width: 100% !important;
}

/* Container width to match original - 1170px instead of 1320px */
@media (min-width: 1200px) {
    .container {
        max-width: 1170px !important;
    }
}

/* ==========================================================================
   KOMMENDE OPPSTARTER - Online Study Start Dates Section
   ========================================================================== */

/* Section container - light green background with rounded corners */
.row.onlinestartups {
    background-color: rgb(230, 239, 233) !important;
    padding: 25px 15px 35px !important;
    margin: 30px -15px 50px !important;
    border-radius: 30px !important;
    display: flex !important;
    flex-wrap: wrap !important;
}

/* Section heading styling - full width */
.row.onlinestartups h2,
.view-article .com-content-article__body .row.onlinestartups h2 {
    font-family: Halcyon-Medium !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    line-height: 33px !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
}

/* Date item columns - 25% width on desktop (4 columns) */
.row.onlinestartups .col-md-3 {
    padding: 0px 15px !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
}

/* Desktop - 4 columns in a row */
@media (min-width: 992px) {
    .row.onlinestartups .col-md-3 {
        flex: 0 0 25% !important;
        max-width: 25% !important;
    }
}

/* Date headings (H3) */
.row.onlinestartups h3 {
    font-family: Halcyon-Medium !important;
    font-size: 25px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    line-height: 27.5px !important;
    margin: 30px 0px 10px !important;
}

/* Date links - remove blue color and underline */
.row.onlinestartups h3 a {
    font-family: Halcyon-Medium !important;
    font-size: 25px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Date link hover state - keep black, no underline */
.row.onlinestartups h3 a:hover,
.row.onlinestartups h3 a:focus {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Calendar icons - keep red color */
.row.onlinestartups i.fa-calendar-days {
    font-size: 27px !important;
    color: rgb(255, 47, 2) !important;
    margin-right: 10px !important;
}

/* ==========================================================================
   HVORFOR VELGE NETTSTUDIER - Content Section Typography
   ========================================================================== */

/* H3 headings in main content area */
.container h3,
.container-component h3 {
    font-family: Halcyon-Medium !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    line-height: 26.4px !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
}

/* Paragraphs in main content area - use Halcyon-Medium */
.container p,
.container-component p {
    font-family: Halcyon-Medium !important;
    font-size: 17px !important;
    line-height: 27.2px !important;
    color: rgb(51, 51, 51) !important;
    margin-bottom: 16px !important;
}

/* Infobox paragraphs - black text */
.container .infobox2024 p,
.container-component .infobox2024 p {
    color: rgb(0, 0, 0) !important;
}

/* Override for infobox promo text with inline color style - must come after .container p */
.container .infoboxpris2024[style*="color"],
.container p.infoboxpris2024[style*="color"] {
    font-family: Halcyon-SemiBold, sans-serif !important;
    color: #45653e !important;
    font-size: 17px !important;
    line-height: 1.2 !important;
}

/* ==========================================================================
   ULIKE TYPER NETTSTUDIER - Accordion Panel Styling
   ========================================================================== */

/* Section heading - centered with proper spacing */
h3.studieinfo2024header {
    text-align: center !important;
    margin-bottom: 30px !important;
}

/* Accordion panels - spacing between items */
.panel-default {
    margin-bottom: 10px !important;
}

.panel-default:first-of-type {
    margin-top: 0px !important;
}

/* Accordion panel headings - light green background with rounded corners */
.panel-heading {
    background-color: rgb(230, 239, 233) !important;
    border-radius: 10px !important;
    padding: 15px 20px !important;
    border: none !important;
}

/* AI accordion panel - pink/purple background */
.panel-ai .panel-heading {
    background-color: rgb(233, 216, 230) !important;
    border-radius: 12px !important;
}

/* AI panel heading link - larger font to match original */
.panel-ai .panel-heading a {
    font-size: 24px !important;
    line-height: 26.4px !important;
}

/* AI panel body H4 headings */
.panel-ai .panel-body h4 {
    font-size: 19px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    line-height: 20.9px !important;
    margin-top: 20px !important;
    margin-bottom: 10px !important;
}

.panel-ai .panel-body h4:first-child {
    margin-top: 0 !important;
}

/* AI panel body - pink border on 3 sides (not top) */
.panel-ai .panel-body {
    border-right: 2px solid rgb(233, 216, 230) !important;
    border-bottom: 2px solid rgb(233, 216, 230) !important;
    border-left: 2px solid rgb(233, 216, 230) !important;
    border-top: none !important;
    border-radius: 0 0 12px 12px !important;
    padding: 20px 7px 10px 14px !important;
}

/* Accordion panel heading links - black color, no underline */
.panel-heading a {
    color: rgb(0, 0, 0) !important;
    font-size: 21px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    text-decoration: none !important;
    line-height: 23.1px !important;
}

.panel-heading a:hover,
.panel-heading a:focus {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Remove margins from H3 inside accordion panel headings */
.panel-heading h3.panel-title {
    margin: 0 !important;
}

/* Remove margins and fix sizing for H4 inside accordion panel headings */
.panel-heading h4.panel-title,
h4.panel-title {
    margin: 0 !important;
    font-size: 16px !important;
    line-height: 17.6px !important;
}

/* Float the chevron icon to the right */
.panel-heading a i.fa-chevron-down {
    float: right !important;
}

/* Fix Bootstrap 3 collapse compatibility with Cassiopeia's Bootstrap 5 CSS */
.collapse.in {
    display: block !important;
}

.collapse:not(.in) {
    display: none !important;
}

/* Accordion panel body - padding, borders and rounded corners for expanded content */
.panel-body {
    padding: 20px 7px 10px 14px !important;
    border-left: 2px solid rgb(200, 220, 205) !important;
    border-right: 2px solid rgb(200, 220, 205) !important;
    border-bottom: 2px solid rgb(200, 220, 205) !important;
    border-bottom-left-radius: 12px !important;
    border-bottom-right-radius: 12px !important;
}

/* Accordion panel body links - black color, NO underline, SemiBold font (matches original) */
.panel-body a:not(.nounderline):not(.btn) {
    font-family: 'Halcyon-SemiBold', sans-serif !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Panel body links - underline on hover */
.panel-body a:not(.nounderline):not(.btn):hover,
.panel-body a:not(.nounderline):not(.btn):focus {
    color: rgb(0, 0, 0) !important;
    text-decoration: underline !important;
}

/* Links with nounderline class - no underline, SemiBold font */
.panel-body a.nounderline {
    color: rgb(0, 0, 0) !important;
    font-family: Halcyon-SemiBold !important;
    text-decoration: none !important;
}

.panel-body a.nounderline:hover,
.panel-body a.nounderline:focus {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Button and button-styled links in accordion panel body - match original styling */
.panel-body button.btn,
.panel-body a.btn {
    font-family: Halcyon-Medium !important;
    font-size: 18px !important;
    background-color: rgb(255, 255, 255) !important;
    border: 2px solid rgb(204, 204, 204) !important;
    border-radius: 50px !important;
    color: rgb(51, 51, 51) !important;
}

.panel-body button.btn:hover,
.panel-body button.btn:focus,
.panel-body a.btn:hover,
.panel-body a.btn:focus {
    background-color: rgb(255, 255, 255) !important;
    border: 2px solid rgb(204, 204, 204) !important;
    color: rgb(51, 51, 51) !important;
}

/* General button styling for all .btn links - ensure white background and stable hover */
a.btn-default {
    background-color: rgb(255, 255, 255) !important;
    color: rgb(51, 51, 51) !important;
    border: 2px solid rgb(204, 204, 204) !important;
}

a.btn-default:hover,
a.btn-default:focus {
    background-color: rgb(255, 255, 255) !important;
    color: rgb(51, 51, 51) !important;
    border: 2px solid rgb(204, 204, 204) !important;
}

/* Button element styling for .btn-default (e.g., "Mer om Nettstudier") */
button.btn-default {
    background-color: rgb(255, 255, 255) !important;
    color: rgb(51, 51, 51) !important;
    border: 2px solid rgb(204, 204, 204) !important;
}

button.btn-default:hover,
button.btn-default:focus {
    background-color: rgb(230, 230, 230) !important;
    color: rgb(51, 51, 51) !important;
    border: 2px solid rgb(204, 204, 204) !important;
}

/* Override btn-default for bachelorutlandet2024button - make it red/orange */
button.btn-default.bachelorutlandet2024button,
.btn.btn-default.bachelorutlandet2024button {
    background-color: rgb(255, 47, 2) !important;
    color: rgb(255, 255, 255) !important;
    border: 2px solid rgb(255, 47, 2) !important;
    border-radius: 50px !important;
    padding: 10px 25px !important;
    font-size: 18px !important;
    font-family: Halcyon-Medium !important;
}

button.btn-default.bachelorutlandet2024button:hover,
.btn.btn-default.bachelorutlandet2024button:hover {
    background-color: rgb(204, 37, 0) !important;
    color: rgb(255, 255, 255) !important;
    border-color: rgb(204, 37, 0) !important;
}

/* Kommende oppstarter date links - red hover color like original */
.oppstartdatoer2024 a:hover,
.oppstartdatoer2024 a:focus,
.onlinestartups a:hover,
.onlinestartups a:focus,
#mod-custom417 a:hover,
#mod-custom417 a:focus {
    color: rgb(255, 47, 2) !important;
}

/* ==========================================================================
   INTERVJUER MED NETTSTUDENTER - Featured Articles Section
   ========================================================================== */

/* Section heading styling - matches original site */
.studietilbud-hovedside h2 {
    font-family: 'Halcyon-Medium', -apple-system, sans-serif !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    line-height: 33px !important;
    margin-top: 25px !important;
    margin-bottom: 30px !important;
    color: rgb(0, 0, 0) !important;
}

/* Reduce gap before featured articles (was 117px, should be ~30px) */
.studietilbud-hovedside .blog-featured {
    margin-top: 0 !important;
}

/* Override inline margin-top on news-grid-intro (was 40px from template) */
.studietilbud-hovedside .news-grid-intro {
    margin-top: 0 !important;
}

/* Reduce container-banner bottom margin for this page */
.studietilbud-hovedside .container-banner {
    margin-bottom: 0 !important;
}

/* Reduce main element top margin for this page */
.studietilbud-hovedside .container-component main {
    margin-top: 0 !important;
}

/* Remove main margin-top when slideshow is present above content */
.container-slideshow + .container-component main {
    margin-top: 0;
}

/* Remove article-info margins when slideshow is present (the empty DL creates unwanted space) */
.container-slideshow + .container-component .article-info {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Lead text in article pages */
.com-content-article p.lead {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 21px !important;
    line-height: 29.4px !important;
    color: rgb(51, 51, 51) !important;
}

/* "Les flere intervjuer" link styling */
.studietilbud-hovedside .blog-featured p.more-interviews-link {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 21px !important;
    color: rgb(51, 51, 51) !important;
    margin-top: 30px !important;
}

.studietilbud-hovedside .blog-featured p.more-interviews-link a {
    font-family: 'Halcyon-SemiBold', sans-serif !important;
    font-size: 21px !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: underline !important;
}

.studietilbud-hovedside .blog-featured p.more-interviews-link a:hover {
    color: rgb(0, 0, 0) !important;
}

/* =====================================================
   Studieveiledning Hero Section (Få studieveiledning)
   ===================================================== */

/* Container - relative positioned with fixed height */
.leadstudyguidance2024 {
    position: relative;
    width: 100%;
    height: 550px;
    overflow: hidden;
    margin: 40px 0;
}

/* Image - fills container */
.leadstudyguidance2024img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Overlay - dark semi-transparent background over image */
.leadstudyguidance2024overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Content container - positioned in center-right area */
.leadstudyguidance2024content {
    text-align: center;
    max-width: 500px;
    padding: 20px;
}

/* Heading */
.leadstudyguidance2024content h2 {
    color: rgb(255, 255, 255) !important;
    font-size: 50px !important;
    font-weight: 500 !important;
    margin: 25px 0 10px !important;
    font-family: Halcyon-Medium !important;
}

/* Subheading */
.leadstudyguidance2024content h3 {
    color: rgb(255, 255, 255) !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    margin: 25px 0 10px !important;
    font-family: Halcyon-Medium !important;
    line-height: 1.4;
}

/* Button */
.leadstudyguidance2024button {
    background-color: rgb(255, 255, 255) !important;
    color: rgb(51, 51, 51) !important;
    font-size: 25px !important;
    font-family: Halcyon-Medium !important;
    padding: 10px 40px !important;
    border: none !important;
    border-radius: 50px !important;
    margin-top: 30px !important;
    cursor: pointer;
    display: inline-block;
}

.leadstudyguidance2024button:hover {
    background-color: rgb(240, 240, 240) !important;
    color: rgb(51, 51, 51) !important;
}

/* Remove underline from studieveiledning button link */
.leadstudyguidance2024 a.nounderline,
.leadstudyguidance2024 a.nounderline:hover,
.leadstudyguidance2024content a {
    text-decoration: none !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .leadstudyguidance2024 {
        height: 400px;
    }

    .leadstudyguidance2024content h2 {
        font-size: 32px !important;
    }

    .leadstudyguidance2024content h3 {
        font-size: 18px !important;
    }

    .leadstudyguidance2024button {
        font-size: 18px !important;
        padding: 10px 30px !important;
    }
}

/* ==========================================================================
   ARTICLE CONTENT LINKS - Black to match original site
   ========================================================================== */

.com-content-article a:not(.btn),
.item-page a:not(.btn) {
    color: #000000;
    text-decoration: underline;
}

.com-content-article a:not(.btn):hover,
.item-page a:not(.btn):hover {
    color: #333333;
}

/* ==========================================================================
   CUSTOM MODULE CONTENT LINKS - Black, SemiBold, underlined to match original
   ========================================================================== */

/* Custom module content links - SemiBold, black, underlined (excludes panel-title and panel-body links) */
.mod-custom p a:not(.btn):not(.btn-cta):not(.nounderline),
.mod-custom span a:not(.btn):not(.btn-cta):not(.nounderline),
.custom p a:not(.btn):not(.btn-cta):not(.nounderline),
.custom span a:not(.btn):not(.btn-cta):not(.nounderline),
.moduletable_above p a:not(.btn):not(.btn-cta):not(.nounderline),
.moduletable_above span a:not(.btn):not(.btn-cta):not(.nounderline) {
    font-family: 'Halcyon-SemiBold', sans-serif !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: underline !important;
}

.mod-custom p a:not(.btn):not(.btn-cta):not(.nounderline):hover,
.mod-custom span a:not(.btn):not(.btn-cta):not(.nounderline):hover,
.custom p a:not(.btn):not(.btn-cta):not(.nounderline):hover,
.custom span a:not(.btn):not(.btn-cta):not(.nounderline):hover,
.moduletable_above p a:not(.btn):not(.btn-cta):not(.nounderline):hover,
.moduletable_above span a:not(.btn):not(.btn-cta):not(.nounderline):hover {
    color: rgb(51, 51, 51) !important;
}

/* Footer mod-custom links override - use medium weight, not semibold, no underline */
footer .mod-custom p a:not(.btn):not(.btn-cta):not(.nounderline),
footer .mod-custom span a:not(.btn):not(.btn-cta):not(.nounderline),
footer .custom p a:not(.btn):not(.btn-cta):not(.nounderline),
footer .custom span a:not(.btn):not(.btn-cta):not(.nounderline),
footer.container-footer .mod-custom p a,
footer.container-footer .custom p a {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-weight: 500 !important;
    color: rgba(255, 255, 255, 0.8) !important;
    text-decoration: none !important;
}

/* Accordion panel title links - Halcyon-Medium, no underline */
.panel-title a,
h4.panel-title a,
.panel-heading a {
    font-family: 'Halcyon-Medium', sans-serif !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* ==========================================================================
   CUSTOM MODULE HEADINGS - Match original site typography
   ========================================================================== */

/* H2 in custom modules - Halcyon-Medium, 30px, weight 500, black */
.mod-custom h2,
.custom h2,
.moduletable_above h2 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 20px !important;
    margin-bottom: 30px !important;
}

/* Compensate for blog-featured -17px margin-top to maintain 30px gap after section headings */
#mod-custom674,
#mod-custom613 {
    margin-bottom: 17px !important;
}

/* H3 in custom modules - Halcyon-Medium, 24px, weight 500, black */
.mod-custom h3,
.custom h3,
.moduletable_above h3 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
}

/* H4 in custom modules (not accordion titles) - Halcyon-Medium, 19px, weight 700, black */
.mod-custom h4:not(.panel-title),
.custom h4:not(.panel-title),
.moduletable_above h4:not(.panel-title) {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 19px !important;
    font-weight: 700 !important;
    color: rgb(0, 0, 0) !important;
}

/* H4 links in custom modules (not accordion titles) - inherit styling, black color, no underline */
.mod-custom h4:not(.panel-title) a,
.custom h4:not(.panel-title) a,
.moduletable_above h4:not(.panel-title) a {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* H4 links in custom modules - red color on hover (matches original) */
.mod-custom h4:not(.panel-title) a:hover,
.mod-custom h4:not(.panel-title) a:focus,
.custom h4:not(.panel-title) a:hover,
.custom h4:not(.panel-title) a:focus,
.moduletable_above h4:not(.panel-title) a:hover,
.moduletable_above h4:not(.panel-title) a:focus {
    color: rgb(255, 47, 2) !important;
    text-decoration: none !important;
}

/* Accordion panel title (h4.panel-title) - Halcyon-Medium, 16px, weight 500 */
h4.panel-title {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    color: rgb(51, 51, 51) !important;
}

/* ==========================================================================
   FULL-WIDTH BANNER POSITION - For hero images
   ========================================================================== */

.container-banner.full-width,
.container-slideshow.full-width {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    padding: 0;
}

.container-banner.full-width img,
.container-slideshow.full-width img {
    width: 100%;
    height: auto;
    display: block;
}

/* ==========================================================================
   JOBBMULIGHETER SECTION - Career opportunities with alumni feature
   ========================================================================== */

/* Left column with pink background */
.career2024listcol {
    padding: 30px 15px 30px 50px !important;
    background-color: rgb(233, 216, 230) !important;
    border-radius: 30px 0px 0px 30px !important;
    display: flex !important;
    align-items: center !important;
}

.career2024listcontent {
    padding: 0px 40px 0px 0px !important;
}

/* Jobbmuligheter heading */
.career2024listcontent h3 {
    font-size: 24px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    line-height: 26.4px !important;
    color: rgb(0, 0, 0) !important;
    margin-bottom: 10px !important;
}

/* Jobbmuligheter paragraph */
.career2024listcontent p {
    font-size: 17px !important;
    font-weight: 400 !important;
    font-family: Halcyon-Medium !important;
    line-height: 27.2px !important;
    color: rgb(51, 51, 51) !important;
}

/* Jobbmuligheter list items */
.career2024listcontent li {
    font-size: 16px !important;
    font-weight: 400 !important;
    font-family: Halcyon-Medium !important;
    line-height: 24px !important;
}

/* Jobbmuligheter list - match original padding */
.career2024listcontent ul {
    padding-left: 40px !important;
}

/* Jobbmuligheter list links - no underline, hover shows underline in Noroff orange */
/* Need very high specificity to override container-slideshow link rules with :not() chains */
.career2024listcontent li a,
.view-article .com-content-article__body .career2024listcontent li a,
.container-slideshow.full-width .mod-custom.custom .container.career2024 .row .col-md-6.career2024listcol .career2024listcontent ul li a {
    text-decoration: none !important;
    color: rgb(0, 0, 0) !important;
    font-family: Halcyon-Medium, sans-serif !important;
}

.career2024listcontent li a:hover,
.view-article .com-content-article__body .career2024listcontent li a:hover,
.container-slideshow.full-width .mod-custom.custom .container.career2024 .row .col-md-6.career2024listcol .career2024listcontent ul li a:hover {
    text-decoration: underline !important;
    color: rgb(255, 47, 2) !important;
}

/* Row containing Jobbmuligheter - 40px spacing above */
.row:has(.career2024listcol) {
    margin-top: 40px !important;
}

/* Row container - fixed height to match original */
.career2024listcol,
.career2024imgcol {
    height: 450px !important;
}

/* Right column - image with overlay */
.career2024imgcol {
    padding: 0 !important;
}

.career2024imgwrapper {
    position: relative !important;
    border-radius: 0px 30px 30px 0px !important;
    overflow: hidden !important;
    height: 100% !important;
}

.career2024imgwrapper img {
    width: 100% !important;
    height: auto !important;
    object-fit: fill !important;
}

.career2024imgoverlay {
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    background: rgba(0, 0, 0, 0.3) !important;
    padding: 0px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
}

.career2024content {
    text-align: center !important;
    padding: 10px 80px 40px !important;
}

.career2024content h3 {
    font-size: 36px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    color: rgb(255, 255, 255) !important;
    line-height: 39.6px !important;
    text-align: center !important;
    margin-bottom: 15px !important;
}

.career2024contentbutton {
    background-color: rgb(255, 255, 255) !important;
    color: rgb(51, 51, 51) !important;
    border-radius: 50px !important;
    padding: 10px 16px !important;
    border: none !important;
}

/* Mobile: Remove border-radius from career section and fix full-width */
@media (max-width: 767px) {
    .career2024imgwrapper {
        border-radius: 0px !important;
        height: auto !important;
    }
    .career2024listcol {
        border-radius: 0px !important;
        height: auto !important;
    }
    .career2024imgcol {
        border-radius: 0px !important;
        height: auto !important;
    }
    .container.career2024 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .career2024 .row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    /* Career quote h3 - smaller font on mobile to match original */
    /* Original: font-size: 32px, line-height: 35.2px, margin: 25px 0 10px */
    .career2024content h3 {
        font-size: 32px !important;
        line-height: 35.2px !important;
        margin: 25px 0px 10px !important;
    }
}

/* ========================================
   Studieinformasjon Section (Green/Sage Accordion)
   ======================================== */

/* Container spacing */
.studieinfo2024 {
    margin-top: 70px !important;
    margin-bottom: 70px !important;
}

/* Section header */
.studieinfo2024header {
    font-size: 24px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    color: rgb(0, 0, 0) !important;
    text-align: center !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
}

/* Green/sage panel styling for Studieinformasjon */
.panel-studieinfo {
    border: none !important;
    margin-bottom: 10px !important;
    box-shadow: none !important;
}

.panel-studieinfo .panel-heading {
    background-color: rgb(230, 239, 233) !important;
    padding: 25px 25px 23px 20px !important;
    border-radius: 12px !important;
    border: none !important;
}

.panel-studieinfo .panel-title {
    font-size: 24px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
}

.panel-studieinfo .panel-title a {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

.panel-studieinfo .panel-body {
    border: 2px solid rgb(230, 239, 233) !important;
    border-top: none !important;
    border-radius: 0 0 12px 12px !important;
    padding: 20px !important;
}

/* Chevron rotation when panel is expanded */
.panel-studieinfo .panel-title a i {
    transition: transform 0.3s ease !important;
}

.panel-studieinfo .panel-title a.collapsed i {
    transform: rotate(0deg) !important;
}

.panel-studieinfo .panel-title a:not(.collapsed) i,
.panel-studieinfo .panel-title a[aria-expanded="true"] i {
    transform: rotate(180deg) !important;
}

/* ========================================
   IT-utdanninger på Noroff Høyskole Section
   ======================================== */

/* Left column with teal/green background - Desktop only */
@media (min-width: 992px) {
    .bachelorutlandet2024infocol {
        background-color: rgb(230, 239, 233) !important;
        padding: 30px 30px 30px 50px !important;
        border-radius: 30px 0px 0px 30px !important;
        height: 400px !important;
        overflow: hidden !important;
        display: flow-root !important;
    }
}

.bachelorutlandet2024content h3 {
    font-size: 24px !important;
    font-weight: 500 !important;
    font-family: Halcyon-Medium !important;
    color: rgb(0, 0, 0) !important;
    margin-bottom: 10px !important;
}

.bachelorutlandet2024content h4 {
    font-size: 17px !important;
    font-weight: 600 !important;
    font-family: Halcyon-SemiBold !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
    line-height: 1.2 !important;
}

.bachelorutlandet2024content p {
    font-size: 17px !important;
    font-weight: 400 !important;
    font-family: Halcyon-Medium !important;
    color: rgb(51, 51, 51) !important;
    line-height: 27.2px !important;
}

/* Links in the content - black with underline, semi-bold */
.bachelorutlandet2024content p a {
    color: rgb(0, 0, 0) !important;
    text-decoration: underline !important;
    font-family: Halcyon-SemiBold !important;
    font-weight: 400 !important;
}

/* Orange button */
button.bachelorutlandet2024button,
.bachelorutlandet2024button.btn {
    background-color: rgb(255, 47, 2) !important;
    color: rgb(255, 255, 255) !important;
    border-radius: 50px !important;
    padding: 10px 25px !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    font-family: Halcyon-Medium !important;
    border: 2px solid rgb(255, 47, 2) !important;
}

/* Right column - image */
.bachelorutlandet2024imgcol {
    padding: 0 !important;
    height: 400px !important;
}

.bachelorutlandet2024imgwrapper {
    overflow: hidden !important;
    height: 100% !important;
}

@media (min-width: 992px) {
    .bachelorutlandet2024imgwrapper {
        border-radius: 0px 30px 30px 0px !important;
    }
}

.bachelorutlandet2024img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: top center !important;
}

/* Row spacing */
.row:has(.bachelorutlandet2024infocol) {
    margin-top: 40px !important;
}

/* Bachelor utlandet list links - no underline, hover shows underline in Noroff orange */
/* Need very high specificity to override container-slideshow link rules */
.bachelorutlandet2024content li a,
.container-slideshow.full-width .mod-custom.custom .container.studieinfo2024 .container.bachelorutlandet2024 .row .col-md-6.bachelorutlandet2024infocol .bachelorutlandet2024content ul li a {
    text-decoration: none !important;
    color: rgb(0, 0, 0) !important;
    font-family: Halcyon-Medium, sans-serif !important;
}

.bachelorutlandet2024content li a:hover,
.container-slideshow.full-width .mod-custom.custom .container.studieinfo2024 .container.bachelorutlandet2024 .row .col-md-6.bachelorutlandet2024infocol .bachelorutlandet2024content ul li a:hover {
    text-decoration: underline !important;
    color: rgb(255, 47, 2) !important;
}

/* ========================================
   Intervju med våre studenter Section
   ======================================== */

/* Testimonials section container */
.testimonials2024 {
    margin-top: 70px !important;
}

/* Card columns - match original Bootstrap 3 gutters (15px vs 7.5px) */
.testimonials2024 .col-md-3 {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

/* Section heading - centered */
.testimonials2024 h3 {
    font-family: Halcyon-Medium !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    text-align: center !important;
    margin: 25px 0 40px !important;
}

/* Image wrapper - rounded top corners */
.testimonialwrapper2024 {
    border-radius: 30px 30px 0 0 !important;
    overflow: hidden !important;
}

/* Student image */
.testimonial2024img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

/* Quote wrapper - teal background, rounded bottom */
.testimonial2024quotewrap {
    background-color: rgb(230, 239, 233) !important;
    padding: 30px 20px 20px 30px !important;
    border-radius: 0 0 30px 25px !important;
}

.testimonial2024quotewrap .row {
    margin-left: -15px !important;
    margin-right: -15px !important;
}

.mod-custom .testimonial2024quotewrap .col-md-12 {
    padding-top: 5px !important;
    padding-right: 2px !important;
    padding-bottom: 10px !important;
    padding-left: 3px !important;
}

.testimonial2024quotewrap a {
    word-break: normal !important;
    overflow-wrap: normal !important;
}

/* Remove underlines from quote links - more specific to override slideshow link rule */
.container-slideshow .mod-custom .fagpersoner2024 .testimonial2024quotewrap a:not(.btn):not([data-toggle]),
.fagpersoner2024 .testimonial2024quotewrap a {
    text-decoration: none !important;
}

/* Blockquote with orange quote mark */
.blockquote2024pp {
    font-family: Halcyon-Medium !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    color: rgb(51, 51, 51) !important;
    line-height: 28.6px !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
    border: none !important;
    position: relative !important;
}

/* Orange quotation mark */
.blockquote2024pp::before {
    content: '\201C' !important;
    color: rgb(255, 47, 2) !important;
    font-size: 80px !important;
    font-family: Halcyon-Medium !important;
    line-height: 104px !important;
    display: block !important;
    position: absolute !important;
    top: -32px !important;
    left: -23px !important;
    padding-left: 10px !important;
}

/* Link styling inside blockquote */
.blockquote2024pp a,
.view-featured .container-slideshow .testimonials2024 .blockquote2024pp a,
.container-slideshow.full-width .mod-custom.custom .testimonials2024 .blockquote2024pp a {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
    font-family: Halcyon-SemiBold !important;
    font-weight: 400 !important;
}

/* Attribution (small element) */
.blockquote2024pp small {
    font-family: Halcyon-Regular !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    color: rgb(0, 0, 0) !important;
    display: block !important;
    margin-top: 10px !important;
}

/* Add "— " before attribution */
.blockquote2024pp small::before {
    content: '— ' !important;
}

/* Mobile styles for blockquote - smaller font on mobile to match original */
@media (max-width: 767px) {
    .blockquote2024pp {
        font-size: 16px !important;
        line-height: 19.2px !important;
    }

    .blockquote2024pp small {
        font-size: 14px !important;
    }

    .testimonial2024quotewrap {
        overflow: visible !important;
    }
}

/* ==========================================================================
   ARTICLE BLOCKQUOTES - Floating quotes in article content
   ========================================================================== */

/* Bootstrap 3 pull-right compatibility for Joomla 5 */
.com-content-article .pull-right,
.view-article .pull-right {
    float: right !important;
    margin-left: 30px !important;
    margin-bottom: 20px !important;
}

/* Article blockquote styling - match live site */
.com-content-article blockquote,
.view-article blockquote {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 22px !important;
    font-style: italic !important;
    font-weight: 400 !important;
    color: rgb(51, 51, 51) !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    padding: 0 0 0 30px !important;
    border: none !important;
    position: relative !important;
}

/* Orange quotation mark before blockquote */
.com-content-article blockquote::before,
.view-article blockquote::before {
    content: '\201C' !important;
    color: #ff2f02 !important;
    font-size: 60px !important;
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-style: normal !important;
    line-height: 1 !important;
    position: absolute !important;
    top: -10px !important;
    left: 0 !important;
}

/* Blockquote text span */
.com-content-article blockquote span,
.view-article blockquote span {
    display: block !important;
}

/* Attribution (small element) in blockquote */
.com-content-article blockquote small,
.view-article blockquote small {
    font-family: 'Halcyon-Regular', sans-serif !important;
    font-size: 16px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    color: rgb(0, 0, 0) !important;
    display: block !important;
    margin-top: 15px !important;
    text-align: right !important;
}

/* Add "— " before attribution */
.com-content-article blockquote small::before,
.view-article blockquote small::before {
    content: '— ' !important;
}

/* Mobile: stack blockquotes instead of floating */
@media (max-width: 767px) {
    .com-content-article .pull-right,
    .view-article .pull-right {
        float: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-bottom: 20px !important;
        width: 100% !important;
    }

    .com-content-article blockquote,
    .view-article blockquote {
        font-size: 18px !important;
    }
}

/* ========================================
   Vårt fagpersonell Section
   ======================================== */

/* Fagpersonell section container */
.fagpersoner2024 {
    margin-top: 0px !important;
    margin-bottom: 50px !important;
}

/* Section heading - centered */
.fagpersoner2024 h3 {
    font-family: Halcyon-Medium !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    text-align: center !important;
    margin: 25px 0 40px !important;
}

/* Heading row - spacing above to match original */
.fagpersonell2024head {
    margin-top: 40px !important;
}

/* Card columns - match original Bootstrap 3 gutters */
.fagpersoner2024 .col-md-3 {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

/* Ensure the row uses flexbox */
.fagpersoner2024 > .row,
.fagpersoner2024 .row {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
}

/* Bootstrap 3 hidden-xs/hidden-sm compatibility */
/* Mobile: hide spacers, show 2 columns */
@media (max-width: 767px) {
    .fagpersoner2024 .hidden-xs,
    .testimonials2024 .hidden-xs {
        display: none !important;
    }

    /* col-xs-6 = 50% width on mobile (Bootstrap 3 compatibility) */
    .fagpersoner2024 .col-xs-6,
    .testimonials2024 .col-xs-6 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
}

/* Tablet: hide spacers, show 2 columns */
@media (min-width: 768px) and (max-width: 991px) {
    .fagpersoner2024 .hidden-sm {
        display: none !important;
    }
}

/* ========================================
   Videoer Section
   ======================================== */

/* Full-width gray background row */
.videos2024 {
    background-color: rgb(217, 212, 214) !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    margin-bottom: 70px !important;
    padding: 0 !important;
}

/* Container inside the row */
.videos2024container {
    max-width: 1170px !important;
    margin: 40px auto 70px !important;
    padding: 0 15px !important;
    display: flex !important;
    flex-wrap: wrap !important;
}

/* Make h3 full width */
.videos2024container h3 {
    width: 100% !important;
}

/* Section heading */
.videos2024container h3 {
    font-family: Halcyon-Medium !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    text-align: center !important;
    margin: 25px 0 27px !important;
}

/* Video row container */
.videos2024container .row {
    display: flex !important;
    flex-wrap: wrap !important;
    margin-left: -15px !important;
    margin-right: -15px !important;
    width: calc(100% + 30px) !important;
}

/* Video columns */
.videos2024container .col-md-6 {
    padding-left: 15px !important;
    padding-right: 15px !important;
    width: 50% !important;
    flex: 0 0 50% !important;
}

.videos2024container .col-md-3 {
    padding-left: 15px !important;
    padding-right: 15px !important;
    width: 25% !important;
    flex: 0 0 25% !important;
}

/* Video thumbnail image */
.videos2024container img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

/* Responsive video embed */
.videos2024container .embed-responsive {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    overflow: hidden !important;
}

.videos2024container .embed-responsive-16by9 {
    padding-bottom: 56.25% !important;
}

.videos2024container .embed-responsive-item,
.videos2024container .embed-responsive iframe,
.videos2024container .embed-responsive a,
.videos2024container .embed-responsive img {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
    object-fit: cover !important;
}

/* ========================================
   Få studieveiledning Section
   ======================================== */

/* Full-width banner container */
.leadstudyguidance2024 {
    position: relative !important;
    width: 100vw !important;
    margin-top: 0 !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    overflow: hidden !important;
}

/* Background image */
.leadstudyguidance2024img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

/* Dark overlay */
.leadstudyguidance2024overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(0, 0, 0, 0.3) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Content wrapper */
.leadstudyguidance2024content {
    text-align: center !important;
    padding: 0 20px !important;
}

/* Main heading */
.leadstudyguidance2024content h2 {
    font-family: Halcyon-Medium !important;
    font-size: 50px !important;
    font-weight: 500 !important;
    color: rgb(255, 255, 255) !important;
    margin: 25px 0 10px !important;
}

/* Subtitle */
.leadstudyguidance2024content h3 {
    font-family: Halcyon-Medium !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    color: rgb(255, 255, 255) !important;
    line-height: 26.4px !important;
    margin-bottom: 20px !important;
}

/* CTA Button */
.leadstudyguidance2024button {
    background-color: rgb(255, 255, 255) !important;
    color: rgb(51, 51, 51) !important;
    border-radius: 50px !important;
    font-size: 25px !important;
    font-family: Halcyon-Medium !important;
    padding: 15px 50px !important;
    border: none !important;
    min-width: 400px !important;
}

.leadstudyguidance2024button:hover {
    background-color: rgb(240, 240, 240) !important;
}

/* Mobile responsive - match original site values */
@media (max-width: 767px) {
    .leadstudyguidance2024content h2 {
        font-size: 28px !important;
        line-height: 30.8px !important;
    }

    .leadstudyguidance2024content h3 {
        font-size: 17px !important;
        line-height: 22px !important;
    }

    .leadstudyguidance2024button {
        font-size: 15px !important;
        padding: 10px 30px !important;
        min-width: auto !important;
    }
}

/* ========================================
   Relaterte nyheter Section
   ======================================== */

.relatednews2024container {
    margin-top: 40px !important;
    margin-bottom: 0 !important;
}

h2.relatednews2024,
.mod-custom h2.relatednews2024 {
    font-family: Halcyon-Medium !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 10px !important;
    margin-bottom: 30px !important;
    padding-bottom: 0 !important;
    text-align: left !important;
    border-bottom: 1px dotted rgb(228, 233, 240) !important;
}

/* Fix Bootstrap column padding for Relaterte nyheter section (BS3: 15px, BS5: 7.5px) */
.relatednews2024container .col-md-12,
.mod-custom .container .col-md-12 {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

/* Spacing between Relaterte nyheter heading and news grid - removed negative margin for proper gap */
.news-grid.news-grid-intro {
    margin-top: 5px !important;
    display: flex !important;
    flex-wrap: wrap !important;
}

/* Ensure intro columns display properly in row */
.news-grid-intro > .col-md-4,
.news-grid-intro > .col-sm-6 {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

/* Mobile fix: remove negative margins to prevent horizontal overflow */
@media (max-width: 767px) {
    .news-grid.news-grid-intro {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Remove column padding on mobile for full-width news items */
    .news-grid .row > *,
    .news-grid-leading > .col-md-6,
    .news-grid-intro > .col-md-4,
    .news-grid-intro > .col-md-3,
    .news-grid-intro > .col-sm-6 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Add left/right padding to Relaterte nyheter section on mobile */
    .mod-custom .newsflash_row {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    /* Remove padding from relatednews2024 heading - parent .col-md-12 already has 15px padding */
    .mod-custom .relatednews2024,
    h2.relatednews2024 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Let container-component provide edge padding for news-grid */
    .container-component .news-grid {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Ensure images inside news grid respect container bounds */
    .news-grid img,
    .newsflash_row img {
        max-width: 100% !important;
        height: auto !important;
    }
}

/* =============================================
   HORIZONTAL FLYOUT SUBMENUS (Desktop only)
   Nested submenus fly out to the right on hover
   ============================================= */
@media (min-width: 992px) {
    /* First level dropdown - show below parent (handles both .parent and .deeper classes) */
    .container-header .mod-menu > li.parent > .mod-menu__sub,
    .container-header .mod-menu > li.deeper > .mod-menu__sub {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        min-width: 220px;
        background-color: #fff;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
        padding: 0.5em 0;
        z-index: 1000;
        list-style: none;
    }

    /* Show first level dropdown on hover */
    .container-header .mod-menu > li.parent:hover > .mod-menu__sub,
    .container-header .mod-menu > li.deeper:hover > .mod-menu__sub {
        display: block;
    }

    /* Nested parent items (level 2+) - relative positioning for flyout */
    .container-header .mod-menu .mod-menu__sub > li.parent,
    .container-header .mod-menu .mod-menu__sub > li.deeper {
        position: relative;
    }

    /* Nested submenus - position to the right (flyout) */
    .container-header .mod-menu .mod-menu__sub > li.parent > .mod-menu__sub,
    .container-header .mod-menu .mod-menu__sub > li.deeper > .mod-menu__sub {
        display: none;
        position: absolute;
        left: 100%;
        top: 0;
        min-width: 220px;
        background-color: #fff;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
        padding: 0.5em 0;
        z-index: 1001;
        list-style: none;
    }

    /* Show nested submenu on hover */
    .container-header .mod-menu .mod-menu__sub > li.parent:hover > .mod-menu__sub,
    .container-header .mod-menu .mod-menu__sub > li.deeper:hover > .mod-menu__sub {
        display: block;
    }

    /* Submenu item styling - match original site exactly */
    .container-header .mod-menu .mod-menu__sub > li > a,
    .container-header .mod-menu .mod-menu__sub > li > a:link,
    .container-header .mod-menu .mod-menu__sub > li > a:visited {
        display: block !important;
        font-family: Halcyon-Medium, sans-serif !important;
        font-size: 16.5px !important;
        font-weight: 400 !important;
        line-height: 33px !important;
        padding: 3px 20px !important;
        color: rgb(0, 0, 0) !important;
        text-decoration: none !important;
        white-space: nowrap !important;
    }

    /* Hover state - light pastel green background with black text */
    .container-header .mod-menu .mod-menu__sub > li > a:hover,
    .container-header .mod-menu .mod-menu__sub > li > a:focus {
        background-color: rgb(231, 241, 236) !important;
        color: rgb(0, 0, 0) !important;
        text-decoration: none !important;
    }

    /* Flyout submenu (2nd level nested) - smaller text */
    .container-header .mod-menu .mod-menu__sub .mod-menu__sub > li > a,
    .container-header .mod-menu .mod-menu__sub .mod-menu__sub > li > a:link,
    .container-header .mod-menu .mod-menu__sub .mod-menu__sub > li > a:visited {
        font-size: 15px !important;
        line-height: 19.5px !important;
    }
}

/* =====================================================
   Bootstrap 3 Carousel Support (for legacy content)
   ===================================================== */

.carousel-inner > .item {
    display: none;
    position: relative;
    transition: transform 0.6s ease-in-out;
}

.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
    display: block;
}

.carousel-inner > .next,
.carousel-inner > .prev {
    position: absolute;
    top: 0;
    width: 100%;
}

.carousel-inner > .next {
    left: 100%;
}

.carousel-inner > .prev {
    left: -100%;
}

.carousel-inner > .next.left,
.carousel-inner > .prev.right {
    left: 0;
}

.carousel-inner > .active.left {
    left: -100%;
}

.carousel-inner > .active.right {
    left: 100%;
}

/* Carousel controls */
.carousel-control {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 15%;
    font-size: 20px;
    color: #fff !important;
    text-align: center;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
    background-color: transparent;
    opacity: 0.7;
}

.carousel-control .fa,
.carousel-control span {
    color: #fff !important;
}

.carousel-control.right {
    left: auto;
    right: 0;
}

.carousel-control:hover,
.carousel-control:focus {
    color: #fff !important;
    text-decoration: none;
    opacity: 0.9;
}

/* Carousel indicators */
.carousel-indicators {
    position: absolute;
    bottom: 10px;
    left: 50%;
    z-index: 15;
    width: 60%;
    padding-left: 0;
    margin-left: -30%;
    text-align: center;
    list-style: none;
}

.carousel-indicators li {
    display: inline-block;
    width: 10px;
    height: 10px;
    margin: 1px;
    text-indent: -999px;
    cursor: pointer;
    background-color: rgba(0, 0, 0, 0);
    border: 1px solid #fff;
    border-radius: 10px;
}

.carousel-indicators .active {
    width: 12px;
    height: 12px;
    margin: 0;
    background-color: #fff;
}

/* =====================================================
   NUC Pricing Table - Fix styles in headers and cells
   ===================================================== */

/* Override broad paragraph rules for pricing table - respect inline styles */
.table th p,
.table td p,
.view-article .com-content-article__body .table th p,
.view-article .com-content-article__body .table td p {
    color: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
    margin-bottom: 0 !important;
    max-width: none !important;
}

/* Specific inline style overrides for white text */
.table th p[style*="color: #fff"],
.table th p[style*="color: rgb(255, 255, 255)"],
.table td p[style*="color: #fff"],
.table td p[style*="color: rgb(255, 255, 255)"],
.view-article .com-content-article__body .table th p[style*="color: #fff"],
.view-article .com-content-article__body .table th p[style*="color: rgb(255, 255, 255)"],
.view-article .com-content-article__body .table td p[style*="color: #fff"],
.view-article .com-content-article__body .table td p[style*="color: rgb(255, 255, 255)"] {
    color: #fff !important;
    font-weight: 700 !important;
}

/* Pricing table header text styles - match original */
.table th p[style*="font-size: 20px"],
.view-article .com-content-article__body .table th p[style*="font-size: 20px"] {
    font-family: Halcyon-SemiBold, sans-serif !important;
    font-size: 20px !important;
    line-height: 1.2em !important;
}

.table th p[style*="font-size: 10px"],
.view-article .com-content-article__body .table th p[style*="font-size: 10px"] {
    font-size: 10px !important;
    line-height: 16px !important;
}

.table th p[style*="font-size: 14px"],
.view-article .com-content-article__body .table th p[style*="font-size: 14px"] {
    font-size: 14px !important;
    line-height: 22.4px !important;
}

/* Fix icon colors in pricing table headers and cells */
.table th i,
.table th .fa,
.table th .fas,
.table td i,
.table td .fa,
.table td .fas {
    color: inherit !important;
}

.table th p[style*="color: #7a1600"] i,
.table th p[style*="color: #7a1600"] .fas,
.table td p[style*="color: #7a1600"] i,
.table td p[style*="color: #7a1600"] .fas {
    color: #7a1600 !important;
}

.table th p[style*="color: #ff2f02"] i,
.table th p[style*="color: #ff2f02"] .fas,
.table td p[style*="color: #ff2f02"] i,
.table td p[style*="color: #ff2f02"] .fas,
.view-article .com-content-article__body .table td p[style*="color: #ff2f02"] i,
.view-article .com-content-article__body .table td p[style*="color: #ff2f02"] .fas {
    color: #ff2f02 !important;
}

/* ==========================================================================
   RESPONSIVE SLIDESHOW/HERO BANNER STYLES
   ========================================================================== */

/* Mobile - max 480px */
@media (max-width: 480px) {
    .programabovetitle2024,
    h2.programabovetitle2024,
    .container-slideshow h2.programabovetitle2024 {
        font-size: 16px !important;
    }

    .programtitle2024 {
        font-size: 35px !important;
    }

    .mainprogramimg2024 {
        width: 130% !important;
        max-width: 130% !important;
        margin-left: -15% !important;
    }

    .programbeneathtitle2024,
    h3.programbeneathtitle2024,
    .slideshow2024 .programbeneathtitle2024 {
        font-size: 16px !important;
        margin-top: 3px !important;
        margin-bottom: 0px !important;
    }

    .slideshow2024overlay {
        background-color: rgba(0, 0, 0, 0.35) !important;
    }

    /* Fix programcontent positioning for mobile */
    .programcontent2024 {
        left: 0 !important;
        right: 0 !important;
        padding: 0 15px 15px 15px !important;
    }

    /* Fix Bootstrap row overflow on mobile - module content uses BS3 margins (-15px) but Joomla 5 uses BS5 gutters (7.5px) */
    .container-slideshow .mod-custom .container {
        overflow-x: hidden !important;
    }

    /* Fix studieveiledning section overflow on mobile */
    .leadstudyguidance2024content {
        max-width: 100% !important;
        padding: 0 15px !important;
        box-sizing: border-box !important;
    }

    /* Fix studieveiledning image to fill container height */
    .leadstudyguidance2024img {
        width: auto !important;
        height: 100% !important;
        min-width: 100% !important;
        object-fit: cover !important;
    }

    /* Remove extra margins from infobox on mobile to match original */
    .infobox2024 {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 18px !important;
        padding-right: 5px !important;
    }

    /* Fix leadrow2024 margins on mobile to match original */
    .leadrow2024 {
        margin-top: 15px !important;
        margin-bottom: 15px !important;
    }

    /* Fix lead text size and margin on mobile to match original */
    .leadrow2024 p.programlead2024,
    .programlead2024 {
        font-size: 18px !important;
        line-height: 25.2px !important;
        margin-bottom: 20px !important;
    }

    /* Videos section - adjust margins for mobile */
    .videos2024container {
        margin: 10px 0 30px !important;
        padding: 5px 15px !important;
    }

    /* Videos section - stack columns on mobile */
    .videos2024container .col-md-6 {
        width: 100% !important;
        flex: 0 0 100% !important;
        margin-bottom: 15px !important;
    }

    /* Remove border-radius from Bachelor i utlandet on mobile */
    .bachelorutlandet2024infocol {
        border-radius: 0px !important;
    }
}

/* Small tablets - 481px to 767px */
@media (min-width: 481px) and (max-width: 767px) {
    .programtitle2024 {
        font-size: 44px !important;
    }

    .programbeneathtitle2024 {
        font-size: 24px !important;
        margin-top: 3px !important;
    }

    /* Fix programcontent positioning for small tablets */
    .programcontent2024 {
        left: 0 !important;
        right: 0 !important;
        padding: 0 15px 20px 15px !important;
    }
}

/* Medium tablets - 768px to 991px */
@media (min-width: 768px) and (max-width: 991px) {
    .programtitle2024 {
        font-size: 55px !important;
    }

    .programbeneathtitle2024 {
        font-size: 28px !important;
        margin-top: 3px !important;
    }

    /* Fix programcontent positioning for medium tablets */
    .programcontent2024 {
        left: calc((100vw - 720px) / 2 + 15px) !important;
    }
}

/* Large tablets / small desktops - 992px to 1199px (iPad Pro landscape, etc.) */
@media (min-width: 992px) and (max-width: 1199px) {
    /* Fix hero text cut-off - use container width that fits viewport */
    .programcontent2024 {
        left: calc((100vw - 960px) / 2 + 15px) !important;
    }

    /* Center containers properly at this breakpoint */
    .container-footer .container,
    .container-slideshow .container {
        max-width: 960px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
}

/* ==========================================================================
   SHORT COURSE / ENKELTEMNE THUMBNAIL CARDS
   ========================================================================== */

.short-course-thumb {
    background-color: rgb(217, 212, 214);
    border-radius: 30px;
    margin-bottom: 18px;
    overflow: hidden;
}

.short-course-thumb .zoom2024wrap {
    overflow: hidden;
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
}

.short-course-thumb .zoom2024wrap img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.3s ease;
}

.short-course-thumb .zoom2024wrap:hover img {
    transform: scale(1.05);
}

.short-course-thumb-content {
    padding: 25px 10px 20px 30px;
}

.short-course-thumb-content .course-category-heading {
    font-size: 21px !important;
    color: rgb(97, 86, 91) !important;
    font-family: 'Halcyon-Medium', sans-serif !important;
    margin-bottom: 10px !important;
}

.short-course-thumb-content h3 {
    font-size: 24px;
    font-family: 'Halcyon-Medium', sans-serif;
    color: rgb(0, 0, 0);
    margin-bottom: 25px;
    line-height: 1.3;
}

.short-course-thumb-content h3 a {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
    font-family: 'Halcyon-Medium', sans-serif !important;
}

.short-course-thumb-content h3 a:hover {
    color: #d12e1a !important;
    text-decoration: none !important;
}

/* Remove underline from all links in short-course-thumb */
.short-course-thumb a,
.short-course-thumb a:hover,
.short-course-thumb a:focus {
    text-decoration: none !important;
}

.short-course-thumb-content p {
    font-size: 16px;
    color: rgb(51, 51, 51);
    margin-bottom: 8px;
}

.short-course-thumb-content p i {
    margin-right: 10px;
    width: 20px;
    text-align: center;
}

/* Responsive adjustments for course thumbnails */
@media (max-width: 767px) {
    .short-course-thumb-content {
        padding: 20px 15px 15px 20px;
    }

    .short-course-thumb-content .course-category-heading {
        font-size: 18px;
    }

    .short-course-thumb-content h3 {
        font-size: 20px;
        margin-bottom: 15px;
    }
}

/* ==========================================================================
   SERTIFISERINGER PAGE - Article image layout fix
   ========================================================================== */

/* Fix fulltext image float to display full width above title like original */
.com-content-article .item-image.left {
    float: none;
    width: 100%;
    margin-bottom: 10px;
}

.com-content-article .item-image.left img {
    width: 100%;
    height: auto;
}

/* Image caption styling */
.com-content-article .item-image figcaption.caption {
    font-size: 14px;
    color: #666;
    margin-top: 5px;
}

/* ==========================================================================
   ACCORDION PANEL TITLES - Remove underline from accordion toggle links
   ========================================================================== */

/* Accordion panel title links should not be underlined */
.panel-title a {
    text-decoration: none !important;
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
}

/* Studieinfo accordion titles - smaller 21px font */
.studieinfo2024 .panel-title a {
    font-size: 21px !important;
}

.panel-title a:hover {
    text-decoration: none !important;
}

/* AI accordion section - purple/pink theme to match original */
#accordion-ai-section .panel-heading {
    background-color: rgb(233, 216, 230) !important;
}

#accordion-ai-section .panel-body {
    border-left: 2px solid rgb(233, 216, 230) !important;
}

/* AI accordion content heading */
#accordion-ai-section .panel-body h4 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 19px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
}

/* AI accordion content paragraph */
#accordion-ai-section .panel-body p {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 17px !important;
    font-weight: 400 !important;
    color: rgb(51, 51, 51) !important;
}

/* AI accordion title - 24px to match original */
#accordion-ai-section .panel-title a {
    font-size: 24px !important;
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
}

/* ==========================================================================
   HERO IMAGE - Remove top margin for full-width hero images in slideshow position
   ========================================================================== */

/* Hero images in slideshow container should have no top margin */
.container-slideshow img {
    margin-top: 0 !important;
}

/* Remove margin from P element wrapping hero image to prevent extra spacing in grid layout */
.container-slideshow .mod-custom > p:last-child {
    margin-bottom: 0;
}

/* ==========================================================================
   OUTLINE BUTTONS IN ARTICLE CONTENT - Match original site styling
   ========================================================================== */

/* Outline buttons (like "Gå til søknadsside") should use Halcyon-Medium 18px */
.com-content-article__body .btn-default,
.com-content-article__body .btn-lg {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 18px !important;
}

/* ==========================================================================
   BLOG/CATEGORY VIEW - News listing page styling
   ========================================================================== */

/* Article titles in blog view - match original styling */
.blog .page-header h2 a,
.blog .item-title a,
.view-category .page-header h2 a,
.view-category h2 a,
.com-content-category-blog h2 a {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 25.5px !important;
    color: #000 !important;
    text-decoration: none !important;
}

.blog .page-header h2 a:hover,
.blog .item-title a:hover,
.view-category .page-header h2 a:hover,
.view-category h2 a:hover,
.com-content-category-blog h2 a:hover {
    color: #ff2f02 !important;
    text-decoration: none !important;
}

/* Page heading with underline for nyheter/blog pages */
.view-category.com-content-category-blog .page-header h1,
.blog .page-header h1 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 45px !important;
    font-weight: 500 !important;
    color: rgb(51, 51, 51) !important;
    padding-bottom: 15px;
    border-bottom: 1px solid #000;
    margin-bottom: 30px;
}

/* Article images in blog view - rounded corners */
.view-category.com-content-category-blog .blog-items img,
.blog .blog-items img,
.com-content-category-blog article img {
    border-radius: 15px;
}

/* ==========================================================================
   CATEGORY FILTER PILLS - Isotope filtering for nyheter page
   ========================================================================== */

.filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 50px;
}

.filter-pills .pill {
    background-color: transparent;
    color: #ff2f02;
    padding: 10px 22px;
    border-radius: 50px;
    border: 2px solid #ff2f02;
    cursor: pointer;
    font-family: 'Halcyon-Medium', sans-serif;
    font-size: 17px;
    font-weight: 400;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.filter-pills .pill:hover {
    background-color: #fff0ed;
}

.filter-pills .pill.active {
    background-color: #ff2f02;
    color: #fff;
    border-color: #ff2f02;
}

/* Mobile dropdown - hidden by default on desktop */
.filter-dropdown-mobile {
    display: none;
    margin-bottom: 30px;
}

.filter-dropdown-mobile .filter-select {
    width: 100%;
    padding: 12px 16px;
    font-family: 'Halcyon-Medium', sans-serif;
    font-size: 16px;
    color: #333;
    background-color: #fff;
    border: 2px solid #ff2f02;
    border-radius: 8px;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ff2f02' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 40px;
}

.filter-dropdown-mobile .filter-select:focus {
    outline: none;
    border-color: #cc2600;
    box-shadow: 0 0 0 3px rgba(255, 47, 2, 0.15);
}

/* Mobile: Hide pills, show dropdown */
@media (max-width: 768px) {
    .filter-pills {
        display: none !important;
    }

    .filter-dropdown-mobile {
        display: block;
    }
}

/* Blog/Isotope container layout - 2 column grid (e.g., Ledige stillinger) */
/* Constrain page header and breadcrumbs to same width as content */
.view-category .com-content-category-blog .page-header,
.view-category .com-content-category-blog > h1 {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
}

/* Breadcrumbs alignment for category blog pages */
.view-category.layout-blog .container-component > .mod-breadcrumbs__wrapper {
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    display: block;
}

.blog-items.masonry-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
}

.blog-items.masonry-2 .blog-item {
    width: 100% !important;
}

.blog-items.masonry-2 .blog-item img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.blog-items.masonry-2 .blog-item a:hover img {
    opacity: 0.9;
}

.blog-items.masonry-2 .blog-item h2 {
    font-family: 'Halcyon-Medium', sans-serif;
    font-size: 32px;
    font-weight: 500;
    line-height: 1.2;
    margin-top: 15px;
    margin-bottom: 10px;
    color: #000;
}

.blog-items.masonry-2 .blog-item h2 a {
    color: #000;
    text-decoration: none;
}

.blog-items.masonry-2 .blog-item h2 a:hover {
    text-decoration: underline;
}

@media (max-width: 767px) {
    .blog-items.masonry-2 {
        grid-template-columns: 1fr;
    }
}

/* Blog/Isotope container layout - 3 column grid */
.isotope-container.columns-3,
.blog-items.columns-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.isotope-container .blog-item,
.blog-items.columns-3 .blog-item {
    transition: opacity 0.3s ease, transform 0.3s ease;
    width: 100% !important;
    position: relative !important;
    left: auto !important;
    top: auto !important;
}

/* Hidden items when filtered */
.isotope-container .blog-item.isotope-hidden {
    display: none;
}

@media (max-width: 991px) {
    .isotope-container.columns-3,
    .blog-items.columns-3 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .isotope-container.columns-3,
    .blog-items.columns-3 {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   SHORT COURSE (ENKELTEMNER) INFO SECTION
   ========================================================================== */

/* Info section container - grey box with padding and flexbox grid */
.short-course-page-info-section,
.col-md-12.short-course-page-info-section,
div.short-course-page-info-section,
.mod-custom .container .short-course-page-info-section,
.mod-custom .container .col-md-12.short-course-page-info-section {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
    padding-left: 70px !important;
    padding-right: 70px !important;
    margin: 40px 0 0 0 !important;
    background-color: rgb(240, 240, 240) !important;
    overflow: hidden !important;
    display: flex !important;
    flex-wrap: wrap !important;
}

/* Info unit items - 3 columns per row */
.short-course-page-info-unit {
    padding: 0 15px !important;
    font-family: Halcyon-Regular, sans-serif !important;
    font-size: 15px !important;
    width: 33.333% !important;
    flex: 0 0 33.333% !important;
    box-sizing: border-box !important;
}

/* Paragraph styling inside info units */
.short-course-page-info-unit p {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 21px !important;
    font-weight: 400 !important;
    line-height: 33.6px !important;
    margin: 10px 0 !important;
    color: rgb(51, 51, 51) !important;
}

.short-course-page-info-unit i {
    margin-right: 8px !important;
}

/* Responsive adjustments for info section */
@media (max-width: 991px) {
    .short-course-page-info-section,
    .col-md-12.short-course-page-info-section,
    div.short-course-page-info-section,
    .mod-custom .container .short-course-page-info-section,
    .mod-custom .container .col-md-12.short-course-page-info-section {
        padding-top: 20px !important;
        padding-bottom: 20px !important;
        padding-left: 30px !important;
        padding-right: 30px !important;
    }
}

@media (max-width: 767px) {
    /* Fix row margin to match Bootstrap 3 for edge-to-edge sections */
    .mod-custom .container .row {
        margin-left: -15px !important;
        margin-right: -15px !important;
    }

    .short-course-page-info-section,
    .col-md-12.short-course-page-info-section,
    div.short-course-page-info-section,
    .mod-custom .container .short-course-page-info-section,
    .mod-custom .container .col-md-12.short-course-page-info-section {
        padding-top: 20px !important;
        padding-bottom: 20px !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .short-course-page-info-unit {
        padding: 8px 15px !important;
        width: 50% !important;
        flex: 0 0 50% !important;
    }
}

@media (max-width: 480px) {
    .short-course-page-info-unit {
        /* Keep 2 columns on small mobile to match original */
        width: 50% !important;
        flex: 0 0 50% !important;
    }

    .short-course-page-info-unit p {
        font-size: 16px !important;
        line-height: 25.6px !important;
    }
}

/* ==========================================================================
   ACCORDION / PANEL STYLING
   ========================================================================== */

/* Panel container */
.panel {
    background-color: rgb(255, 255, 255) !important;
    border: 0 !important;
    border-radius: 4px !important;
    margin-bottom: 10px !important;
}

/* Panel heading link (accordion header) */
.panel-heading .panel-title a,
.panel-title a {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 17.6px !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

.panel-heading .panel-title a:hover,
.panel-title a:hover {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Panel body */
.panel-body {
    font-family: Halcyon-Regular, sans-serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 27px !important;
    padding: 20px 7px 10px 14px !important;
}

/* Paragraphs inside panel body inherit content styling */
.panel-body p {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 17px !important;
    font-weight: 400 !important;
    line-height: 27.2px !important;
}

/* List items inside panel body */
.panel-body li {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 17px !important;
    font-weight: 400 !important;
    line-height: 28.9px !important;
}

/* Link hover color for article content and panel body - red to match original */
.com-content-article__body a:hover,
.com-content-article__body a:focus,
.panel-body a:hover,
.panel-body a:focus,
.view-article a:hover,
.view-article a:focus {
    color: rgb(255, 47, 2) !important;
    text-decoration: underline !important;
}

/* Links in regular lists (outside panels) - no underline, green hover */
.view-article .com-content-article__body > ul a,
.view-article .com-content-article__body > ul li a,
.com-content-article__body > ul a,
.com-content-article__body > ul li a {
    text-decoration: none !important;
    color: rgb(0, 0, 0) !important;
}

.view-article .com-content-article__body > ul a:hover,
.view-article .com-content-article__body > ul li a:hover,
.com-content-article__body > ul a:hover,
.com-content-article__body > ul li a:hover {
    color: rgb(255, 0, 0) !important;
    text-decoration: none !important;
}

/* H1 in article content - match original site styling */
.com-content-article__body h1:not(.programtitle2024),
.view-article .com-content-article__body h1:not(.programtitle2024) {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 46px !important;
    font-weight: 500 !important;
    line-height: 50.6px !important;
    color: rgb(0, 0, 0) !important;
}

/* Mobile: H1 in article content - smaller size */
@media (max-width: 767px) {
    .com-content-article__body h1:not(.programtitle2024),
    .view-article .com-content-article__body h1:not(.programtitle2024),
    .view-article h1.page-header {
        font-size: 36px !important;
        line-height: 39.6px !important;
    }
}

/* Soknad button styling - match original site (white background variant) */
a.soknad:not(.btn-success),
.com-content-article__body a.soknad:not(.btn-success) {
    font-family: Halcyon-SemiBold, sans-serif !important;
    font-size: 25.5px !important;
    font-weight: 400 !important;
    color: rgb(51, 51, 51) !important;
    background-color: rgb(255, 255, 255) !important;
    padding: 25.5px 16px !important;
    border: 2px solid rgb(204, 204, 204) !important;
    border-radius: 50px !important;
    text-decoration: none !important;
}

a.soknad:not(.btn-success):hover,
.com-content-article__body a.soknad:not(.btn-success):hover {
    background-color: rgb(230, 230, 230) !important;
    border-color: rgb(173, 173, 173) !important;
    color: rgb(51, 51, 51) !important;
    text-decoration: none !important;
}

/* btn-success green button - matches original */
.btn-success,
a.btn-success,
.btn.btn-success {
    background-color: rgb(87, 126, 78) !important;
    border-color: rgb(87, 126, 78) !important;
    color: rgb(255, 255, 255) !important;
}

.btn-success:hover,
a.btn-success:hover,
.btn.btn-success:hover {
    background-color: rgb(69, 101, 62) !important;
    border-color: rgb(69, 101, 62) !important;
    color: rgb(255, 255, 255) !important;
}

/* ===== Contact page (com_contact) styling fixes ===== */

/* Style the H1 to match original contact page heading */
.com-contact .page-header h1,
.com-contact h1 {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 37.5px !important;
    font-weight: 500 !important;
    border-bottom: 2px solid #000 !important;
    padding-bottom: 10px !important;
    margin-bottom: 30px !important;
    display: inline-block !important;
}

/* Hide the fieldset H2 labels (Kontakt, Diverse informasjon) - not in original */
.com-contact .com-contact__container > h2,
.com-contact.contact > h2 {
    display: none !important;
}

/* Allow inline color styles to work on contact page buttons */
.com-contact .contact-misc button[style*="color"],
.com-contact .contact-misc .btn[style*="color"] {
    color: inherit !important;
}

/* Phone buttons - use black text like other buttons */
.com-contact .contact-misc button[style*="#45653e"],
.com-contact .contact-misc .btn[style*="#45653e"] {
    color: #333 !important;
}

/* Remove underline from links wrapping buttons */
.com-contact .contact-misc a {
    text-decoration: none !important;
}

/* Fix button font size to match original (18px) */
.com-contact .contact-misc .btn-default.btn-lg {
    font-size: 18px !important;
}

/* Hide icons in contact page button area only (not on sub-pages like Regnskap) */
.com-contact .contact-misc .btn i,
.com-contact .contact-misc .btn .fa {
    display: none !important;
}

/* Hide Joomla icon-info-circle on contact pages */
.com-contact .com-contact__miscinfo .icon-info-circle,
.com-contact .contact-miscinfo .icon-info-circle {
    display: none !important;
}

/* Fix alignment - remove dd padding in contact pages */
.com-contact .com-contact__miscinfo dd,
.com-contact .contact-miscinfo dd {
    padding-left: 0 !important;
    margin-left: 0 !important;
}

/* Contact page link styling - matches original */
/* Exclude .nounderline links which wrap buttons */
.com-contact .contact-misc a:not(.btn):not(.nounderline),
.com-contact .contact-miscinfo a:not(.btn):not(.nounderline),
.com-contact .com-contact__miscinfo a:not(.btn):not(.nounderline) {
    color: rgb(0, 0, 0) !important;
    text-decoration: underline !important;
    font-family: Halcyon-SemiBold, sans-serif !important;
}

.com-contact .contact-misc a:not(.btn):not(.nounderline):hover,
.com-contact .contact-miscinfo a:not(.btn):not(.nounderline):hover,
.com-contact .com-contact__miscinfo a:not(.btn):not(.nounderline):hover {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Contact page intro text - matches original (21px) */
.com-contact .contact-misc > p:first-of-type,
.com-contact .com-contact__miscinfo > p:first-of-type {
    font-size: 21px !important;
    font-weight: 300 !important;
    font-family: Halcyon-Medium, sans-serif !important;
    line-height: 1.4 !important;
}

/* Bootstrap Glyphicons fallback using Font Awesome */
.glyphicon {
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900;
    font-style: normal;
    display: inline-block;
    margin-right: 8px;
}

.glyphicon-envelope::before {
    content: "\f0e0"; /* FA envelope */
}

.glyphicon-earphone::before {
    content: "\f095"; /* FA phone */
}

.glyphicon-calendar::before {
    content: "\f073"; /* FA calendar */
}

.glyphicon-map-marker::before {
    content: "\f3c5"; /* FA map-marker-alt */
}

/* Google Maps responsive embed - matches original site */
.google-maps {
    position: relative;
    overflow: hidden;
    height: 194px;
    width: 100%;
}

.google-maps iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}

/* ==========================================================================
   TAGS VIEW (Bachelor's Degrees Abroad, etc.)
   ========================================================================== */

/* Tags view h1 page title - matches original: Halcyon-Medium, 46px, 500 weight, black */
.view-tag h1 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 46px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
}

/* Tags view h2 section heading - matches original: Halcyon-Medium, 30px, 500 weight, black */
.view-tag h2,
.view-tag .page-header h2 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
}

/* Tags view links - black with underline, 17px to match original */
.view-tag .mod-custom a {
    font-family: 'Halcyon-SemiBold', sans-serif !important;
    font-size: 17px !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: underline !important;
}

/* Tags view body text - black color to match original */
.view-tag .mod-custom p,
.view-tag .mod-custom {
    color: rgb(0, 0, 0) !important;
}

/* Tags view buttons, panel titles, and h4 heading links - no underline */
.view-tag .mod-custom a.btn,
.view-tag .mod-custom a.btn-cta,
.view-tag .mod-custom .panel-title a,
.view-tag .mod-custom h4 a {
    text-decoration: none !important;
}

/* Tags view btn-cta (Apply now) - 14px white text, 400 weight to match original */
.view-tag .mod-custom a.btn-cta {
    font-size: 14px !important;
    font-weight: 400 !important;
    color: rgb(255, 255, 255) !important;
}

/* Tags view h4 headers - Halcyon-Medium */
.view-tag .mod-custom h4 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 19px !important;
    font-weight: 700 !important;
    color: rgb(0, 0, 0) !important;
}

/* Tags view h4 heading links (university names) - inherit from h4 */
.view-tag .mod-custom h4 a {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 19px !important;
}

/* Tags view panel-title h4 (accordion headers) - 16px, weight 500 */
.view-tag .mod-custom .panel-title,
.view-tag .mod-custom h4.panel-title {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    color: rgb(51, 51, 51) !important;
}

/* Tags view accordion panel title - Halcyon-Medium */
.view-tag .mod-custom .panel-title a {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 16px !important;
}

/* Tags view btn-success - white text */
.view-tag .mod-custom a.btn-success {
    color: rgb(255, 255, 255) !important;
}

/* Tags view thumbnail course name links - 24px Halcyon-Medium to match original */
.view-tag .mod-custom .thumbnail .caption h3 a {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 24px !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Tags view thumbnail h3 - match course name styling */
.view-tag .mod-custom .thumbnail .caption h3 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 24px !important;
    font-weight: 500 !important;
}

/* ==========================================================================
   SHORT COURSE THUMBNAIL CARDS (Masters Abroad, etc.)
   ========================================================================== */

/* Links inside short course thumb content - black, underline, Halcyon-SemiBold */
.short-course-thumb-content p a {
    font-family: 'Halcyon-SemiBold', sans-serif !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: underline !important;
}

/* Hover state - Noroff red, no underline */
.short-course-thumb-content p a:hover {
    color: rgb(255, 47, 2) !important;
    text-decoration: none !important;
}

/* H3 title links - black, no underline */
.short-course-thumb-content h3 a {
    font-family: 'Halcyon-Medium', sans-serif !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* H3 title links hover - Noroff red */
.short-course-thumb-content h3 a:hover {
    color: rgb(255, 47, 2) !important;
}

/* ==========================================================================
   COLLAPSIBLE PANEL / FAQ STYLING
   ========================================================================== */

/* Panel heading padding to match original */
.panel-group .panel-heading {
    padding: 25px 25px 23px 20px !important;
}

/* DEFAULT Panel title link - black, 16px (for tags view, bachelor-abroad, etc.) */
.panel-group .panel-title a,
.panel-group .panel-title a:link,
.panel-group .panel-title a:visited {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
    font-size: 16px !important;
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-weight: 500 !important;
    display: block !important;
}

/* DEFAULT Panel title link hover */
.panel-group .panel-title a:hover,
.panel-group .panel-title a:focus {
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* DEFAULT Arrow icon styling */
.panel-group .panel-title a .fa,
.panel-group .panel-title a .fas,
.panel-group .panel-title a .fa-solid,
.panel-group .panel-title a .fa-chevron-down,
.panel-group .panel-title a .fa-chevron-up,
.panel-group .panel-title a i[class*="fa-"] {
    font-size: 16px !important;
    float: right !important;
}

/* PROGRAM PAGES Panel heading - smaller padding to match original */
.studieinfo2024 .panel-group .panel-heading {
    padding: 15px 20px !important;
}

/* PROGRAM PAGES Panel title - purple/maroon, 21px (inside studieinfo2024 section) */
.studieinfo2024 .panel-group .panel-title a,
.studieinfo2024 .panel-group .panel-title a:link,
.studieinfo2024 .panel-group .panel-title a:visited {
    color: rgb(78, 44, 72) !important;
    font-size: 21px !important;
    line-height: 23.1px !important;
}

/* PROGRAM PAGES Panel title hover */
.studieinfo2024 .panel-group .panel-title a:hover,
.studieinfo2024 .panel-group .panel-title a:focus {
    color: rgb(78, 44, 72) !important;
}

/* PROGRAM PAGES Arrow icon - match text size */
.studieinfo2024 .panel-group .panel-title a .fa,
.studieinfo2024 .panel-group .panel-title a .fas,
.studieinfo2024 .panel-group .panel-title a .fa-solid,
.studieinfo2024 .panel-group .panel-title a i[class*="fa-"] {
    font-size: 21px !important;
}

/* PROGRAM PAGES Mobile spacing - reduce gap below Programme information */
/* Original mobile: margin-bottom: 10px (40px visual gap) */
/* Without this fix: margin-bottom: 70px (70px visual gap) */
@media (max-width: 767px) {
    .studieinfo2024 {
        margin-bottom: 10px !important;
    }
}

/* ==========================================================================
   RELATED NEWS SECTION - spacing fix for view-featured pages
   ========================================================================== */

/* Reduced margin-top to match live site's ~18px gap after Nyheter heading */
/* Negative margin to counteract container spacing from grid layout */
.view-featured .blog-featured {
    margin-top: -17px !important;
}

/* Reset negative margin on news-grid that doesn't exist in original Joomla 3 structure */
.view-featured .blog-featured .news-grid {
    margin-top: 0 !important;
}

/* Add spacing below hero image on article pages - matches original site (~47px gap) */
.view-article .container-slideshow {
    margin-bottom: 47px;
}

/* Hide category page header on study program pages (after Relaterte nyheter module) */
/* But NOT on view-featured pages (e.g., bachelor-utlandet) where the header should be visible */
.container-slideshow ~ .container-component .blog-featured .page-header {
    display: none !important;
}

/* Show the news section header on featured article views (landing pages) */
/* Gap above header should be ~96px to match original */
.view-featured .container-slideshow ~ .container-component .blog-featured .page-header {
    display: block !important;
    margin-top: 70px !important;
}

/* Page header H1 styling for featured view news sections (e.g., bachelor-utlandet) */
.view-featured .blog-featured .page-header h1 {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 46px !important;
    font-weight: 500 !important;
    margin-top: 25px !important;
    margin-bottom: 10px !important;
}

@media (max-width: 767px) {
    .view-featured .blog-featured .page-header h1 {
        font-size: 40px !important;
        line-height: 44px !important;
    }

    /* Restore gutters on mobile for view-featured news section */
    .view-featured .blog-featured .news-grid .row > *,
    .view-featured .blog-featured .news-grid-leading > .col-md-6,
    .view-featured .blog-featured .news-grid-intro > .col-md-4,
    .view-featured .blog-featured .news-grid-intro > .col-sm-6 {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    /* Also ensure the page header has side padding */
    .view-featured .blog-featured .page-header {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
}

/* ==========================================================================
   VIEW-TAG PAGE (Bachelor Abroad, etc.) - spacing fixes
   ========================================================================== */

/* Add spacing before "Programmes that qualify" heading */
/* The h2.page-header is a direct child of mod-custom273, after the FAQ panel-group */
/* Original has ~114px gap */
#mod-custom273 > h2.page-header {
    margin-top: 100px !important;
}

/* ==========================================================================
   SINGLE COURSES PAGE - course box link styling
   ========================================================================== */

/* Course box links should have no underline and red hover color */
/* Very high specificity to override .container-slideshow .mod-custom a:not() rule */
.container-slideshow .mod-custom .container .mod-custom .thumbnail.short-course-thumb .short-course-thumb-content h3 a,
.container-slideshow .mod-custom .mod-custom .thumbnail.short-course-thumb .short-course-thumb-content h3 a,
.mod-custom .thumbnail.short-course-thumb .short-course-thumb-content h3 a,
.thumbnail.short-course-thumb .short-course-thumb-content h3 a {
    text-decoration: none !important;
    color: #000 !important;
    font-family: Halcyon-Medium, sans-serif !important;
}

.container-slideshow .mod-custom .container .mod-custom .thumbnail.short-course-thumb .short-course-thumb-content h3 a:hover,
.container-slideshow .mod-custom .mod-custom .thumbnail.short-course-thumb .short-course-thumb-content h3 a:hover,
.mod-custom .thumbnail.short-course-thumb .short-course-thumb-content h3 a:hover,
.thumbnail.short-course-thumb .short-course-thumb-content h3 a:hover {
    color: #ff2f02 !important;
    text-decoration: none !important;
}

/* ==========================================================================
   EUROPEAN PARTNERS LOGO SECTION - preserve aspect ratios
   ========================================================================== */

/* Partner logos should maintain aspect ratio, not stretch */
.row img[src*="euc-logo"],
.row img[src*="em-lyon"],
.row img[src*="macromedia"],
.row img[src*="noroff.avif"] {
    width: auto !important;
    height: auto !important;
    max-height: 60px !important;
    object-fit: contain !important;
}

/* ==========================================================================
   FAQ ACCORDION STYLING (ARTICLE VIEW)
   Override default 16px for article view FAQ accordions - original uses 21px
   ========================================================================== */

/* Accordion title/heading link in article view - match original 21px size */
.view-article .panel-group .panel-title a,
.view-article .panel-group .panel-title a:link,
.view-article .panel-group .panel-title a:visited,
.view-article .panel-group .panel-heading a,
.view-article .panel-group .panel-heading a:link,
.view-article .panel-group .panel-heading a:visited {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 21px !important;
    font-weight: 500 !important;
    color: #000 !important;
    text-decoration: none !important;
}

/* Accordion body links in article view should have underline */
.view-article .panel-group .panel-body a:not(.btn):not(.nounderline) {
    text-decoration: underline !important;
}

/* Accordion body links hover - red color to match original */
.view-article .panel-group .panel-body a:not(.btn):not(.nounderline):hover,
.view-article .panel-group .panel-body a:not(.btn):not(.nounderline):focus {
    color: rgb(255, 47, 2) !important;
    text-decoration: underline !important;
}

/* ==========================================================================
   ADMISSION PAGES ACCORDION - 16px font (itemid-249, itemid-256, etc.)
   Override the default 21px for admission-related pages
   ========================================================================== */
.itemid-249 .panel-group .panel-title a,
.itemid-249 .panel-group .panel-title a:link,
.itemid-249 .panel-group .panel-title a:visited,
.itemid-256 .panel-group .panel-title a,
.itemid-256 .panel-group .panel-title a:link,
.itemid-256 .panel-group .panel-title a:visited {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 17.6px !important;
}

/* Admission pages accordion panel-heading - match original padding */
.itemid-249 .panel-group .panel-heading,
.itemid-251 .panel-group .panel-heading,
.itemid-256 .panel-group .panel-heading {
    padding: 15px 20px !important;
}

/* Admission pages Apply button - match original styling */
.itemid-249 .btn.btn-success.btn-lg,
.itemid-256 .btn.btn-success.btn-lg {
    font-family: Halcyon-SemiBold, sans-serif !important;
    font-size: 25.5px !important;
    line-height: 33.9px !important;
    padding: 25.5px 16px !important;
    margin-top: 25.5px !important;
    margin-bottom: 25.5px !important;
}

.itemid-249 .btn.btn-success.btn-lg small,
.itemid-256 .btn.btn-success.btn-lg small {
    font-family: Halcyon-SemiBold, sans-serif !important;
    font-size: 20.4px !important;
    line-height: 27.1px !important;
}

/* ==========================================================================
   NEWS PAGINATION - Match original text-only style (no boxes)
   ========================================================================== */
.com-content-category-blog .pagination {
    gap: 0;
}

.com-content-category-blog .pagination .page-item .page-link {
    border: none !important;
    background: transparent !important;
    color: #000 !important;
    padding: 8px 12px !important;
    font-family: Halcyon-Regular, sans-serif !important;
    font-size: 16px !important;
}

.com-content-category-blog .pagination .page-item .page-link:hover {
    background: transparent !important;
    text-decoration: underline !important;
}

.com-content-category-blog .pagination .page-item.active .page-link {
    background: transparent !important;
    color: #000 !important;
    font-weight: bold !important;
}

.com-content-category-blog .pagination .page-item.disabled .page-link {
    color: #999 !important;
}

/* ==========================================================================
   NEWS PAGE MOBILE - Add padding to match original
   ========================================================================== */
@media (max-width: 767px) {
    .com-content-category-blog.blog {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .com-content-category-blog .blog-items {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .com-content-category-blog .blog-item {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .filter-pills {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}


/* ==========================================================================
   BOOTSTRAP 3 TABS - Style for legacy tab markup in articles
   ========================================================================== */

/* Tab navigation container */
.nav-tabs {
    border-bottom: 1px solid #ddd !important;
    list-style: none !important;
    padding-left: 0 !important;
    margin-bottom: 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
}

/* Tab items */
.nav-tabs > li {
    margin-bottom: -1px !important;
    list-style: none !important;
}

/* Tab links */
.nav-tabs > li > a {
    display: block !important;
    padding: 15px 20px !important;
    margin-right: 2px !important;
    border: none !important;
    border-left: 3px solid transparent !important;
    border-radius: 0 !important;
    color: #333 !important;
    text-decoration: none !important;
    background-color: #f8f8f8 !important;
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 18px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}

/* Tab link hover */
.nav-tabs > li > a:hover,
.nav-tabs > li > a:focus {
    background-color: #f0f0f0 !important;
    border-left-color: #ccc !important;
    text-decoration: none !important;
}

/* Active tab */
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
    background-color: #fff !important;
    border-left-color: #4a7c59 !important;
    color: #000 !important;
    border-bottom: 1px solid #fff !important;
    margin-bottom: -1px !important;
}

/* Tab content container */
.tab-content {
    padding: 20px !important;
    border: 1px solid #ddd !important;
    border-top: none !important;
    background-color: #fff !important;
}

/* Tab panes - hide inactive, show active */
.tab-content > .tab-pane {
    display: none !important;
}

.tab-content > .tab-pane.active {
    display: block !important;
}

/* Tab content headings */
.tab-content h3 {
    font-family: Halcyon-Medium, sans-serif !important;
    font-size: 22px !important;
    margin-top: 0 !important;
    margin-bottom: 15px !important;
}

/* ==========================================================================
   TAB JAVASCRIPT WORKAROUND - Inline script styling support
   ========================================================================== */
/* These styles support the JS-based tab switching for legacy Bootstrap 3 tabs */

/* Fix visited link color on tabs */
.nav-tabs > li > a:visited {
    color: #333 !important;
}

.nav-tabs > li.active > a:visited {
    color: #000 !important;
}

/* Fix visited link styling for forside-knapp and nounderline buttons */
a.forside-knapp,
a.forside-knapp:link,
a.forside-knapp:visited,
a.forside-knapp:hover,
a.forside-knapp:active,
a.nounderline,
a.nounderline:link,
a.nounderline:visited,
a.nounderline:hover,
a.nounderline:active {
    text-decoration: none !important;
    color: inherit !important;
}

/* ==========================================================================
   MOBILE FIXES
   ========================================================================== */
@media (max-width: 767px) {
    /* Fix container padding to match original site (15px instead of Cassiopeia default 8.5px) */
    .container {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    /* Prevent long DOI links and URLs from causing horizontal scroll on mobile */
    .com-content-article__body a,
    .mod-custom a,
    .module-content a {
        word-break: break-all;
        overflow-wrap: break-word;
    }

    .com-content-article__body p,
    .mod-custom p,
    .module-content p {
        overflow-wrap: break-word;
        word-wrap: break-word;
    }

    /* Align module content with article content on mobile */
    /* Remove extra padding from moduletable so content aligns with article */
    .container-component .moduletable,
    .grid-child .moduletable {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ==========================================================================
   FOOTER CONTACT BUTTONS - BOOTSTRAP 3 STYLE
   ========================================================================== */
/* Base style for btn-default (Bootstrap 3 compatibility) */
button.btn.btn-default,
.btn.btn-default {
    background-color: #fff !important;
    border-color: #ccc !important;
    color: #333 !important;
}

/* Match Bootstrap 3 btn-default hover state */
button.btn.btn-default:hover,
button.btn.btn-default:focus,
button.btn.btn-default:active,
.btn.btn-default:hover,
.btn.btn-default:focus,
.btn.btn-default:active,
a:hover button.btn.btn-default,
a:hover .btn.btn-default {
    background-color: #e6e6e6 !important;
    border-color: #adadad !important;
    color: #333 !important;
}

/* Ensure no underline on button links */
a .btn,
a:hover .btn,
a:visited .btn {
    text-decoration: none !important;
}

/* Fix links wrapping buttons - remove underline from the <a> element itself */
a.nounderline,
a.nounderline:link,
a.nounderline:visited,
a.nounderline:hover,
a.nounderline:active,
a:has(> button.btn),
a:has(> .btn) {
    text-decoration: none !important;
}

/* Override inline green color on phone buttons - force black text */
/* Exclude bachelorutlandet2024button which needs white text on orange background */
button.btn.btn-default.btn-lg:not(.bachelorutlandet2024button),
.btn.btn-default.btn-lg:not(.bachelorutlandet2024button) {
    color: #333 !important;
}

/* ==========================================================================
   CONTACT PAGE BUTTONS - Match original site exactly
   ========================================================================== */

/* Contact page button container - full width buttons */
.employee-profile__bio .btn.btn-default.btn-lg.btn-block,
.employee-profile__bio button.btn-default.btn-lg.btn-block {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-size: 18px !important;
    padding: 10px 16px !important;
    min-height: 50px !important;
    width: 100% !important;
    max-width: 400px !important;
    white-space: nowrap !important;
}

/* Phone buttons - green text */
.employee-profile__bio .btn.btn-default.btn-lg.btn-block[style*="color: #45653e"],
.employee-profile__bio button.btn-default.btn-lg.btn-block[style*="color: #45653e"] {
    color: #45653e !important;
}

/* Arrow buttons - dark gray text */
.employee-profile__bio .btn.btn-default.btn-lg.btn-block:not([style*="color: #45653e"]),
.employee-profile__bio button.btn-default.btn-lg.btn-block:not([style*="color: #45653e"]) {
    color: #333333 !important;
}

/* Hover state - light gray background */
.employee-profile__bio .btn.btn-default.btn-lg.btn-block:hover,
.employee-profile__bio button.btn-default.btn-lg.btn-block:hover {
    background-color: #e6e6e6 !important;
    border-color: #adadad !important;
}

/* ==========================================================================
   VEV WATERMARK - HIDE
   ========================================================================== */
/* Hide Vev watermark badge on embedded Vev content */
#vevwatermark,
.vev-watermark {
    display: none !important;
}

/* ==========================================================================
   EMPLOYEE LIST - Unified staff page with photos
   ========================================================================== */

/* Container */
.employee-list-container {
    max-width: 900px;
}

/* Search form */
.employee-search {
    display: flex;
    gap: 16px;
    margin-bottom: 40px;
    max-width: 400px;
}

.employee-search .form-control {
    flex: 1;
}

/* Employee list - vertical layout */
.employee-list {
    display: flex;
    flex-direction: column;
}

/* Individual employee item */
.employee-item {
    border-bottom: 1px solid #eee;
    padding: 12px 0;
}

.employee-item:first-child {
    padding-top: 0;
}

.employee-item a {
    display: flex;
    align-items: center;
    gap: 16px;
    text-decoration: none;
    color: inherit;
}

.employee-item a:hover {
    text-decoration: none;
}

.employee-item a:hover .employee-item__name {
    color: #ff2f02;
}

/* Employee photo */
.employee-item__image {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    overflow: hidden;
    background: #e7f1ec;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.employee-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.employee-item__image .icon-user {
    font-size: 24px;
    color: #999;
}

/* Employee info */
.employee-item__info {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}

.employee-item__name {
    font-family: Halcyon-SemiBold, sans-serif;
    font-size: 17px;
    color: #000;
}

.employee-item__position {
    font-size: 15px;
    color: #666;
}

/* Unpublished item */
.employee-item.unpublished {
    opacity: 0.6;
}

/* Pagination */
.employee-pagination {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.employee-pagination .counter {
    color: #666;
    font-size: 14px;
    margin-bottom: 10px;
}

/* Mobile responsive */
@media (max-width: 576px) {
    .employee-page {
        padding-left: 16px;
        padding-right: 16px;
    }

    .employee-search {
        flex-direction: column;
        max-width: 100%;
    }

    .employee-item__info {
        flex-direction: column;
        gap: 2px;
    }

    .employee-item__image {
        width: 50px;
        height: 50px;
    }

    .employee-item__name {
        font-size: 16px;
    }

    .employee-item__position {
        font-size: 14px;
    }
}

/* Hide subcategories on employee page - unified list */
.employee-page .com-contact-category__children,
.employee-page .cat-children {
    display: none;
}

/* ==========================================================================
   PAGINATION - Match original Noroff style (plain text, no boxes)
   ========================================================================== */

/* Employee pagination container */
.employee-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

/* Counter on the right */
.employee-pagination .counter {
    order: 2;
    font-family: Halcyon-Regular, sans-serif;
    font-size: 17px;
    color: #333;
    margin: 0;
}

/* Pagination links container */
.employee-pagination .pagination {
    order: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    border: none;
    background: none;
}

/* Remove default Joomla pagination styling */
.employee-pagination .pagination li {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
}

/* All pagination links and spans */
.employee-pagination .pagination li a,
.employee-pagination .pagination li span {
    display: inline-block;
    padding: 8px 12px;
    font-family: Halcyon-Regular, sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: #333;
    text-decoration: none;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
}

/* Hover state */
.employee-pagination .pagination li a:hover {
    text-decoration: underline;
    color: #000;
}

/* Active/current page */
.employee-pagination .pagination li.active span,
.employee-pagination .pagination li.active a {
    font-weight: 700;
    color: #000;
    background: none !important;
}

/* Disabled state (Start/Forrige when on first page) */
.employee-pagination .pagination li.disabled span,
.employee-pagination .pagination li.disabled a {
    color: #999;
    cursor: default;
}

.employee-pagination .pagination li.disabled a:hover {
    text-decoration: none;
}

/* Mobile responsive */
@media (max-width: 576px) {
    .employee-pagination {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }
    
    .employee-pagination .counter {
        order: 1;
    }
    
    .employee-pagination .pagination {
        order: 2;
    }
    
    .employee-pagination .pagination li a,
    .employee-pagination .pagination li span {
        padding: 6px 8px;
        font-size: 14px;
    }
}

/* Employee search button - remove hover effect */
.employee-search .btn-primary,
.employee-search .btn-primary:hover,
.employee-search .btn-primary:focus,
.employee-search .btn-primary:active {
    background-color: #112855 !important;
    border-color: #112855 !important;
    box-shadow: none !important;
    transform: none !important;
    color: #fff !important;
}

/* Employee page - hide breadcrumb */
.employee-page ~ .container-breadcrumb,
body:has(.employee-page) .container-breadcrumb,
body:has(.employee-page) nav[aria-label="Breadcrumbs"] {
    display: none !important;
}

/* Employee page heading */
.employee-page__heading {
    font-family: Halcyon-SemiBold, sans-serif;
    font-size: 32px;
    font-weight: 600;
    color: #000;
    margin: 40px 0 24px 0;
    padding: 0;
}

/* Employee search input wrapper with clear button */
.employee-search__input-wrapper {
    position: relative;
    flex: 1;
}

.employee-search__input-wrapper .form-control {
    padding-right: 36px;
}

.employee-search__clear {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    line-height: 1;
    color: #999;
    text-decoration: none;
    border-radius: 50%;
    background: #e5e5e5;
}

.employee-search__clear:hover {
    color: #333;
    background: #d5d5d5;
    text-decoration: none;
}

/* ==========================================================================
   EMPLOYEE PROFILE PAGE
   ========================================================================== */

/* Hide breadcrumb on profile page */
body:has(.employee-profile) .container-breadcrumb,
body:has(.employee-profile) nav[aria-label="Breadcrumbs"] {
    display: none !important;
}

/* Back link */
.employee-profile__back {
    display: inline-block;
    margin: 40px 0 24px 0;
    font-family: Halcyon-Regular, sans-serif;
    font-size: 15px;
    color: #333;
    text-decoration: none;
}

.employee-profile__back:hover {
    text-decoration: underline;
}

/* Header section with photo and info */
.employee-profile__header {
    display: flex;
    gap: 40px;
    margin-bottom: 40px;
}

/* Photo */
.employee-profile__image {
    flex-shrink: 0;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    overflow: hidden;
}

.employee-profile__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Info section */
.employee-profile__info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 1140px;
    margin: 0 auto;
    width: 100%;
}

.employee-profile__name {
    font-family: Halcyon-Medium, sans-serif;
    font-size: 37.5px;
    font-weight: 500;
    color: #000;
    margin: 0 0 8px 0;
}

.employee-profile__position {
    font-family: Halcyon-Regular, sans-serif;
    font-size: 18px;
    color: #666;
    margin: 0 0 16px 0;
}

.employee-profile__email {
    font-family: Halcyon-SemiBold, sans-serif;
    font-size: 16px;
    color: #000;
    text-decoration: underline;
}

.employee-profile__email:hover {
    color: #ff2f02;
}

/* Bio section */
.employee-profile__bio {
    max-width: 1140px;
    margin: 0 auto;
    font-family: Halcyon-Regular, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: #333;
}

.employee-profile__bio a {
    font-family: Halcyon-SemiBold, sans-serif;
    color: #000;
    text-decoration: underline;
}

.employee-profile__bio a:hover {
    color: #ff2f02;
}

/* Moduletable centering - align modules with employee profile content */
.container-component > .moduletable {
    max-width: 1140px;
    width: 100%;
    margin: 0 auto;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .employee-profile {
        padding-left: 16px;
        padding-right: 16px;
    }

    .container-component > .moduletable {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    /* Prevent accordion titles from breaking mid-word */
    .panel-heading,
    .panel-heading h4,
    .panel-heading h4 a,
    .panel-title a {
        word-break: keep-all !important;
        overflow-wrap: break-word;
        hyphens: none;
    }

    .employee-profile__header {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
        gap: 24px;
    }

    .employee-profile__image {
        width: 150px;
        height: 150px;
    }

    .employee-profile__name {
        font-size: 26px;
    }
}

/* ==========================================================================
   MOBILE OVERFLOW FIXES
   ========================================================================== */

/* Fix slideshow image overflow on mobile - clip the 130% width bleed effect */
@media (max-width: 480px) {
    .slideshow2024,
    .container-slideshow {
        overflow-x: hidden;
    }
}

/* Fix pagination overflow on mobile - allow horizontal scroll within container */
@media (max-width: 576px) {
    .pagination__wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .pagination {
        flex-wrap: nowrap;
        min-width: max-content;
    }
}

/* Fix Bootstrap row negative margin overflow on mobile */
@media (max-width: 768px) {
    html,
    body {
        overflow-x: hidden !important;
    }

    .container-component,
    .com-content-article {
        overflow-x: hidden !important;
    }
}

/* ==========================================================================
   FOOTER LINK COLOR OVERRIDE - MUST BE LAST IN FILE
   Maximum specificity to override all other rules
   ========================================================================== */
html body footer a,
html body footer.footer a,
html body footer.container-footer a,
html body.site footer a,
html body.site footer.footer a,
html body.com_content footer a,
html body.view-featured footer a,
html body footer p a,
html body footer div a,
html body footer .about a,
html body footer .about p a,
html body footer .grey a,
html body footer .grey p a,
html body footer [class*="col-"] a,
html body footer .row a,
html body footer .row div a,
html body footer .row div p a {
    color: rgba(255, 255, 255, 0.8) !important;
    font-family: 'Halcyon-Regular', sans-serif !important;
    font-weight: 400 !important;
}

html body footer a:hover,
html body footer a:focus,
html body footer.footer a:hover,
html body footer.footer a:focus {
    color: #ffffff !important;
}

/* Footer links - normal weight */
html body footer.container-footer .mod-custom a,
html body footer.container-footer .mod-custom p a,
html body footer .mod-custom.custom a,
html body footer .mod-custom.custom p a,
footer.container-footer .mod-custom a,
footer .mod-custom a,
footer .custom a {
    font-family: 'Halcyon-Regular', sans-serif !important;
    font-weight: 400 !important;
}

/* ==========================================================================
   LEAD FORM SPACING
   ========================================================================== */

/* Add margin between hero image and lead form */
.lead-form {
    margin-top: 40px;
}

/* Lead form title - matches original site */
.lead-form-title {
    font-family: Halcyon-Medium, sans-serif;
    font-size: 46px;
    font-weight: 500;
    color: #000;
    margin: 0 0 20px 0;
}

/* ==========================================================================
   INTERVJUER MED NETTSTUDENTER PAGE - Elevator pitch intro section
   ========================================================================== */

/* Elevator-pitch h3 text - Halcyon-Regular, 24px, line-height 1.3 (matches original) */
.view-featured .container-component .moduletable .elevator-pitch h3,
.view-featured .container-component .mod-custom .elevator-pitch h3,
.container-component .moduletable .elevator-pitch h3 {
    font-family: 'Halcyon-Regular', sans-serif !important;
    font-size: 24px !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
    color: rgb(0, 0, 0) !important;
}

/* Elevator-pitch h3 link - Halcyon-Medium, black, no underline (matches original) */
.elevator-pitch h3 a,
.mod-custom .elevator-pitch h3 a,
.mod-custom.custom .elevator-pitch h3 a {
    font-family: 'Halcyon-Medium', sans-serif !important;
    font-weight: 500 !important;
    color: rgb(0, 0, 0) !important;
    text-decoration: none !important;
}

/* Elevator-pitch h3 link hover - red */
.elevator-pitch h3 a:hover,
.mod-custom .elevator-pitch h3 a:hover,
.mod-custom.custom .elevator-pitch h3 a:hover {
    color: rgb(204, 51, 51) !important;
}

/* Constrain module row width to match original (1170px) on featured/category blog pages */
.view-featured .container-component .moduletable .row,
.view-featured .container-component .mod-custom > .row,
.view-category .container-component .moduletable .row,
.view-category .container-component .mod-custom > .row {
    max-width: 1170px;
    margin-inline: auto;
}
