/* DESKTOP — same 1200px layout, colours, fonts and assets as the original website. */

@font-face
{
    font-family: Montserrat;
    src: url('/fonts/Montserrat-VariableFont_wght.woff2') format('woff2'), url('/fonts/Montserrat-VariableFont_wght.ttf') format('truetype');
    font-weight: 100 900;
    font-display: swap;
}

@font-face
{
    font-family: 'Cormorant Garamond';
    src: url('/fonts/CormorantGaramond-Medium.woff2') format('woff2'), url('/fonts/CormorantGaramond-Medium.ttf') format('truetype');
    font-weight: 500;
    font-display: swap;
}

:root
{
    --kleur-rood: #8a191a;
    --kleur-houtskool: #2b2926;
    --kleur-goud: #b58a32;
    --kleur-papier: #f7f6f2;
    --kleur-tekst: #31252b;
    --kleur-zacht: #695961;
    --kleur-lijn: #dedad3;
}

*
{
    box-sizing: border-box;
}

body
{
    margin: 0;
    background: #2b2926;
    color: var(--kleur-tekst);
    font: 16px/1.65 Montserrat, Arial, sans-serif;
}

button, input, select
{
    font: inherit;
}

button, a, input, select, summary
{
    -webkit-tap-highlight-color: transparent;
}

a
{
    color: inherit;
}

button
{
    cursor: pointer;
}

button, select, input
{
    accent-color: var(--kleur-rood);
}

button:disabled
{
    cursor: default;
}

[hidden]
{
    display: none !important;
}

:focus-visible
{
    outline: 3px solid var(--kleur-goud);
    outline-offset: 4px;
}

img
{
    max-width: 100%;
}

h1, h2, h3, p
{
    margin-top: 0;
}

h1, h2, h3
{
    color: var(--kleur-houtskool);
}

h1
{
    font: 500 clamp(2.4rem,4vw,4.6rem)/1.03 'Cormorant Garamond', Georgia, serif;
}

h2
{
    font: 500 2.5rem/1.15 'Cormorant Garamond', Georgia, serif;
}

h3
{
    font-size: 1.1rem;
    line-height: 1.4;
}

.s_site
{
    position: relative;
    min-height: 100vh;
    background: var(--kleur-papier);
    max-width: 1200px;
    margin: 10px auto 40px;
    border-radius: 6px;
    overflow: clip;
}

.s_skip
{
    position: absolute;
    top: -100px;
    z-index: 30;
    padding: 12px 24px;
    background: white;
}

.s_skip:focus
{
    top: 0;
}

.s_header
{
    height: 157px;
    min-height: 157px;
    border-bottom: 1px solid #8a191a;
    position: relative;
}

.s_brand
{
    display: block;
    position: absolute;
    top: 0;
    left: 10px;
    width: 650px;
    max-width: calc(100% - 260px);
    align-self: start;
    z-index: 1;
}

.s_brand img
{
    display: block;
    width: 100%;
    height: auto;
}

.s_menu
{
    position: absolute;
    z-index: 2;
    top: 109px;
    left: 106px;
    display: flex;
    justify-content: flex-start;
    gap: 8.7px;
    padding: 4px;
}

.s_menu a
{
    position: relative;
    text-decoration: none;
    text-transform: uppercase;
    color: var(--kleur-houtskool);
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: .5px;
    line-height: 19px;
    /* Give every label room to click, clear of the logo underneath. */
    padding: 6px 10px 8px;
}

.s_menu a:hover
{
    color: var(--kleur-houtskool);
}

.s_menu a[aria-current]::after
{
    content: '';
    position: absolute;
    bottom: 1px;
    height: 2px;
    left: 10px;
    right: 10px;
    background: var(--kleur-goud);
}

#main
{
    min-height: 60vh;
}

.s_loading
{
    padding: 80px 5%;
}

.s_notice
{
    padding: 18px 5%;
    border-bottom: 1px solid var(--kleur-goud);
    background: #fff5d9;
    white-space: pre-wrap;
}

.s_knop
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 38px;
    padding: 8px 14px;
    border: 1px solid var(--kleur-rood);
    background: var(--kleur-rood);
    color: white;
    text-decoration: none;
    font-size: .8125rem;
    line-height: 1.4;
    font-weight: 500;
}

@media (pointer: coarse)
{
    .s_knop { min-height: 44px; }
}

.s_knop:hover
{
    background: #8a191a;
}

.s_knop_licht
{
    color: var(--kleur-rood);
    background: transparent;
}

