/* =========================================================
   GLOBAL
========================================================= */

body {
    margin: 0;
    padding: 0;

    background: #efe5d6;
    color: #2c2118;

    font-family: 'Segoe UI', sans-serif;

    overflow-x: hidden;
}

body::before {
    content: "";

    position: fixed;
    inset: 0;

    background: url('../img/pergamen.jpg');

    opacity: 0.06;

    pointer-events: none;

    z-index: -1;
}


/* =========================================================
   HEADER
========================================================= */

.main-header {
    padding: 22px 0 16px;

    border-bottom: 1px solid rgba(120,90,50,0.08);
}

/* ===== HEADER LAYOUT ===== */

.header-inner{
    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:40px;
}

/* ===== BAL ===== */

.header-left {
    flex:1;

    display:flex;

    align-items:center;
}

.site-title {
    color: #3d2c1f;

    text-decoration: none;

    font-size: 1.2rem;
    font-weight: 500;

    letter-spacing: 0.5px;

    transition: 0.3s;
}

.site-title:hover {
    color: #b98945;
}

/* =========================================================
   BRAND
========================================================= */

.header-brand{
    display:flex;

    align-items:center;

    gap:18px;

    text-decoration:none;
}

/* ===== LOGO ===== */

.header-logo{
    width:64px;

    height:auto;

    display:block;

    transition:0.3s ease;
}

.header-logo:hover{
    transform:scale(1.03);
}

/* ===== TITLE ===== */

.site-title{
    color:#3d2c1f;

    font-size:1.15rem;

    font-weight:500;

    letter-spacing:0.5px;

    transition:0.3s ease;
}

.header-brand:hover .site-title{
    color:#b98945;
}

.header-logo {
    width: 110px;

    display: block;

    transition: 0.3s;
}

.header-logo:hover {
    transform: scale(1.03);
}

/* ===== JOBB ===== */

.header-right {
    
    display: flex;
    justify-content: flex-end;
}

/* =========================================================
   NAVBAR
========================================================= */

.navbar{
    margin-bottom:6px;
}

.navbar-collapse {
    justify-content: flex-end;
}

.navbar-nav {
    display: flex;
    align-items: center;

    gap: 18px;
}

/* ===== MENÜPONTOK ===== */

.nav-link {
    position: relative;

    color: #3d2c1f;

    font-size: 1rem;
    font-weight: 500;

    white-space: nowrap;

    padding: 6px 0 !important;

    transition: 0.3s;
}

.nav-link:hover {
    color: #b98945;
}

/* ===== AKTÍV ===== */

.nav-link.active::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: -8px;

    width: 100%;
    height: 1px;

    background: #c89a58;
}

/* ===== GOMB ===== */

.navbar .nav-item:last-child .nav-link {
    background: #c89a58;

    color: white;

    padding: 14px 28px !important;

    border-radius: 999px;
}

/* ===== HAMBURGER ===== */

.navbar-toggler {
    border: none;

    font-size: 1.7rem;

    color: #2b2118;

    box-shadow: none !important;
}

/* =========================================================
   BUTTONS
========================================================= */

.btn-gold {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding: 14px 30px;

    border-radius: 999px;

    background: #c89a58;
    color: white;

    text-decoration: none;
    font-weight: 600;

    transition: 0.3s;
}

.btn-gold:hover {
    background: #b98945;

    color: white;

    transform: translateY(-2px);
}

.btn-outline-gold {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding: 14px 28px;

    border-radius: 999px;

    border: 1px solid #c89a58;

    color: #b98945;

    text-decoration: none;
    font-weight: 600;

    transition: 0.3s;
}

.btn-outline-gold:hover {
    background: #c89a58;
    color: white;
}


/* =========================================================
   HERO
========================================================= */

.hero-section { 
    position: relative; 
    width: 100%; /* Megnöveljük a magasságot, hogy a képnek legyen helye terjeszkedni */ 
    min-height: 750px; 
    display: flex; 
    align-items: center; 
    background: #efe5d6; 
    overflow: hidden; /* Ne lógjon ki a kép */ }

/* ===== HERO IMAGE ===== */

.hero-image-scene {
    position: 100% 0;
    inset: 0;

    z-index: 1;
}

.hero-image-box {
    position: absolute;

    top: 4%;
    right: 100px;

    width: 70%;
    height: 88%;
    right: 242px;

    display: flex;
    justify-content: flex-end;
}

.hero-image-box img {
    width: auto;
    max-width: 100%;
    height: 100%;

    object-fit: contain;
    object-position: right center;

    border-radius: 40px;
}

/* ===== BAL RÁMOSÁS ===== */

.hero-image-box::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            to right,
            rgba(243,234,223,1) 0%,
            rgba(243,234,223,0.82) 12%,
            rgba(243,234,223,0) 55%
        );

    z-index: 2;
}

/* ===== EXTRA BLEND ===== */

.hero-blender-layer {
    position: absolute;

    left: 0;
    top: 0;

    width: 45%;
    height: 100%;

    background:
        linear-gradient(
            to right,
            rgba(243,234,223,0.96) 0%,
            rgba(243,234,223,0) 100%
        );

    z-index: 3;
}

/* ===== HERO CONTENT ===== */

.hero-container {
    position: relative;
    z-index: 10;
}

.hero-content-wrapper {
    max-width: 540px;

    padding-left: 20px;
}

/* ===== HERO TITLE ===== */

.hero-title {
    font-size: clamp(3.2rem, 5vw, 5rem);

    line-height: 1.06;

    margin-bottom: 24px;

    font-family: Georgia, serif;
}

/* ===== DIVIDER ===== */

.hero-divider {
    display: flex;

    align-items: center;

    margin: 26px 0 32px;
}

.hero-divider::before,
.hero-divider::after {
    content: "";

    width: 90px;
    height: 1px;

    background:
        linear-gradient(
            to right,
            transparent,
            #c89a58,
            transparent
        );
}

