:root {

    --color-background: #f7f5f3;
    --color-primary: #5b3d1d;
    --color-secondary: #c9bba8;
    --color-text: #2e2e2e;
    --color-accent: #ffffff;

    --color-black: #000;

    --content-width: 35em;

    --font-size-smaller: 80%;

    -moz-text-size-adjust: none;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;

    font-size: clamp(1em, 0.9em + 1vw, 1.5em);
}

@media (prefers-color-scheme: dark) {
    :root {
        --color-background: #2e2e2e;
        --color-primary: #c9bba8;
        --color-secondary: #5b3d1d;
        --color-text: #f7f5f3;
    }
}

@media (prefers-reduced-motion: no-preference) {
    :root {
        scroll-behavior: smooth;
    }
}

@font-face {font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url(/static/fonts/jost.woff2) format('woff2');}
@font-face { font-family:'Noto Sans TC';font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/zh.woff2) format('woff2');}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

body {
    padding: 0;

    font-family: 'Jost', Verdana, sans-serif;
    line-height: 1.6;

    text-decoration-skip-ink: auto;
    font-optical-sizing: auto;
    font-variant-ligatures: common-ligatures no-discretionary-ligatures no-historical-ligatures contextual;
    font-kerning: normal;

    -webkit-font-smoothing: antialiased;

    background: var(--color-background);
    color: var(--color-text);
}

img, video {
    display: block;
    max-inline-size: 100%;
}

p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }

h1, h2, h3, h4, h5, h6 {
    text-wrap: balance;
    line-height: 1.1;
    font-weight: 700;
}

p, #faq-lista {
    text-wrap: pretty;
    -webkit-hyphens: auto;
    -webkit-hyphenate-limit-before: 2;
    -webkit-hyphenate-limit-after: 2;
    
    hyphens: auto;
    hyphenate-limit-chars: 4 2;
}
.nohyphen {
    display: inline-block;
    -webkit-hyphens: none;
    hyphens: none;
}

a:active, a:focus {
    outline: .15em dashed var(--color-primary);
    outline-offset: .15em;
}
@media (prefers-color-scheme: dark) {
    a:active, a:focus {
        outline-color: var(--color-text);
    }
}

.skip-link {
    position: fixed;
    top: 0;
    z-index: 2;
    left: -100vw;
    padding: 1em;
    background: var(--color-primary);
    color: var(--color-accent);
}
.skip-link:active, .skip-link:focus {
    left: 0;
}

.centered-block {
    max-inline-size: var(--content-width);
    margin-inline: auto;
    padding-inline: 1rem;
}

header,
nav,
footer {
    --color-fill: #000;
    background-color: var(--color-fill);
    border-image-source: conic-gradient(var(--color-fill) 0deg, var(--color-fill) 0deg);
    border-image-slice: 0 fill;
    border-image-width: 1;
    border-image-outset: 0 100vw;
    border-image-repeat: stretch;
}

header {  
    --color-fill: var(--color-secondary);
    padding-block: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    cursor: default;
}

#jump-to-home {
    position: relative;
    display: inline flex;
    inline-size: fit-content;
    align-items: center;
    text-align: center;
    flex-direction: column;
    gap: .5rem;
    color: var(--color-text);
    font-weight: 700;
}

#jump-to-home a {
    color: inherit;
    text-decoration: underline rgb(from var(--color-text) r g b / 0);
    text-underline-offset: .12em;
}
#jump-to-home a:hover {
    color: color-mix(in srgb, #ffffff 30%, var(--color-primary) 100%);
    text-decoration-color: rgb(from var(--color-primary) r g b / 1);
}
#jump-to-home a::after {
    content: '';
    position: absolute;
    inset: 0;
}

#budapestpipaexpo-logo path {
    stroke-width: 1;
}
#budapestpipaexpo-logo .szopoka {
    fill: #1a1a1a;
}
#budapestpipaexpo-logo .spigot {
    fill: #ccc;
    stroke: #1a1a1a;
}
#budapestpipaexpo-logo .pipafej {
    fill: #755443;
    stroke: #1a1a1a;
}

header h1 {
    font-size: 2em;
    font-weight: 700;
}
header time {
    font-size: 1em;
    font-weight: 700;
}

#info-block {
    text-align: center;
    font-weight: 700;
}

address {
    font-weight: 700;
    font-style: normal;
    white-space:nowrap;
    overflow-wrap:break-word;
}

#budapestpipaexpo-logo {
    max-inline-size: 50%;
}