.s_knop_licht:hover
{
    background: #ece9e1;
}

.s_kicker
{
    color: var(--kleur-zacht);
    font-size: .875rem;
    text-transform: uppercase;
    letter-spacing: .13em;
}

.s_muted
{
    color: var(--kleur-zacht);
    font-size: .875rem;
}

.s_preline
{
    white-space: pre-line;
}

.s_hero
{
    position: relative;
    display: flex;
    isolation: isolate;
    min-height: 676px;
    align-items: start;
}

.s_hero > img
{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: center;
    z-index: -2;
}

.s_hero::before
{
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,rgba(247,246,242,.82),rgba(247,246,242,.55) 32%,transparent 64%);
    z-index: -1;
    display: none;
}

.s_hero_copy
{
    width: 100%;
}

.s_hero h1
{
    position: absolute;
    top: 100px;
    left: 50px;
    width: 600px;
    font: 500 50px/normal Montserrat,sans-serif;
    margin: 0;
}

.s_hero h1 span
{
    display: block;
    position: absolute;
    top: 75px;
    left: 0;
    font-size: 45px;
    color: var(--kleur-goud);
    margin: 0;
}

.s_hero_copy > p:not(.s_kicker)
{
    position: absolute;
    top: 265px;
    left: 50px;
    width: 600px;
    font-size: 18px;
    font-weight: 500;
    color: var(--kleur-houtskool);
    line-height: 1.5;
    max-width: 510px;
    margin-bottom: 0;
}

.s_categories
{
    display: grid;
    grid-template-columns: repeat(7,minmax(0,1fr));
    padding: 10px 0 8px;
    border: 0;
}

.s_categories a
{
    text-align: center;
    text-decoration: none;
    font-size: 13px;
    line-height: 17px;
    padding: 0;
    border-right: 1px solid var(--kleur-lijn);
    color: var(--kleur-houtskool);
}

.s_categories a:last-child
{
    border: 0;
}

.s_categories img
{
    display: block;
    object-fit: contain;
    margin: 0 auto 9px;
    width: 70px;
    height: 70px;
}

.s_categories a:hover
{
    background: #ece9e1;
}

.s_home_intro
{
    text-align: center;
    padding: 40px 20px 35px;
}

.s_home_intro p
{
    margin: 0;
}

.s_page_head
{
    padding: 25px 20px 0;
}

.s_page_head h1
{
    font-size: 32px;
    margin-bottom: 6px;
}

.s_page_head p
{
    max-width: 820px;
    margin-bottom: 12px;
}

.s_catalog
{
    display: grid;
    align-items: start;
    padding: 20px;
    grid-template-columns: 240px minmax(0,1fr);
    gap: 20px;
}

.s_filter_head
{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px solid var(--kleur-rood);
    padding-bottom: 14px;
}

.s_filter_head h2
{
    font: 600 1.1rem/1.4 Montserrat,sans-serif;
    margin: 0;
}

.s_clear
{
    color: var(--kleur-houtskool);
    border: 0;
    background: none;
    text-decoration: underline;
    font-size: .875rem;
    padding: 6px 0;
}

.s_filters details
{
    border-bottom: 1px solid var(--kleur-lijn);
    padding: 12px 0;
}

.s_filters summary
{
    cursor: pointer;
    color: var(--kleur-houtskool);
    font-size: .875rem;
    font-weight: 600;
    padding: 3px 0;
}

.s_filter_help
{
    font-size: .875rem;
    margin: 12px 0;
    color: var(--kleur-zacht);
}

.s_choice
{
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-size: .875rem;
    line-height: 1.5;
    padding: 7px 0;
    cursor: pointer;
}

.s_choice input
{
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    margin: 0;
}

.s_choice span
{
    flex: 1;
}

.s_choice small
{
    color: var(--kleur-zacht);
    font-size: .75rem;
}

.s_toolbar
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 24px;
    min-height: 49px;
    border-bottom: 1px solid var(--kleur-lijn);
    padding-bottom: 14px;
}

.s_toolbar p
{
    margin: 0;
    font-size: .875rem;
}

.s_toolbar label
{
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--kleur-houtskool);
    font-size: .875rem;
}

.s_toolbar select
{
    background: transparent;
    color: var(--kleur-houtskool);
    border: 1px solid var(--kleur-lijn);
    padding: 6px;
    max-width: 230px;
    font-size: .875rem;
}

.s_grid
{
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 20px;
}