.divider-icon {
    color: #c89a58;

    margin: 0 14px;

    font-size: 0.9rem;
}

/* ===== TEXT ===== */

.hero-subtitle {
    font-size: 1.9rem;

    font-family: Georgia, serif;

    margin-bottom: 18px;
}

.hero-text {
    font-size: 1.05rem;

    line-height: 1.8;

    color: #4a3f35;

    margin-bottom: 32px;

    max-width: 460px;
}


/* =========================================================
   ABOUT
========================================================= */

.about-section {
    padding: 100px 0;
}

.about-grid {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 70px;

    align-items: center;
}

.about-image img {
    width: 100%;

    border-radius: 24px;
}

.section-mini-title {
    color: #9e7a49;

    font-size: 0.85rem;
    font-weight: 700;

    letter-spacing: 2px;
}

.about-content h2 {
    font-size: 3rem;

    line-height: 1.2;

    margin: 20px 0 30px;

    font-family: Georgia, serif;
}

/* ===== LISTA ===== */

.feature-list {
    padding: 0;

    margin: 0 0 40px;

    list-style: none;
}

.feature-list li {
    position: relative;

    padding-left: 28px;

    margin-bottom: 16px;

    font-size: 1.08rem;
}

.feature-list li::before {
    content: "✦";

    position: absolute;

    left: 0;

    color: #c89a58;
}


/* =========================================================
   FEATURE CARDS
========================================================= */

.cards-section {
    padding: 30px 0 100px;
}

.cards-grid {
    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 35px;
}

/* =========================================================
   CARD
========================================================= */

.feature-card {
    position: relative;

    overflow: hidden;

    border-radius: 28px;

    transition: 0.35s ease;
}

.feature-card:hover {
    transform: translateY(-8px);
}

.feature-card img {
    width: 100%;

    display: block;

    border-radius: 28px;
}

/* =========================================================
   OVERLAY
========================================================= */

.card-overlay{
    position:absolute;

    left:0;
    right:0;
    bottom:155px;

    padding:0 34px;

    text-align:center;

    color:white;
}

/* ===== TITLE ===== */

.card-overlay h3{
    font-size:2.1rem;

    line-height:1.1;

    margin-bottom:18px;

    font-family:Georgia, serif;

    text-shadow:
        0 2px 8px rgba(0,0,0,0.20);
}

/* ===== TEXT ===== */

.card-overlay p{
    font-size:1.0rem;

    line-height:1.6;

    margin:0;

    text-shadow:
        0 2px 8px rgba(0,0,0,0.20);
}


/* =========================================================
   CTA
========================================================= */

.cta-section{
    padding: 40px 0 90px;
}

.cta-box{
    position: relative;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,0.45),
            rgba(255,255,255,0.22)
        );

    backdrop-filter: blur(8px);

    border-radius: 48px;

    padding: 70px;

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 70px;

    align-items: center;

    border: 1px solid rgba(120,90,50,0.08);

    box-shadow:
        0 20px 60px rgba(0,0,0,0.05);
}

/* ===== TEXT ===== */

.cta-content{
    position: relative;

    z-index: 2;
}

.cta-content h2{
    font-size: clamp(3rem, 5vw, 5.2rem);

    line-height: 1.02;

    margin-bottom: 30px;

    font-family: Georgia, serif;

    color: #2f241b;

    letter-spacing: -1px;

    max-width: 700px;
}

.cta-content p{
    font-size: 1.15rem;

    line-height: 1.9;

    color: #5c4a3d;

    margin-bottom: 40px;

    max-width: 500px;
}

/* ===== BUTTON ===== */

.cta-content .btn-gold{
    padding: 16px 34px;

    font-size: 0.95rem;

    letter-spacing: 1px;
}

/* =========================================================
   IMAGE
========================================================= */

.cta-image{
    position: relative;

    display: flex;

    align-items: stretch;

    height: 100%;
}

.cta-image::before{
    content:"";

    position:absolute;

    inset:-30px;

    background:
        radial-gradient(
            rgba(200,154,88,0.12),
            transparent 70%
        );

    z-index:1;
}

.cta-image img{
    position: relative;

    z-index: 2;

    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;

    border-radius: 40px;

    box-shadow:
        0 30px 60px rgba(0,0,0,0.10);

    transition: 0.4s ease;
}

.cta-image img:hover{
    transform: scale(1.02);
}



/* =========================================================
   About-Cards
========================================================= */
.hero-video-section {
    padding: 80px 0 40px;
}

.video-frame-wrapper {
    max-width: 350px;
    margin: 0 auto;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 25px 70px rgba(0,0,0,0.35);
    position: relative;
}

.hero-video {
    width: 100%;
    display: block;
    border-radius: 28px;
}

.hero-text-content {
    max-width: 800px;
    margin: 50px auto 0;
}

.hero-text-content h1 {
    font-size: 4rem;
    font-weight: 700;
    margin-bottom: 20px;
}

.hero-text-content p {
    font-size: 1.3rem;
    margin: 0;
}

.section-spacing {
     padding: 65px 0;
}

.content-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 24px;
    padding: 40px;
    backdrop-filter: blur(8px);
}

.section-title {
    margin-bottom: 30px;
    font-size: 2.2rem;
}

.content-card p {
    margin-bottom: 24px;
    line-height: 1.9;
}

.about-image-wrapper {
    position: relative;
}

.about-image {
    border-radius: 24px;
    width: 100%;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}

.author-box {
    margin-top: 30px;
    font-size: 1.1rem;
}

.custom-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 32px;
    border-radius: 999px;
    text-decoration: none;
    transition: 0.3s ease;
    font-weight: 600;
}

.custom-btn:hover {
    transform: translateY(-3px);
}

