:root{
    --nl-ink:#151914;
    --nl-muted:#62685e;
    --nl-line:#dfe3da;
    --nl-soft:#f3f7ee;
    --nl-active:#e6eedb;
    --nl-action:#8a9a5b;
    --nl-action-dark:#5f6f42;
    --nl-shade:#2d332c;
    --nl-paper:#fffdf8;
    --nl-gold:#c89b3c;
}

/* ==========================================================
   Standard Typography
   ========================================================== */

.nl-panel h3,
.nl-cta h3,
.nl-related-trip h3{
    font-size:clamp(20px,2vw,24px);
    line-height:1.2;
    font-weight:700;
}

.nl-panel p,
.nl-cta p,
.nl-related-trip p,
.nl-note p,
.nl-tip p,
.nl-inline-cta p{
    font-size: var(--text-m);
    line-height:1.65;
}

/* ==========================================================
   Standard Panel
   ========================================================== */

.nl-panel{
    margin:30px 0;
    border:1px solid var(--nl-line);
    background:#fff;
    padding:24px;
}

.nl-panel h3{
    margin-bottom:10px;
}

.nl-panel p{
    color:var(--nl-muted);
    margin:0 0 12px;
}

.nl-panel p:last-child{
    margin-bottom:0;
}

.nl-panel a{
    font-weight:900;
    color:var(--nl-action-dark);
    text-transform:uppercase;
    font-size: var(--text-s);
}

/* ==========================================================
   CTA Panel
   ========================================================== */

.nl-cta{
    margin:32px 0;
    border:1px solid var(--nl-line);
    border-left:6px solid var(--nl-action);
    background:var(--nl-soft);
    padding:24px 26px;
}

.nl-cta h3{
    margin-bottom:10px;
}

.nl-cta p{
    color:#41493e;
    margin:0 0 13px;
}

.nl-cta p:last-child{
    margin-bottom:0;
}

.nl-cta a{
    display:inline-flex;
    align-items:center;
    color:var(--nl-action-dark);
    font-size: var(--text-s);
    font-weight:950;
    text-transform:uppercase;
}

.nl-cta--booking{
    background:var(--nl-shade);
    border-color:var(--nl-shade);
    border-left-color:var(--nl-action);
    color:#fff;
}

.nl-cta--booking h3{
    color:#fff;
}

.nl-cta--booking p{
    color:#dce1d7;
}

.nl-cta--booking a{
    color:#fff;
}

/* ==========================================================
   Related Trip
   ========================================================== */

.nl-related-trip{
    margin:32px 0;
    border:1px solid var(--nl-line);
    background:#fff;
    display:grid;
    grid-template-columns:190px 1fr;
    align-items:stretch;
}

.nl-related-trip__image{
    min-height:190px;
    background:url("https://natureslenscouk.1wp.site/wp-content/uploads/2025/05/thumbnails/large/An-Atlantic-Puffin-in-flight-bringing-nesting-material-back-to-the-nest-home-page-hero-1024x512.jpg") center/cover;
}

.nl-related-trip__body{
    padding:22px;
}

.nl-related-trip .kicker{
    display:block;
    margin-bottom:8px;
    color:var(--nl-action-dark);
    font-size: var(--text-xs);
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.nl-related-trip h3{
    margin-bottom:8px;
}

.nl-related-trip p{
    color:var(--nl-muted);
    margin-bottom:14px;
}

.nl-related-trip a{
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:0 14px;
    background:var(--nl-action);
    color:#fff;
    font-size: var(--text-s);
    font-weight:950;
    text-transform:uppercase;
}

/* ==========================================================
   Note
   ========================================================== */

.nl-note{
    margin:28px 0;
    border:1px solid var(--nl-line);
    background:#fbfbf8;
    padding:20px 22px;
}

.nl-note strong{
    display:block;
    margin-bottom:6px;
    color:var(--nl-action-dark);
    font-size: var(--text-s);
    font-weight:800;
    text-transform:uppercase;
}

.nl-note p{
    color:var(--nl-muted);
    margin:0;
}

/* ==========================================================
   Tip
   ========================================================== */

.nl-tip{
    margin:28px 0;
    padding:18px 0;
    display:grid;
    grid-template-columns:130px 1fr;
    gap:22px;
    align-items:start;
    border-top:1px solid var(--nl-line);
    border-bottom:1px solid var(--nl-line);
}

.nl-tip strong{
    color:var(--nl-action-dark);
    font-size: var(--text-s);
    font-weight:900;
    text-transform:uppercase;
}

.nl-tip p{
    color:#3f463d;
    margin:0;
}

/* ==========================================================
   Inline CTA
   ========================================================== */

.nl-inline-cta{
    margin:26px 0;
    padding:16px 0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    border-top:1px solid var(--nl-line);
    border-bottom:1px solid var(--nl-line);
}

.nl-inline-cta p{
    color:#343b33;
    margin:0;
}

.nl-inline-cta a{
    flex:0 0 auto;
    color:var(--nl-action-dark);
    font-size: var(--text-s);
    font-weight:950;
    text-transform:uppercase;
}

/* ==========================================================
   Responsive
   ========================================================== */

@media (max-width:700px){

    .nl-related-trip{
        grid-template-columns:1fr;
    }

    .nl-related-trip__image{
        min-height:200px;
    }

    .nl-tip{
        grid-template-columns:1fr;
        gap:8px;
    }

    .nl-inline-cta{
        flex-direction:column;
        align-items:flex-start;
    }
}

.nl-cta a{
    flex:0 0 auto;
    color:var(--nl-action-dark);
    font-size: var(--text-s);
    font-weight:950;
    text-transform:uppercase;
}

.nl-cta p a{
    flex:none;
    color:var(--nl-action-dark);
    font:inherit;
    font-weight:400;
    text-transform:none;
}

.nl-cta p:not(:first-of-type) a{
    flex:none;
    color:var(--nl-action-dark);
    font:inherit;
    font-weight:400;
    text-transform:uppercase;
}