.s_card
{
    min-width: 0;
    display: flex;
    flex-direction: column;
    border-bottom: 1px solid var(--kleur-lijn);
    padding: 12px;
    border: 1px solid #dedad3;
    border-radius: 6px;
    background: rgba(255,255,255,.25);
}

.s_card_media
{
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1/1.06;
    text-decoration: none;
    background: transparent;
    padding: 0;
}

.s_card_media img
{
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform .2s;
}

.s_card_media:hover img
{
    transform: scale(1.035);
}

/* BB005's transparent photo has a wide canvas; keep the full grinder in view. */
.s_card_media img[src="/i/grinders/bb005.png"],
.s_product_photo img[src="/i/grinders/bb005.png"]
{
    object-fit: cover;
}

.s_card_body
{
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 18px 0;
}

.s_card h2
{
    font: 600 1.1rem/1.4 Montserrat,sans-serif;
    margin-bottom: 10px;
    font-size: 16px;
    font-weight: 500;
}

.s_card h2 a
{
    text-decoration: none;
}

.s_card h2 a:hover
{
    text-decoration: underline;
}

.s_card .s_short
{
    font-size: .875rem;
    line-height: 1.7;
    color: var(--kleur-zacht);
    font-weight: 300;
}

.s_card_bottom
{
    margin-top: auto;
    padding-top: 8px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: end;
    gap: 12px;
}

.s_price
{
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--kleur-goud);
    margin: 0;
}

.s_price small
{
    display: block;
    color: var(--kleur-zacht);
    font-size: .75rem;
    font-weight: 400;
}

.s_view
{
    font-size: .875rem;
    color: var(--kleur-rood);
    text-underline-offset: 5px;
}

.s_badge
{
    color: #3f5835;
    font-size: .75rem;
    margin-bottom: 10px;
}

.s_empty
{
    padding: 40px 0;
}

.s_chips
{
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.s_chip
{
    font-size: .875rem;
    border: 1px solid var(--kleur-lijn);
    background: #ece9e1;
    color: var(--kleur-rood);
    padding: 4px 10px;
}

.s_detail
{
    /* One shared inset keeps the photo, prices and feature tables aligned. */
    padding: 16px 50px 40px;
}

.s_back
{
    display: inline-block;
    margin-bottom: 24px;
    color: var(--kleur-houtskool);
    font-size: .875rem;
    text-underline-offset: 4px;
}

.s_accessory_catalogue .s_page_head,
.s_coffee_catalogue .s_page_head,
.s_grinder_catalogue .s_page_head
{
    padding: 30px 50px 12px;
}

.s_accessory_catalogue .s_page_head > p:last-child,
.s_coffee_catalogue .s_page_head > p:last-child,
.s_grinder_catalogue .s_page_head > p:last-child
{
    display: block;
    color: var(--kleur-zacht);
    font-size: .875rem;
}

.s_accessory_catalogue .s_catalog,
.s_coffee_catalogue .s_catalog,
.s_grinder_catalogue .s_catalog
{
    padding: 16px 50px 40px;
    grid-template-columns: 190px minmax(0,1fr);
    gap: 26px;
}

.s_accessory_ssr_grid,
.s_coffee_ssr_grid,
.s_grinder_ssr_grid
{
    padding: 16px 50px 40px;
}

.s_accessory_search,
.s_coffee_search,
.s_grinder_search
{
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 18px;
    font-size: .875rem;
}

.s_accessory_search input,
.s_coffee_search input,
.s_grinder_search input
{
    width: 100%;
    padding: 11px 13px;
    border: 1px solid var(--kleur-lijn);
    border-radius: 3px;
    background: #fcfbf8;
    color: var(--kleur-rood);
    font: inherit;
}

.s_accessory_card .s_card_media,
.s_coffee_card .s_card_media,
.s_grinder_card .s_card_media
{
    aspect-ratio: 1;
}

.s_accessory_code,
.s_coffee_code,
.s_grinder_code
{
    font: 400 11px/1.5 Montserrat,Arial,sans-serif;
    color: var(--kleur-zacht);
    letter-spacing: .4px;
    overflow-wrap: anywhere;
}

.s_accessory_price,
.s_coffee_price,
.s_grinder_price
{
    margin-top: auto;
    padding-top: 20px;
    text-align: right;
}

.s_product
{
    display: grid;
    align-items: start;
    grid-template-columns: minmax(280px,40%) minmax(0,1fr);
    gap: 35px;
}

.s_product_photo
{
    aspect-ratio: 1;
    padding: 0;
    background: transparent;
}

.s_product_photo img
{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.s_product_heading
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 10px;
}

.s_product_visual
{
    min-width: 0;
}

.s_detail_navigation
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 12px;
}