nav {
    --color-fill: color-mix(in srgb, #000000 10%, var(--color-background) 100%);
    position: sticky;
    z-index: 1;
    top: 0;
    display: flex;
    justify-content: center;
    color: var(--color-primary);
}
@media (prefers-color-scheme: dark) {
    nav {
        --color-fill: color-mix(in srgb, #fff 20%, var(--color-background) 100%);
    }
}

nav ul {
    overflow-inline: auto;
    scrollbar-width: thin;
    margin: 0;
    padding-inline: 1rem;
    padding-block: .5rem;
    list-style-type: none;
    display: flex;
    gap: 1rem;
    align-items: flex-start;


    background:
        linear-gradient(to right, var(--color-fill) 30%, rgba(255,255,255,0)),
        linear-gradient(to right, rgba(255,255,255,0), var(--color-fill) 70%) 0 100%,
        radial-gradient(farthest-side at 0% 50%, rgba(0,0,0,.2), rgba(0,0,0,0)),
        radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,.2), rgba(0,0,0,0)) 0 100%;
    background-repeat: no-repeat;
    background-color: var(--color-fill);
    background-size: 40px 100%, 40px 100%, 10px 100%, 10px 100%;
    background-position: 0 0, 100%, 0 0, 100%;
    background-attachment: local, local, scroll, scroll;
}

nav a {
    display: inline-block;
    font-weight: 300;
    letter-spacing: 0.05ch;
    padding: .1em .5em;
    background-color: transparent;
    color: var(--color-text);
    text-decoration: none;
    text-transform: uppercase;
}

nav a:active, nav a:focus, nav a:hover {
    background-color: var(--color-accent);
    color: var(--color-text);
}
@media (prefers-color-scheme: dark) {
    nav a:active, nav a:focus, nav a:hover {
        color: var(--color-background);
    }
}

main {
    scroll-margin-top: 4rem;
}

main section:first-child {
    margin-block-start: 2.5em;
}
main > section + section {
    scroll-margin-top: 4rem;
    margin-block-start: 4em;
}
h3#mit-merre-talalsz {
    scroll-margin-top: 4rem;
}
.flow > * + * {
    --flow-space: 1.5em;
    margin-block-start: var(--flow-space);
}
main h2, main h3, main h4 {
    font-weight: 300;
    text-transform: uppercase;
    text-decoration: underline solid .25em var(--color-secondary);
    text-underline-offset: 1px;
    text-decoration-skip-ink: none;
    line-height: 1.6;
}
@media (prefers-color-scheme: dark) {
    main h2, main h3, main h4 {
        text-decoration-color: color-mix(in srgb, #fff 25%, var(--color-secondary) 100%);
    }
}
main h2 {
    font-size: 2em;
}
main h3 {
    font-size: 1.25em;
}
main h4 {
    font-size: 1.1em;
}

main ul li:not(:first-child) {
    margin-block-start: .75em;
}

main a {
    font-weight: 700;
    color: var(--color-primary);
    text-decoration: underline solid color-mix(in srgb, #000000 25%, var(--color-secondary) 100%);
    text-underline-offset: .0835em;
    text-decoration-thickness: .125em;
}
main a:hover {
    color: var(--color-secondary);
    text-decoration-color: var(--color-primary);
}
@media (prefers-color-scheme: dark) {
    main a {
        color: var(--color-text);
        text-decoration-color: var(--color-text);
    }
    main a:hover {
        color: color-mix(in srgb, var(--color-background) 75%, var(--color-text) 100%);
        text-decoration-color: color-mix(in srgb, var(--color-background) 75%, var(--color-text) 100%);
    }
}

.szervezo {
    font-variant-caps: small-caps;
}

#kiallitok {
    display: grid;
    row-gap: 3em;
    grid-template-columns: 1fr;
    align-items: start;
}

@media (min-width: 35em) {
    #kiallitok {
        column-gap: 3em;
        grid-template-columns: 1fr 1fr;
    }
    #kiallitok-bevezeto {
        grid-column: 1 / 3;
    }
}