.section-header {
    margin-bottom: 60px;
}

.benefits-list {
    max-width: 1000px;
    margin: 0 auto;
}

.benefit-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;

    padding: 16px 0;

    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.benefit-item:last-child {
    border-bottom: none;
}

.benefit-icon {
    font-size: 1.2rem;
    line-height: 1.7;
    color: #d4a95f;
    flex-shrink: 0;
    margin-top: 2px;
}

.benefit-item p {
    margin: 0;
    line-height: 1.9;
    font-size: 1.05rem;
}

.disclaimer-section {
    padding: 10px 0 50px;
}

.disclaimer-box {
    padding: 30px;
    border-radius: 20px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    text-align: center;
}

.faq-inline-box{
    max-width: 800px;

    margin: 50px auto 0;

    text-align: center;

    padding-top: 35px;

    border-top: 1px solid rgba(120,90,50,0.12);
}

.copyright-text {
    margin-top: 30px;
    font-weight: 700;
}

/* =========================================================
   NEWSLETTER / FOOTER
========================================================= */

.newsletter-box{
    position: relative;

    margin-top: 70px;

    padding: 100px 20px 80px;

    background:
        linear-gradient(
            to bottom,
            rgba(239,229,214,0.4),
            rgba(232,219,201,0.9)
        );

    overflow: hidden;
}

/* ===== TEXTURE ===== */

.newsletter-box::before{
    content:"";

    position:absolute;

    inset:0;

    background:url('../img/pergamen.jpg');

    opacity:0.04;

    pointer-events:none;
}

/* =========================================================
   INNER
========================================================= */

.footer-inner{
    position: relative;

    z-index: 2;

    max-width: 900px;

    margin: 0 auto;
}

/* =========================================================
   TITLE
========================================================= */

.footer-inner h2{
    font-size: clamp(0.8rem, 5vw, 2.8rem);

    margin-bottom: 20px;

    font-family: Georgia, serif;

    color: #3d2c1f;

    letter-spacing: 1px;
}

/* ===== SUBTEXT ===== */

.footer-inner .italic{
    max-width: 680px;

    margin: 0 auto 35px;

    font-size: 0.9rem;

    line-height: 1.9;

    color: #5c4a3d;

    font-style: italic;
}

.footer-social-top{
    display:flex;

    justify-content:center;

    align-items:center;

    gap:18px;
}

.footer-social-top a{
    display:flex;

    align-items:center;

    justify-content:center;

    transition:.25s ease;
}

.footer-social-top a:hover{
    transform:translateY(-3px) scale(1.05);
}

.footer-social-top img{
    width:42px;

    height:42px;

    object-fit:contain;

    display:block;
}

/* =========================================================
   BY S WEBDESIGN CREDIT
========================================================= */

.byswebdesign-credit{
    margin-top:28px;

    text-align:center;

    font-size:.9rem;

    color:#8b7664;

    letter-spacing:.3px;
}

.byswebdesign-credit a{
    color:#9e7a49;

    text-decoration:none;

    transition:.25s ease;
}

.byswebdesign-credit a:hover{
    color:#c89a58;
}

/* =========================================================
   FORM
========================================================= */

.flex-form{
    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 18px;

    margin-bottom: 55px;
}

/* ===== INPUTS ===== */

.flex-form input{
    min-width: 220px;

    flex: 1;

    max-width: 260px;

    background: rgba(255,255,255,0.65);

    border: 1px solid rgba(120,90,50,0.12);

    border-radius: 999px;

    padding: 16px 22px;

    outline: none;

    color: #2c2118;

    transition: 0.3s ease;
}

.flex-form input:focus{
    border-color: #c89a58;

    box-shadow:
        0 0 0 4px rgba(200,154,88,0.10);
}

/* ===== BUTTON ===== */

.submit-btn{
    border: none;

    background: #c89a58;

    color: white;

    padding: 16px 34px;

    border-radius: 999px;

    font-weight: 700;

    letter-spacing: 1px;

    transition: 0.3s ease;
}

.submit-btn:hover{
    background: #b98945;

    transform: translateY(-2px);
}

.video-frame-wrapper{
    aspect-ratio: 9/16;
}

.hero-video{
    width:100%;
    height:100%;

    object-fit:cover;
}

/* =========================================================
   SOCIAL
========================================================= */

.footer-social-top{
    display: flex;

    justify-content: center;

    gap: 18px;

    margin-bottom: 40px;
}

.footer-social-top a{
    width: 52px;
    height: 52px;

    border-radius: 50%;

    display: flex;

    align-items: center;
    justify-content: center;

    background: rgba(255,255,255,0.45);

    color: #9e7a49;

    font-size: 1.2rem;

    text-decoration: none;

    transition: 0.3s ease;
}

.footer-social-top a:hover{
    background: #c89a58;

    color: white;

    transform: translateY(-4px);
}

/* =========================================================
   ORNAMENT
========================================================= */

.ornament-line{
    margin-bottom: 35px;

    font-size: 0.9rem;

    letter-spacing: 2px;

    color: #7a6754;
}

.ornament-line span{
    margin: 0 12px;

    color: #c89a58;
}

/* =========================================================
   LEGAL
========================================================= */

.footer-legal{
    display: flex;

    justify-content: center;

    align-items: center;

    gap: 14px;

    margin-bottom: 28px;

    flex-wrap: wrap;
}

.footer-legal a{
    color: #5f4a39;

    text-decoration: none;

    transition: 0.3s ease;
}

.footer-legal a:hover{
    color: #b98945;
}

/* ==================================================
   PROGRAMS SECTION
================================================== */

.programs-section{
    margin-top:60px;
}


/* ==================================================
   PROGRAM ÁTTEKINTŐ
================================================== */