.s_product_information
{
    min-width: 0;
}

.s_back_collection
{
    display: inline-flex;
    align-items: center;
    gap: 16px;
    min-height: 44px;
    margin: 0;
    padding: 9px 20px;
    border: 1px solid #b58a3280;
    border-radius: 3px;
    background: #fcfbf8;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    font-size: 11px;
    font-weight: 500;
    transition: background .2s, color .2s;
}

.s_back_collection::before
{
    content: '';
    display: block;
    flex: 0 0 7px;
    width: 7px;
    height: 7px;
    color: var(--kleur-goud);
    border-left: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-1px) rotate(45deg);
}

.s_back_collection:hover
{
    background: var(--kleur-rood);
    color: var(--kleur-papier);
}

.s_product_heading .s_favourite
{
    flex: 0 0 44px;
    margin: 0;
    background: transparent;
    border: 0;
}

.s_product_copy
{
    font: 400 13px/1.75 Montserrat,Arial,sans-serif;
    color: var(--kleur-houtskool);
}

.s_product_copy p
{
    margin-bottom: 14px;
}

.s_colours
{
    display: flex;
    flex-wrap: wrap;
    align-items: start;
    gap: 14px;
    margin: 22px 0 14px;
    padding: 0;
    list-style: none;
}

.s_colours li
{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    max-width: 100px;
    text-align: center;
    font-size: 11px;
    color: var(--kleur-houtskool);
}

.s_colour_choice
{
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 5px;
    cursor: pointer;
}

.s_colour_choice input
{
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.s_colour_choice input:checked + img,
.s_colour_choice input:checked + .s_colour_unknown
{
    border-radius: 50%;
    outline: 2px solid var(--kleur-rood);
    outline-offset: 3px;
}

.s_colour_choice input:checked ~ span:last-child
{
    font-weight: 700;
}

.s_colour_choice input:focus-visible + img,
.s_colour_choice input:focus-visible + .s_colour_unknown
{
    outline: 3px solid var(--kleur-goud);
    outline-offset: 4px;
}

.s_colours img, .s_colour_unknown
{
    display: block;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    object-fit: contain;
}

.s_colour_unknown
{
    border: 1px solid var(--kleur-lijn);
    border-radius: 50%;
}

.s_product_heading h1
{
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    font: 600 30px/1.15 'Cormorant Garamond',Georgia,serif;
}

.s_config_top .s_price
{
    margin: 0 0 0 auto;
    font-size: 23px;
    font-weight: 500;
    color: var(--kleur-goud);
    white-space: nowrap;
    text-align: right;
}

.s_config_top .s_price small
{
    font-size: 10px;
    letter-spacing: .3px;
}

.s_subtitle
{
    font: normal 500 25px/1.25 'Cormorant Garamond',Georgia,serif;
    color: #92723e;
    margin-bottom: 18px;
}

.s_machine_actions
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-top: 22px;
}

.s_machine_actions .s_knop
{
    padding: 8px 14px;
    font-size: 13px;
}

.s_config
{
    margin: 12px 0 0;
}

.s_config_top
{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    margin-bottom: 6px;
}