.kiallito {
    position: relative;
    display: inline grid;
    column-gap: 1em;
    row-gap: .5em;
    grid-template-areas: 
        "logo szoveg"
    ;
    grid-template-columns: 3fr 4fr;
    grid-template-rows: auto;
}
.kiallito::after {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background-color: transparent;
}
.kiallito:has(a):focus-within::after,
.kiallito:has(a):hover::after {
    background-color: var(--color-accent);
    outline: .5em solid var(--color-accent);
    border-radius: .5em;
}
@media (prefers-color-scheme: dark) {
    .kiallito:has(a):focus-within::after,
    .kiallito:has(a):hover::after {
        --color-accent: color-mix(in srgb, #000 10%, var(--color-text) 100%);
    }
}
.kiallito-link {
    text-decoration-skip-ink: auto;
}
span.zh {
    font-family: 'Noto Sans TC';
}
.kiallito-link::after {
    content: '';
    position: absolute;
    inset: 0;
}
@media (prefers-color-scheme: dark) {
    a.kiallito-link {
        outline-color: var(--color-background);
    }
}
.kiallito-szoveg {
    grid-area: szoveg;
    align-self: center;
}
.kiallito-nev {
    font-size: 1.1em;
    line-height: 1.25;
    text-decoration: none;
    text-transform: none;
}
.kiallito-logo {
    display: inline grid;
    place-items: center;
    align-content: center;
    grid-area: logo;
    aspect-ratio: 1;
    background: var(--color-accent);
    border-radius: 1em;
    overflow: hidden;
}
.kiallito-logo.fekete-hatter {
    background-color: var(--color-black);
}
.kiallito-logo.teljes img {
    width: 100%;
}
.kiallito-logo img {
    width: 90%;
    height: auto;
    object-fit: contain;
    border-radius: 1em;
}
.kiallito-leiras {
    margin-block-start: .5em;
    font-size: var(--font-size-smaller);
    line-height: 1.4;
    grid-area: leiras;
}
@media (prefers-color-scheme: dark) {
    .kiallito:focus-within .kiallito-leiras,
    .kiallito:hover .kiallito-leiras {
        color: var(--color-secondary);
    }
}

@media (min-width: 35em) {
    #programok {
        column-count: 2;
        column-gap: 2em;
        column-rule: 1px solid color-mix(in srgb, #ffffff 75%, var(--color-text) 100%);
    }

    #programok h2 {
        margin-block-end: 1.5rem;
        column-span: all;
    }

    ul#program-lista {
        margin-block-start: 0;
    }
}

ul#program-lista {
    list-style-type: none;
    padding: 0;
}
ul#program-lista li {
    padding-inline-start: 2ch;
    text-indent: -2ch;
}
ul#program-lista li:not(:first-child) {
    margin-block-start: 1em;
}

.szponzor-blokk {
    --items-per-row: 2;
    --gap: 1em;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gap);
    align-items: flex-start;
    list-style-type: none;
    padding: 0;
}
@media (min-width: 35em) {
    .szponzor-blokk {
        --items-per-row: 4;
        --gap: 2em;
    }
}
.szponzor {
    flex: 0 0 calc((100% / var(--items-per-row)) - (var(--gap) / (var(--items-per-row) - 1)));
    position: relative;
    display: inline flex;
    flex-direction: column;
    justify-content: center;
    gap: .25em;
    font-size: var(--font-size-smaller);
}
.szponzor::after {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background-color: transparent;
}
.szponzor:has(a):focus-within::after,
.szponzor:has(a):hover::after {
    background-color: var(--color-accent);
    outline: .5em solid var(--color-accent);
    border-radius: .5em;
}
@media (prefers-color-scheme: dark) {
    .szponzor:has(a):focus-within::after,
    .szponzor:has(a):hover::after {
        --color-accent: color-mix(in srgb, #000 10%, var(--color-text) 100%);
    }
}
.szponzor-nev {
    text-align: center;
    color: var(--color-primary);
}
.szponzor-nev a::after {
    content: '';
    position: absolute;
    inset: 0;
}
@media (prefers-color-scheme: dark) {
    .szponzor-nev {
        color: var(--color-text);
    }
    .szponzor-nev a {
        outline-color: var(--color-background);
    }
}
.szponzor-logo {
    display: inline grid;
    place-items: center;
    align-content: center;
    grid-area: logo;
    aspect-ratio: 1;
    background: var(--color-accent);
    border-radius: 1em;
    overflow: hidden;
}
.szponzor-logo img {
    width: 90%;
    height: auto;
    object-fit: contain;
    border-radius: 1em;
}
.szponzor-kiemeles {
    margin-block-start: 0;
    text-align: center;
    font-weight: 300;
    text-transform: uppercase;
}

#helyszin address {
    text-align: center;
}

#terkep-link, #helyszinrajz-link {
    display: block;
}
#terkep {
    aspect-ratio: 1168/758;
    background-color: var(--color-accent);
}
#helyszinrajz {
    aspect-ratio: 900/680;
    background-color: var(--color-accent);
}

#faq-lista dt {
    font-weight: 700;
    margin-block-start: 1em;
}
#faq-lista dd {
    padding-inline-start: 2ch;
}

footer {
    --color-fill: var(--color-primary);
    padding-block: 1rem;
    margin-block-start: 2.5em;
    color: var(--color-accent);
    text-align: right;
}
@media (prefers-color-scheme: dark) {
    footer {
        --color-fill: var(--color-secondary);
    }
}
#footer-content {
    font-size: .75rem;
}