.program-overview{

    background:
        rgba(255,255,255,.22);

    backdrop-filter:blur(4px);

    border:
        1px solid rgba(184,147,87,.22);

    border-radius:24px;

    padding:35px;

    margin:40px 0 60px;

    box-shadow:
        0 8px 30px rgba(0,0,0,.06);
}

.program-overview h2{

    margin-bottom:30px;

    color:var(--wine);
}


/* ==================================================
   OVERVIEW LIST
================================================== */

.overview-list{

    display:flex;

    flex-direction:column;

    gap:12px;
}

.overview-item{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    padding:16px 22px;

    border-radius:14px;

    text-decoration:none;

    background:
        rgba(255,255,255,.18);

    border:
        1px solid rgba(184,147,87,.12);

    transition:.25s ease;
}

.overview-item:hover{

    transform:translateY(-2px);

    background:
        rgba(255,255,255,.35);

    box-shadow:
        0 6px 18px rgba(0,0,0,.08);
}

.overview-date{

    font-weight:700;

    color:var(--gold-dark);

    white-space:nowrap;

    font-size:.95rem;

    letter-spacing:.5px;
}

.overview-title{

    color:var(--wine);

    text-align:right;

    font-size:1rem;

    line-height:1.4;
}


/* ==================================================
   PROGRAM GRID
================================================== */

.programs-grid{

    display:grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:40px;

    margin-top:40px;
}


/* ==================================================
   PROGRAM CARD
================================================== */

.program-card{

    position:relative;

    display:flex;

    flex-direction:column;

    padding:24px 42px 36px;

    min-height:700px;

    overflow:hidden;

    border-radius:
        340px 340px 340px 340px
        / 340px 340px 340px 340px;

    background:
        linear-gradient(
            180deg,
            rgba(255,248,236,.92),
            rgba(248,239,227,.78)
        );

    border:
        1px solid rgba(184,147,87,.22);

    box-shadow:
        0 18px 45px rgba(0,0,0,.08),
        inset 0 1px 0 rgba(255,255,255,.45);

    transition:.35s ease;
}

.program-card::before{

    content:"";

    position:absolute;

    inset:0;

    border-radius:72px;

    padding:1px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.55),
            rgba(184,147,87,.18)
        );

    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);

    -webkit-mask-composite:xor;

    mask-composite:exclude;

    pointer-events:none;
}

.program-card:hover{

    transform:
        translateY(-10px)
        rotate(-0.5deg);

    box-shadow:
        0 20px 45px rgba(0,0,0,.15);
}


/* ==================================================
   IMAGE
================================================== */

.program-image-wrapper{

    position:relative;

    display:flex;

    justify-content:center;

    align-items:center;

    margin-bottom:32px;
}

.program-image{

    height:240px;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:20px;

    border-radius:
        340px 340px 0 0;
}

.program-image img{

    width:250px;

    height:250px;

    object-fit:contain;

    border-radius:50%;

    padding:8px;

    background:transparent;

    box-shadow:
        0 8px 22px rgba(0,0,0,.10);

    display:block;
}


/* ==================================================
   CONTENT
================================================== */

.program-content{

    display:flex;

    flex-direction:column;

    gap:12px;

    height:100%;

    padding:12px 18px 22px;
}

.program-content h3{

    font-size:1.5rem;

    color:var(--wine);

    text-align:center;

    line-height:1.3;
}

.program-content p{

    font-size:.96rem;

    line-height:1.7;

    color:var(--text-soft);

    text-align:center;
}

.program-preview{

    line-height:1.8;

    margin-top:8px;

    margin-bottom:20px;

    text-align:center;
}


/* ==================================================
   TOGGLE
================================================== */

.toggle-program{

    border:none;

    background:transparent;

    color:var(--wine);

    font-weight:700;

    cursor:pointer;

    margin-top:8px;

    margin-bottom:4px;

    padding:0;

    transition:.3s;
}

.toggle-program:hover{

    opacity:.7;
}

.program-full-content{

    display:none;

    margin-top:20px;

    overflow:hidden;

    line-height:1.8;
}

.program-full-content.active{

    display:block;
}


/* ==================================================
   BUTTONS
================================================== */

.program-buttons{

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:12px;

    margin-top:24px;
}

.program-buttons .green-button-style{

    width:220px;

    display:inline-flex;

    justify-content:center;

    text-align:center;
}


/* ==================================================
   PAST PROGRAMS
================================================== */

.past-programs-title{

    grid-column:1 / -1;

    margin:90px 0 35px;

    text-align:center;

    font-size:2rem;

    color:var(--wine);

    opacity:.9;
}

.old-program{

    opacity:.7;

    filter:grayscale(.08);
}


/* ==================================================
   TABLET
================================================== */

@media(max-width:1024px){

    .programs-grid{

        grid-template-columns:1fr;
    }

    .program-card{

        max-width:700px;

        margin:0 auto;
    }
}

/* ==================================================
   APPLICATION FORM
================================================== */

.application-container{
    max-width:900px;
    margin:0 auto;
}

.application-form{
    background:rgba(255,248,236,.55);

    border:1px solid rgba(184,147,87,.28);

    border-radius:20px;

    padding:40px;

    box-shadow:
        0 18px 40px rgba(0,0,0,.08),
        inset 0 1px 0 rgba(255,255,255,.35);
}


/* ==================================================
   INPUTS
================================================== */

.application-form input,
.application-form textarea{

    width:100%;

    padding:14px 16px;

    border-radius:12px;

    border:1px solid rgba(184,147,87,.25);

    background:rgba(255,255,255,.72);

    font-size:1rem;

    color:var(--text);

    transition:.25s ease;

    margin-bottom:16px;
}

.application-form input:focus,
.application-form textarea:focus{

    outline:none;

    border-color:var(--gold);

    box-shadow:
        0 0 0 4px rgba(184,147,87,.12);
}


/* ==================================================
   FORM ROW
================================================== */