.s_option
{
    display: grid;
    grid-template-columns: 20px minmax(0,1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 8px 0;
    border-bottom: 1px solid var(--kleur-lijn);
    cursor: pointer;
    font-size: .8rem;
    line-height: 1.4;
}

.s_option input
{
    width: 17px;
    height: 17px;
    margin: 0;
}

.s_option strong
{
    font-weight: 500;
    white-space: nowrap;
}

.s_total
{
    display: flex;
    align-items: baseline;
    gap: 16px;
    margin-top: 12px;
    border-left: 3px solid var(--kleur-goud);
    padding: 4px 0 4px 18px;
}

.s_total p
{
    margin: 0;
}

.s_total .s_muted
{
    min-width: 0;
}

.s_total .s_price
{
    flex-shrink: 0;
    margin-left: auto;
    text-align: right;
    white-space: nowrap;
}

.s_configuration_note
{
    margin: 8px 0 0;
    font-size: .875rem;
    color: var(--kleur-houtskool);
}

.s_configuration_note:empty
{
    display: none;
}

.s_config ul
{
    margin: 0;
    padding-left: 20px;
    font-size: .8rem;
    line-height: 1.4;
}

.s_config li
{
    padding: 6px 0;
}

.s_config .s_colours
{
    gap: 10px;
    margin: 0;
    padding: 0;
}

.s_config .s_colours li
{
    padding: 0;
}

.s_config .s_colour_choice
{
    min-width: 44px;
    gap: 4px;
}

/* A single colour reads as one compact row beside its circle. */
.s_config .s_colours li:only-child
{
    max-width: none;
    text-align: left;
}

.s_config .s_colours li:only-child .s_colour_choice
{
    flex-direction: row;
    gap: 8px;
}

/* Use the spare height beside the photo, without fixing the content height. */
@media (min-width: 761px)
{
    .s_product_information
    {
        align-self: stretch;
        display: flex;
        flex-direction: column;
    }

    .s_product_information > .s_config
    {
        margin-top: auto;
        padding-top: 12px;
    }
}

.s_product_documents
{
    margin-top:24px;
    padding:20px 0 0;
    border-top:1px solid var(--kleur-lijn);
}
.s_product_documents h2 { margin:0 0 12px; font-size:17px; }
.s_product_documents > div { display:flex; flex-wrap:wrap; gap:12px; }
.s_product_documents a
{
    display:flex;
    align-items:center;
    gap:12px;
    padding:13px 16px;
    border:1px solid var(--kleur-lijn);
    border-radius:3px;
    color:inherit;
    text-decoration:none;
}
.s_product_documents a:hover, .s_product_documents a:focus-visible { border-color:var(--kleur-goud); background:rgba(255,255,255,.35); }
.s_product_documents svg { flex-shrink:0; color:var(--kleur-goud); }
.s_product_documents small { font-size:10px; letter-spacing:.08em; color:var(--kleur-goud); }

.s_specifications
{
    margin-top: 26px;
}

.s_spec_columns
{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.s_feature_group
{
    margin: 0 0 12px;
    border: 1px solid #dedad3;
    border-radius: 4px;
    overflow: hidden;
    background: rgba(255,255,255,.25);
}

.s_feature_group h2
{
    padding: 7px 12px;
    margin: 0;
    border-bottom: 1px solid #dedad3;
    background: #ece9e1;
    font: 600 12px/1.4 Montserrat,Arial,sans-serif;
}

.s_feature_group dl
{
    margin: 0;
}

.s_spec_row
{
    display: grid;
    grid-template-columns: 55% 45%;
    gap: 0;
    border-bottom: 1px solid var(--kleur-lijn);
    padding: 0;
    font: 400 11px/1.6 Montserrat,Arial,sans-serif;
    color: var(--kleur-houtskool);
}

.s_spec_row:last-child
{
    border-bottom: 0;
}

.s_spec_row dt
{
    padding: 5px 12px;
    border-right: 1px solid var(--kleur-lijn);
}

.s_spec_row dd
{
    margin: 0;
    padding: 5px 12px;
    overflow-wrap: anywhere;
}

.s_placeholder
{
    padding: 60px 5% 100px;
    max-width: 850px;
}

.s_legal
{
    max-width: 960px;
    margin: 0 auto;
    padding: 30px 40px 60px;
}

/* FAVORIETEN ---------------------------------------------------------------------------------------------------------------------------- */
.s_card_image, .s_home_intro article, .s_top_icons [data-header-action="favourites"]
{
    position: relative;
}

.s_favourite
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 44px;
    min-height: 44px;
    padding: 9px;
    border: 1px solid var(--kleur-lijn);
    border-radius: 50%;
    background: var(--kleur-papier);
    color: var(--kleur-rood);
}

.s_favourite svg
{
    flex: 0 0 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linejoin: round;
}

.s_favourite[aria-pressed="true"] svg
{
    fill: currentColor;
}

.s_favourite:hover, .s_favourite[aria-pressed="true"]
{
    border-color: var(--kleur-goud);
}

.s_card_image > .s_favourite, .s_home_intro article > .s_favourite
{
    position: absolute;
    top: 8px;
    right: 8px;
}

.s_favourite_text
{
    width: auto;
    border-radius: 3px;
    padding: 8px 14px;
    margin: 0 0 22px;
    font-size: 13px;
}

.s_favourite_count
{
    position: absolute;
    top: -4px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 20px;
    background: var(--kleur-rood);
    color: var(--kleur-papier);
    font: 600 10px/18px Montserrat,sans-serif;
    text-align: center;
}

.s_favourites .s_page_head.s_favourites_head > p
{
    display: block;
    font-size: 14px;
    color: var(--kleur-zacht);
}

.s_favourites_list
{
    padding: 20px 20px 45px;
}

.s_favourite_notice
{
    position: fixed;
    z-index: 5;
    right: max(20px,calc((100vw - 1160px) / 2));
    bottom: 24px;
    max-width: min(380px,calc(100vw - 40px));
    padding: 14px 18px;
    border: 1px solid var(--kleur-goud);
    background: var(--kleur-papier);
    color: var(--kleur-rood);
    box-shadow: 0 3px 15px #8a191a20;
    font-size: 13px;
    pointer-events: none;
}

.s_legal_nav
{
    display: flex;
    flex-wrap: wrap;
    gap: 10px 28px;
    margin-bottom: 35px;
    font-size: 13px;
    color: var(--kleur-houtskool);
}

.s_legal_nav a
{
    padding: 6px 0;
    border-bottom: 2px solid transparent;
    text-decoration: none;
}

.s_legal_nav a:hover, .s_legal_nav a[aria-current]
{
    border-bottom-color: var(--kleur-goud);
}

.s_legal h1
{
    font-size: 36px;
    line-height: 1.2;
    margin-bottom: 24px;
}

.s_legal_text
{
    max-width: 78ch;
    font-size: 15px;
    line-height: 1.8;
    overflow-wrap: anywhere;
}

.s_legal_text h2
{
    font: 600 17px/1.5 Montserrat,Arial,sans-serif;
    margin: 32px 0 12px;
}

.s_legal_text p, .s_legal_text ul
{
    margin: 0 0 18px;
}

.s_legal_text ul
{
    padding-left: 23px;
}

.s_legal_text li + li
{
    margin-top: 5px;
}

.s_footer
{
    color: var(--kleur-houtskool);
    font-size: 13px;
    line-height: 16px;
}

.s_footer_main
{
    display: grid;
    grid-template-columns: 270px repeat(4,144px) minmax(0,1fr);
    min-height: 236px;
}

.s_footer h2
{
    margin: 0 0 10px;
    font: 600 13px/16px Montserrat,Arial,sans-serif;
    text-transform: uppercase;
}

.s_footer a, .s_footer button
{
    color: inherit;
    text-decoration: none;
}

.s_footer button
{
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    text-align: left;
}

.s_footer a:hover, .s_footer button:hover
{
    color: var(--kleur-houtskool);
}

.s_footer_brand
{
    padding: 0 32px 20px 20px;
}

.s_footer_logo
{
    display: block;
    height: auto;
    width: 180px;
}

.s_footer_brand p
{
    padding-left: 10px;
    margin: 4px 0 10px;
}

.s_footer_social
{
    display: flex;
    align-items: center;
    padding-left: 5px;
}

.s_footer_social button
{
    flex: 0 0 35px;
}

.s_footer_social img
{
    display: block;
    height: auto;
}

.s_footer_column
{
    padding: 30px 10px 20px;
}

.s_footer_column ul
{
    list-style: none;
    margin: 0;
    padding: 0;
}

.s_footer_column li + li
{
    margin-top: 10px;
}

.s_footer_newsletter
{
    padding: 30px 32px 20px 30px;
}

.s_footer_newsletter p
{
    max-width: 280px;
    margin: 0 0 10px;
}

.s_footer_newsletter input
{
    display: block;
    width: 212px;
    max-width: 100%;
    height: 29px;
    border: 1px solid #8a191a;
    border-radius: 5px;
    background: white;
    color: var(--kleur-rood);
    padding: 0 8px;
}

.s_footer .s_footer_subscribe
{
    display: block;
    width: 214px;
    max-width: 100%;
    height: 33px;
    margin-top: 10px;
    border: 1px solid white;
    border-radius: 4px;
    background: var(--kleur-goud);
    color: white;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: .5px;
    text-align: center;
    text-transform: uppercase;
}

.s_footer .s_footer_subscribe:hover
{
    background: #a87b28;
}

.s_footer_notice
{
    margin: 0;
    padding: 0 30px 20px;
}

.s_footer_bottom
{
    display: grid;
    grid-template-columns: 467px minmax(0,1fr) auto;
    align-items: center;
    padding: 15px 32px;
    border-top: 1px solid #8a191a;
}

.s_footer_legal
{
    display: flex;
    gap: 40px;
    align-items: center;
}

.s_footer_domain
{
    font-weight: 600;
    letter-spacing: 1.5px;
}

.s_header_right
{
    position: absolute;
    top: 7px;
    left: 975px;
}

.s_languages
{
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--kleur-houtskool);
}