.form-row{

    display:flex;

    gap:16px;
}

.form-row > *{

    flex:1;
}


/* ==================================================
   LABELS
================================================== */

.label{

    display:block;

    margin:28px 0 12px;

    font-weight:700;

    color:var(--wine);

    font-size:1.05rem;
}


/* ==================================================
   PROGRAM CHECKBOXES
================================================== */

.program-checkboxes{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:14px;

    margin:20px 0 30px;
}

.program-checkboxes label{

    display:flex;

    align-items:center;

    gap:10px;

    padding:14px 16px;

    background:rgba(255,255,255,.45);

    border:1px solid rgba(184,147,87,.2);

    border-radius:14px;

    cursor:pointer;

    transition:.2s ease;
}

.program-checkboxes label:hover{

    background:rgba(255,255,255,.7);

    transform:translateY(-2px);
}

.program-checkboxes input{

    width:auto;

    margin:0;
}


/* ==================================================
   CHECKBOX GROUP
================================================== */

.checkbox-group{

    margin:35px 0 20px;

    display:flex;

    flex-direction:column;

    gap:18px;

    align-items:center;

    text-align:center;
}

.checkbox-group label{

    display:flex;

    align-items:center;

    gap:10px;

    font-size:.98rem;
}

.checkbox-group input{

    width:auto;

    margin:0;
}


/* ==================================================
   LINKS
================================================== */

.checkbox-group a{

    color:var(--wine);

    font-weight:700;
}

.checkbox-group a:hover{

    color:var(--gold-dark);
}


/* ==================================================
   POPUP
================================================== */

.popup{

    display:none;

    position:fixed;

    inset:0;

    background:rgba(0,0,0,0.45);

    z-index:9999;

    justify-content:center;

    align-items:center;

    padding:20px;
}

.popup-content{

    background:#f6efe3;

    max-width:500px;

    width:100%;

    padding:45px 35px;

    border-radius:24px;

    text-align:center;

    box-shadow:
        0 20px 60px rgba(0,0,0,0.25);

    border:1px solid rgba(120,40,40,0.15);

    animation:popupFade .3s ease;
}

.popup-content p{

    font-size:1.1rem;

    line-height:1.8;

    color:#5e1f1f;

    margin-bottom:30px;
}

.popup-content button{

    background:#6d1f2d;

    color:white;

    border:none;

    padding:14px 32px;

    border-radius:12px;

    cursor:pointer;

    font-size:1rem;

    transition:.2s;
}

.popup-content button:hover{

    transform:translateY(-2px);

    opacity:.92;
}


/* ==================================================
   POPUP ANIMATION
================================================== */

@keyframes popupFade{

    from{

        opacity:0;

        transform:translateY(15px);
    }

    to{

        opacity:1;

        transform:translateY(0);
    }
}




/* =========================================================
   COPYRIGHT
========================================================= */

.copyright{
    margin: 0;

    font-size: 0.9rem;

    color: #8b7664;
}


.workshop-content{
    max-width: 760px;
}

.workshop-content p{
    line-height: 1.9;
}

.workshop-subsection{
    margin-top:50px;

    padding-top:35px;

    border-top:1px solid rgba(120,90,50,0.12);
}

.workshop-subsection h3{
    margin-bottom:20px;
}

.workshop-image img{
    width:100%;

    border-radius:32px;

    display:block;
}

.bottom-image-section{
    margin-top:80px;
}

.bottom-image-section img{
    width:70%;

    border-radius:40px;

    display:block;
    margin:0 auto;
}

.testimonial-box{
    max-width: 900px;

    margin: 60px auto;

    padding: 40px;

    background: rgba(255,255,255,0.35);

    border-radius: 30px;

    text-align: center;

    font-style: italic;
}

.testimonial-text{
    line-height: 1.9;
}

.testimonial-author{
    display:block;

    margin-top:20px;

    font-weight:700;

    font-style:normal;
}
.event-date{
    margin-top: 20px;

    font-size: 1.2rem;

    color: #9e7a49;

    font-weight: 600;
}

/* =========================================================
   CONTACT
========================================================= */

.contact-section{
    max-width: 900px;

    padding-top: 70px;
    padding-bottom: 90px;
}

/* ===== TITLE ===== */

.contact-section h1{
    font-size: clamp(2.8rem, 5vw, 4.5rem);

    font-family: Georgia, serif;

    color: #3d2c1f;
}

.contact-logo{

    display:block;

    margin:20px auto 40px;

    width: 200px;

    height:auto;
}
/* ===== CARDS ===== */

.contact-card{
    background: rgba(255,255,255,0.38);

    backdrop-filter: blur(6px);

    border: 1px solid rgba(120,90,50,0.08);

    border-radius: 32px;

    padding: 45px;

    margin-bottom: 35px;

    box-shadow:
        0 10px 30px rgba(0,0,0,0.04);
}

.contact-card h3{
    font-size: 2rem;

    margin-bottom: 28px;

    font-family: Georgia, serif;

    color: #3d2c1f;
}

/* ===== INFO ===== */

.contact-info p{
    margin-bottom: 16px;

    line-height: 1.8;
}

.contact-note{
    margin-top: 28px;

    padding-top: 24px;

    border-top: 1px solid rgba(120,90,50,0.10);

    color: #6e5a47;

    font-style: italic;
}

/* ===== FORM ===== */

.form-group{
    margin-bottom: 28px;
}

.form-group label{
    display: block;

    margin-bottom: 10px;

    font-weight: 600;

    color: #4c3a2b;
}

.form-group input,
.form-group textarea{
    width: 100%;

    background: rgba(255,255,255,0.55);

    border: 1px solid rgba(120,90,50,0.15);

    border-radius: 18px;

    padding: 16px 18px;

    font-size: 1rem;

    color: #2c2118;

    transition: 0.3s ease;

    outline: none;
}

.form-group input:focus,
.form-group textarea:focus{
    border-color: #c89a58;

    box-shadow:
        0 0 0 4px rgba(200,154,88,0.12);
}

/* ===== BUTTON ===== */

.btn-contact{
    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding: 16px 34px;

    border: none;

    border-radius: 999px;

    background: #c89a58;

    color: white;

    font-size: 1rem;
    font-weight: 600;

    transition: 0.3s ease;

    cursor: pointer;
}

.btn-contact:hover{
    background: #b98945;

    transform: translateY(-2px);
}

.btn-contact:disabled{
    opacity: 0.7;

    cursor: not-allowed;
}

/* =========================================================
   POPUP
========================================================= */

.popup{
    position: fixed;

    inset: 0;

    background: rgba(0,0,0,0.45);

    backdrop-filter: blur(4px);

    display: none;

    align-items: center;
    justify-content: center;

    z-index: 9999;
}

.popup-content{
    width: min(92%, 500px);

    background: #f3eadf;

    border-radius: 28px;

    padding: 40px;

    text-align: center;

    box-shadow:
        0 20px 60px rgba(0,0,0,0.2);
}

.popup-content p{
    margin-bottom: 28px;

    line-height: 1.8;

    font-size: 1.05rem;
}

.popup-content button{
    border: none;

    background: #c89a58;

    color: white;

    padding: 14px 28px;

    border-radius: 999px;

    font-weight: 600;

    transition: 0.3s ease;

    cursor: pointer;
}

.popup-content button:hover{
    background: #b98945;
}
/* =========================================================
   CART
========================================================= */

.cart-link{
    position: relative;

    display: flex;

    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    border-radius: 50%;

    text-decoration: none;

    font-size: 1.2rem;

    color: #c89a58;

    transition: 0.3s ease;
}

.cart-link:hover{
    background: rgba(200,154,88,0.08);

    color: #b98945;
}

.cart-badge{
    position: absolute;

    top: -4px;
    right: -4px;

    min-width: 22px;
    height: 22px;

    padding: 0 6px;

    border-radius: 999px;

    background: #c89a58;

    color: white;

    font-size: 12px;
    font-weight: 700;

    display: flex;
    align-items: center;
    justify-content: center;
}

/* =========================================================
   ORDER PAGE
========================================================= */

.order-page{
    padding-top: 60px;
    padding-bottom: 100px;
}

/* ===== HERO ===== */

.order-hero{
    margin-bottom: 70px;
}

.order-hero h1{
    font-size: clamp(3rem, 6vw, 5rem);

    font-family: Georgia, serif;

    margin-bottom: 35px;
}

.order-warning-box{
    max-width: 850px;

    margin: 0 auto;

    padding: 35px;

    border-radius: 32px;

    background: rgba(255,255,255,0.35);

    backdrop-filter: blur(4px);

    border: 1px solid rgba(120,90,50,0.08);

    line-height: 1.9;
}

/* =========================================================
   PRODUCTS
========================================================= */

.products-grid{
    display: flex;
    flex-direction: column;

    gap: 60px;
}

/* ===== CARD ===== */

.product-card{
    display: grid;

    grid-template-columns: 420px 1fr;

    gap: 60px;

    align-items: start;

    padding-bottom: 60px;

    border-bottom: 1px solid rgba(120,90,50,0.10);
}

.product-card:last-child{
    border-bottom: none;
}

/* ===== IMAGE ===== */

.product-image img{
    width: 100%;

    display: block;

    border-radius: 32px;

    box-shadow:
        0 20px 60px rgba(0,0,0,0.10);
}

/* ===== CONTENT ===== */

.product-content h2{
    font-size: 2.4rem;

    margin-bottom: 30px;

    line-height: 1.2;

    font-family: Georgia, serif;
}

.product-description{
    margin-bottom: 35px;
}

.product-description p{
    line-height: 1.9;

    margin-bottom: 18px;
}

/* ===== PRICE ===== */

.product-price{
    font-size: 2rem;

    font-weight: 700;

    color: #b98945;

    margin-bottom: 20px;
}

/* ===== NOTE ===== */

.product-note{
    margin-bottom: 30px;

    line-height: 1.8;

    color: #6d5c4f;
}

/* =========================================================
   CART
========================================================= */

.cart-link{
    position: relative;

    display: flex;

    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    border-radius: 50%;

    text-decoration: none;

    font-size: 1.2rem;

    color: #c89a58;

    transition: 0.3s ease;
}

.cart-link:hover{
    background: rgba(200,154,88,0.08);

    color: #b98945;
}

.cart-badge{
    position: absolute;

    top: -4px;
    right: -4px;

    min-width: 22px;
    height: 22px;

    padding: 0 6px;

    border-radius: 999px;

    background: #c89a58;

    color: white;

    font-size: 12px;
    font-weight: 700;

    display: flex;
    align-items: center;
    justify-content: center;
}

/* =========================================================
   LAYOUT
========================================================= */

.cart-layout{
    display: grid;

    grid-template-columns: 1fr 380px;

    gap: 50px;

    align-items: start;
}

/* =========================================================
   ITEMS
========================================================= */

.cart-left{
    display: flex;
    flex-direction: column;

    gap: 30px;
}

.cart-item{
    position: relative;

    display: grid;

    grid-template-columns:
        120px
        1fr
        140px
        120px;

    gap: 30px;

    align-items: center;

    background: rgba(255,255,255,0.35);

    border-radius: 32px;

    padding: 30px;

    border: 1px solid rgba(120,90,50,0.08);
}

/* ===== IMAGE ===== */

.cart-item-image img{
    width: 100%;

    display: block;

    border-radius: 20px;
}

/* ===== CONTENT ===== */

.cart-item-content h2{
    font-size: 1.4rem;

    line-height: 1.5;

    margin-bottom: 12px;

    font-family: Georgia, serif;
}