.s_languages a
{
    text-decoration: none;
    padding: 0 0 5px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: none;
    font-size: .875rem;
    font-weight: 600;
    line-height: 19px;
    letter-spacing: .5px;
    color: var(--kleur-houtskool);
}

.s_languages a[aria-current]
{
    border-bottom-color: var(--kleur-goud);
}

.s_languages span
{
    font-size: .875rem;
    font-weight: 300;
}

.s_top_icons
{
    position: absolute;
    top: 58px;
    left: 15px;
    display: flex;
    align-items: center;
    gap: 15px;
    width: 185px;
    padding: 0;
}

.s_top_icons button
{
    flex: 0 0 35px;
    border: 0;
    padding: 0;
    background: none;
}

.s_top_icons img
{
    display: block;
    width: 35px;
    height: 35px;
    object-fit: contain;
}

.s_search
{
    display: flex;
    flex-wrap: wrap;
    padding: 15px 30px;
    align-items: center;
    gap: 18px;
    border-bottom: 1px solid var(--kleur-lijn);
}

.s_search input
{
    padding: 8px 12px;
    background: #fcfbf8;
    border: 1px solid var(--kleur-goud);
    flex: 1;
    min-width: 180px;
}

.s_hero .s_knop
{
    position: absolute;
    top: 545px;
    left: 50px;
    margin: 0;
    padding: 4px 10px;
    height: 40px;
    min-height: 40px;
    font-size: 20px;
    font-weight: 300;
    letter-spacing: .5px;
    border: 1px solid white;
}