.cart-item-price{
    color: #b98945;

    font-size: 1.1rem;

    font-weight: 700;
}

/* ===== QUANTITY ===== */

.cart-item-quantity form{
    display: flex;
    flex-direction: column;

    gap: 12px;
}

.cart-item-quantity input{
    width: 100%;

    border: 1px solid rgba(120,90,50,0.12);

    border-radius: 14px;

    padding: 12px;

    background: rgba(255,255,255,0.7);
}

.cart-item-quantity button{
    border: none;

    background: #c89a58;

    color: white;

    border-radius: 999px;

    padding: 10px 18px;

    font-size: 0.9rem;

    transition: 0.3s ease;
}

.cart-item-quantity button:hover{
    background: #b98945;
}

/* ===== TOTAL ===== */

.cart-item-total{
    font-size: 1.2rem;

    font-weight: 700;

    text-align: right;
}

/* ===== REMOVE ===== */

.cart-item-remove{
    position: absolute;

    top: 18px;
    right: 18px;
}

.cart-item-remove a{
    text-decoration: none;

    color: #9e7a49;

    font-size: 1.3rem;

    transition: 0.3s ease;
}

.cart-item-remove a:hover{
    color: #7f5e34;
}

/* =========================================================
   SUMMARY
========================================================= */

.cart-summary{
    position: sticky;

    top: 40px;

    background: rgba(255,255,255,0.35);

    border-radius: 32px;

    padding: 40px;

    border: 1px solid rgba(120,90,50,0.08);
}

.cart-summary h2{
    font-size: 2rem;

    margin-bottom: 35px;

    font-family: Georgia, serif;
}

.summary-row{
    display: flex;

    justify-content: space-between;

    gap: 20px;

    padding: 18px 0;

    border-bottom: 1px solid rgba(120,90,50,0.10);
}

.total-row{
    font-size: 1.2rem;

    border-bottom: none;

    padding-top: 28px;
}

/* ===== BUTTON ===== */

.cart-checkout-btn{
    width: 100%;

    margin-top: 35px;
}

/* =========================================================
   EMPTY
========================================================= */

.empty-cart-box{
    max-width: 600px;

    margin: 0 auto;

    padding: 60px 40px;

    background: rgba(255,255,255,0.35);

    border-radius: 32px;
}

.empty-cart-box p{
    margin-bottom: 30px;

    font-size: 1.1rem;
}

/* =========================================================
   CHECKOUT
========================================================= */

.checkout-page{
    padding-top: 60px;
    padding-bottom: 100px;
}

/* ===== HERO ===== */

.checkout-hero{
    margin-bottom: 50px;
}

.checkout-hero h1{
    font-size: clamp(3rem, 6vw, 5rem);

    font-family: Georgia, serif;
}

/* =========================================================
   INFO BOX
========================================================= */

.checkout-info-box{
    max-width: 1000px;

    margin: 0 auto 70px;

    padding: 45px;

    background: rgba(255,255,255,0.35);

    border-radius: 32px;

    border: 1px solid rgba(120,90,50,0.08);

    line-height: 1.9;
}

.checkout-important{
    margin-top: 35px;

    padding-top: 25px;

    border-top: 1px solid rgba(120,90,50,0.10);

    font-weight: 700;

    color: #8d5d1f;
}

/* =========================================================
   LAYOUT
========================================================= */

.checkout-layout{
    display: grid;

    grid-template-columns: 1fr 460px;

    gap: 50px;

    align-items: start;
}

/* =========================================================
   FORM
========================================================= */

.checkout-form{
    background: rgba(255,255,255,0.35);

    border-radius: 32px;

    padding: 45px;

    border: 1px solid rgba(120,90,50,0.08);
}

.checkout-form .form-group{
    margin-bottom: 28px;
}

.checkout-form label{
    display: block;

    margin-bottom: 10px;

    font-weight: 600;
}

.checkout-form input,
.checkout-form textarea{
    width: 100%;

    border: 1px solid rgba(120,90,50,0.12);

    border-radius: 18px;

    padding: 16px 18px;

    background: rgba(255,255,255,0.7);

    outline: none;

    transition: 0.3s ease;
}

.checkout-form input:focus,
.checkout-form textarea:focus{
    border-color: #c89a58;

    box-shadow:
        0 0 0 4px rgba(200,154,88,0.10);
}

.checkout-btn{
    width: 100%;
}

/* =========================================================
   SUMMARY
========================================================= */

.checkout-summary{
    position: sticky;

    top: 40px;

    background: rgba(255,255,255,0.35);

    border-radius: 32px;

    padding: 40px;

    border: 1px solid rgba(120,90,50,0.08);
}

.checkout-summary h2{
    font-size: 2rem;

    margin-bottom: 35px;

    font-family: Georgia, serif;
}

.summary-product{
    display: flex;

    justify-content: space-between;

    gap: 20px;

    padding-bottom: 18px;

    margin-bottom: 18px;

    border-bottom: 1px solid rgba(120,90,50,0.08);

    line-height: 1.7;
}

.summary-row{
    display: flex;

    justify-content: space-between;

    gap: 20px;

    padding: 18px 0;

    border-bottom: 1px solid rgba(120,90,50,0.10);
}

.total-row{
    border-bottom: none;

    font-size: 1.2rem;

    padding-top: 28px;
}
/* =========================================================
   CHECKOUT EXTRA
========================================================= */

.checkout-block-title{
    font-size: 1.4rem;

    font-family: Georgia, serif;

    margin-bottom: 30px;

    margin-top: 10px;
}

/* ===== SHIPPING ===== */

.shipping-toggle{
    margin: 40px 0;
}

.shipping-fields{
    display: none;

    margin-bottom: 40px;

    padding-top: 20px;
}

/* ===== CHECKBOX ===== */

.checkbox-wrapper{
    display:flex;

    align-items:center;

    gap:14px;

    line-height:1.6;

    cursor:pointer;
}

.checkbox-wrapper input{
    width:18px;
    height:18px;

    margin:0;

    accent-color:#c89a58;

    flex-shrink:0;
}

/* ===== PRODUCT ===== */

.summary-product{
    display: flex;
    align-items:flex-start;

    justify-content: space-between;

    gap: 20px;

    padding-bottom: 22px;

    margin-bottom: 22px;

    border-bottom: 1px solid rgba(120,90,50,0.08);
}

.summary-product-name{
    line-height: 1.7;
}

.summary-product-quantity{
    margin-top: 8px;

    color: #7a6754;
}

/* ===== SHIPPING TEXT ===== */

.shipping-method-text{
    margin-top: 10px;

    color: #6e5a47;
}

/* ===== PAYMENT ===== */

.payment-box{
    margin-top: 40px;

    padding-top: 35px;

    border-top: 1px solid rgba(120,90,50,0.10);

    line-height: 1.9;
}

.payment-box h3{
    font-size: 1.3rem;

    margin-bottom: 20px;

    font-family: Georgia, serif;
}

/* ===== GDPR ===== */

.gdpr-box{
    margin-top: 40px;

    padding-top: 30px;

    border-top: 1px solid rgba(120,90,50,0.10);

    font-size: 0.95rem;
}
/* ===== GDPR ===== */

.gdpr-check{

    margin:10px auto;

    display:flex;

    justify-content:center;

    align-items:flex-start;

    gap:10px;

    max-width:700px;

    font-size:.9rem;

    color:#7a6759;

    line-height:1.5;
}


.gdpr-check input{

    margin-top:4px;

    accent-color:#7e2424;

    transform:scale(1.1);
}


.gdpr-check a{

    color:#7e2424;

    text-decoration:none;

    border-bottom:1px solid rgba(126,36,36,.25);

    transition:.2s;
}


.gdpr-check a:hover{

    color:#a63f3f;

    border-color:#a63f3f;
}

.thank-you-box{
    max-width:700px;

    margin:0 auto;

    padding:70px 50px;

    background:rgba(255,255,255,0.35);

    border-radius:40px;

    text-align:center;
}

.thank-you-box h1{
    font-size:3rem;

    margin-bottom:25px;

    font-family:Georgia, serif;
}

.thank-you-box p{
    line-height:1.9;

    margin-bottom:20px;
}


/* =========================================================
   LEGAL PAGE
========================================================= */

.legal-page{
    padding-top: 70px;
    padding-bottom: 100px;
}

/* ===== WRAPPER ===== */

.legal-wrapper{
    max-width: 1000px;

    margin: 0 auto;
}

/* =========================================================
   HEADER
========================================================= */

.legal-header{
    margin-bottom: 60px;
}

.legal-header h1{
    font-size: clamp(3rem, 6vw, 5rem);

    font-family: Georgia, serif;

    line-height: 1.1;
}

/* =========================================================
   CONTENT
========================================================= */

.legal-content{
    background: rgba(255,255,255,0.35);

    backdrop-filter: blur(4px);

    border-radius: 40px;

    padding: 60px;

    border: 1px solid rgba(120,90,50,0.08);
}

.legal-content p{
    line-height: 2;

    margin-bottom: 26px;

    color: #4a3f35;
}

/* =========================================================
   BOXES
========================================================= */

.legal-box{
    margin-top: 55px;

    padding-top: 40px;

    border-top: 1px solid rgba(120,90,50,0.10);
}

.legal-box h2{
    font-size: 2rem;

    margin-bottom: 30px;

    font-family: Georgia, serif;
}

/* =========================================================
   DATA LIST
========================================================= */

.legal-data-list{
    display: flex;

    flex-direction: column;

    gap: 20px;
}

.legal-data-row{
    display: flex;

    gap: 20px;

    line-height: 1.8;
}

.legal-data-row strong{
    min-width: 220px;

    color: #3d2c1f;
}

.legal-data-row span{
    color: #5a4b3e;
}

.legal-data-row a{
    color: #9e7a49;

    text-decoration: none;
}

.legal-data-row a:hover{
    color: #b98945;
}


/* =========================================================
   IMPRESSZUM
========================================================= */

.impresszum-wrapper{
    padding: 70px 0 100px;
}

/* =========================================================
   TITLE
========================================================= */

.impresszum-wrapper h1{
    font-size: clamp(3rem, 6vw, 5rem);

    font-family: Georgia, serif;

    line-height: 1.1;

    color: #3d2c1f;
}

/* =========================================================
   GRID
========================================================= */

.impresszum-grid{
    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 40px;

    align-items: stretch;
}

/* =========================================================
   CARD
========================================================= */

.impresszum-card{
    background: rgba(255,255,255,0.35);

    backdrop-filter: blur(4px);

    border-radius: 36px;

    padding: 45px;

    border: 1px solid rgba(120,90,50,0.08);

    box-shadow:
        0 10px 30px rgba(0,0,0,0.04);

    transition: 0.3s ease;
}

.impresszum-card:hover{
    transform: translateY(-4px);
}

/* =========================================================
   HEADINGS
========================================================= */

.impresszum-card h3{
    font-size: 2rem;

    margin-bottom: 30px;

    font-family: Georgia, serif;

    color: #3d2c1f;
}

/* =========================================================
   TEXT
========================================================= */

.impresszum-card p{
    margin-bottom: 16px;

    line-height: 1.9;

    color: #4b3f34;
}

.impresszum-card strong{
    color: #2f241b;
}

/* =========================================================
   LINKS
========================================================= */

.impresszum-card a{
    color: #9e7a49;

    text-decoration: none;

    transition: 0.3s ease;
}

.impresszum-card a:hover{
    color: #b98945;
}