.s_categories strong
{
    display: block;
    text-transform: uppercase;
    font-size: 13px;
    line-height: 17px;
    font-weight: 400;
}

.s_categories span
{
    display: block;
    font-size: 13px;
    line-height: 17px;
    padding: 7px 20px 0;
}

.s_home_intro h2
{
    font: 500 18px/1.5 Montserrat,sans-serif;
    letter-spacing: 2px;
    margin-bottom: 22px;
}

.s_home_intro article
{
    background: white;
    padding: 20px;
    border: 1px solid #dedad3;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.s_home_intro article img
{
    width: 260px;
    height: 270px;
    object-fit: contain;
}

.s_home_intro article h3
{
    font-size: 15px;
    font-weight: 500;
}

.s_home_intro article p
{
    font-size: 15px;
    font-weight: 300;
    margin-bottom: 20px;
}

.s_home_intro article .s_price
{
    margin-top: auto;
    margin-bottom: 0;
    font-size: 17px;
    font-weight: 500;
}

.s_service_strip
{
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    padding: 20px 7px;
    background: #ece9e1;
    border-top: 1px solid var(--kleur-goud);
    border-bottom: 1px solid var(--kleur-goud);
}

.s_service_strip > div
{
    display: flex;
    gap: 8px;
    padding: 0 8px;
    border-right: 1px solid #ded8ca;
}

.s_service_strip > div:last-child
{
    border: 0;
}

.s_service_strip img
{
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
}

.s_service_strip p
{
    margin: 0;
    font-size: .875rem;
    color: var(--kleur-rood);
    line-height: 1.5;
}

.s_service_strip strong
{
    display: block;
    font-weight: 500;
    white-space: pre-line;
    text-transform: uppercase;
}

.s_service_strip span
{
    display: block;
    font-weight: 300;
}

.s_page_head .s_kicker, .s_page_head > p:last-child
{
    display: none;
}

.s_card .s_price
{
    font-size: 17px;
}

@media (max-width: 1199px)
{
    .s_footer_main
    {
        grid-template-columns: 240px repeat(4,minmax(0,1fr));
    }

    .s_footer_newsletter
    {
        grid-column: 1 / -1;
        padding-top: 10px;
    }

    .s_footer_bottom
    {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 20px;
    }

    .s_footer_legal
    {
        flex-wrap: wrap;
        gap: 15px 25px;
    }

    .s_header_right
    {
        left: auto;
        right: 25px;
    }

    .s_menu
    {
        gap: calc(2.5vw - 20px);
    }
}

@media (max-width: 1050px)
{
    .s_accessory_catalogue .s_page_head, .s_accessory_catalogue .s_catalog, .s_accessory_ssr_grid,
    .s_coffee_catalogue .s_page_head, .s_coffee_catalogue .s_catalog, .s_coffee_ssr_grid,
    .s_grinder_catalogue .s_page_head, .s_grinder_catalogue .s_catalog, .s_grinder_ssr_grid
    {
        padding-right: 30px;
        padding-left: 30px;
    }

    .s_detail
    {
        padding-right: 30px;
        padding-left: 30px;
    }

    .s_header
    {
        height: 118px;
        min-height: 118px;
        border-bottom: 0;
    }

    .s_menu
    {
        position: relative;
        top: auto;
        left: auto;
        justify-content: center;
        flex-wrap: wrap;
        gap: 8px;
        padding: 4px 15px 8px;
        border-bottom: 1px solid #8a191a;
    }

    .s_hero_copy
    {
        width: 100%;
    }

    .s_hero h1
    {
        width: calc(100% - 100px);
        font-size: 40px;
    }

    .s_hero_copy > p:not(.s_kicker)
    {
        width: calc(100% - 100px);
    }

    .s_hero > img
    {
        height: 100%;
    }

    .s_hero h1 span
    {
        font-size: 38px;
    }

    .s_categories
    {
        grid-template-columns: repeat(4,minmax(0,1fr));
    }

    .s_service_strip
    {
        grid-template-columns: repeat(3,minmax(0,1fr));
        gap: 20px 0;
    }

    .s_grid
    {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .s_product
    {
        grid-template-columns: 38% minmax(0,1fr);
    }

}

@media (max-width: 760px)
{
    .s_accessory_catalogue .s_page_head, .s_accessory_catalogue .s_catalog, .s_accessory_ssr_grid,
    .s_coffee_catalogue .s_page_head, .s_coffee_catalogue .s_catalog, .s_coffee_ssr_grid,
    .s_grinder_catalogue .s_page_head, .s_grinder_catalogue .s_catalog, .s_grinder_ssr_grid
    {
        padding-right: 20px;
        padding-left: 20px;
    }

    .s_accessory_catalogue .s_catalog,
    .s_coffee_catalogue .s_catalog,
    .s_grinder_catalogue .s_catalog
    {
        grid-template-columns: 1fr;
    }

    .s_detail
    {
        padding-right: 20px;
        padding-left: 20px;
    }

    .s_legal
    {
        padding: 24px 20px 45px;
    }

    .s_legal h1
    {
        font-size: 28px;
    }

    .s_site
    {
        margin: 0;
        border-radius: 0;
    }

    .s_header
    {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px;
        padding: 10px;
        height: auto;
    }

    .s_brand
    {
        position: static;
        max-width: 100%;
        width: 650px;
        margin: 0;
    }

    .s_header_right
    {
        position: static;
        margin: 0;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px 25px;
        align-items: center;
        padding: 0;
    }

    .s_top_icons
    {
        position: static;
        gap: 12px;
        width: auto;
        padding: 0;
    }

    .s_top_icons button
    {
        flex-basis: 28px;
    }

    .s_top_icons img
    {
        width: 28px;
        height: 28px;
    }

    .s_hero
    {
        min-height: 650px;
    }

    .s_hero_copy
    {
        width: 100%;
        padding: 30px 20px;
    }

    .s_hero h1
    {
        position: static;
        width: auto;
        font-size: 34px;
        margin-bottom: 22px;
    }

    .s_hero h1 span
    {
        position: static;
        font-size: 32px;
    }

    .s_hero_copy > p:not(.s_kicker)
    {
        position: static;
        width: auto;
        font-size: 16px;
        max-width: 85%;
    }

    .s_hero::before
    {
        display: block;
    }

    .s_hero .s_knop
    {
        position: static;
        height: auto;
        margin-top: 25px;
        font-size: 17px;
    }

    .s_categories
    {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .s_catalog, .s_product
    {
        grid-template-columns: 1fr;
    }

    .s_product_photo
    {
        max-width: 440px;
        margin: auto;
    }

    .s_service_strip
    {
        grid-template-columns: 1fr;
    }

    .s_spec_columns
    {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .s_filters
    {
        max-height: 390px;
        overflow: auto;
        border-bottom: 2px solid var(--kleur-rood);
    }

    .s_footer_main
    {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .s_footer_brand
    {
        grid-column: 1 / -1;
        max-width: 270px;
    }

    .s_footer_column
    {
        padding: 10px 30px 20px;
    }

    .s_hero > img
    {
        top: 0;
        object-position: 68% bottom;
    }

    .s_hero::before
    {
        background: linear-gradient(#f7f6f2 4%,rgba(247,246,242,.9) 32%,transparent 65%);
    }

}

@media (max-width: 460px)
{
    .s_grid
    {
        grid-template-columns: 1fr;
    }

}

@media (prefers-reduced-motion: reduce)
{
    *
    {
        transition: none !important;
    }

}
