
:root{
    --paper:#f3efe8;
    --paper-2:#ebe5dc;
    --ink:#171713;
    --muted:#736f68;
    --line:rgba(23,23,19,.16);
    --white:#fff;
    --accent:#756a58;
    --radius:2px;
    --max:1440px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;font-size:16px;line-height:1.55}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.section{width:min(calc(100% - 64px),var(--max));margin:0 auto;padding:120px 0}
.section-kicker{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:600;margin-bottom:34px;color:var(--muted)}
h1,h2,h3,p{margin-top:0}
h1,h2{font-family:"Playfair Display",Georgia,serif;font-weight:500;letter-spacing:-.04em;line-height:.96}
h2{font-size:clamp(52px,7vw,106px)}
em{font-weight:500}
.site-header{position:absolute;z-index:20;top:0;left:0;width:100%;height:108px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;color:#fff}
.brand{display:flex;align-items:baseline;gap:12px}
.brand-name{font-family:"Playfair Display",Georgia,serif;font-size:28px;letter-spacing:-.04em}
.brand-role{font-size:10px;text-transform:uppercase;letter-spacing:.18em;opacity:.75}
.site-nav{display:flex;align-items:center;gap:28px;font-size:13px}
.site-nav>a:not(.nav-cta){opacity:.85}
.site-nav>a:hover{opacity:1}
.nav-cta{border:1px solid rgba(255,255,255,.65);padding:12px 18px;border-radius:100px}
.menu-toggle{display:none;background:transparent;border:0;width:44px;height:44px;padding:12px}
.menu-toggle span:not(.sr-only){display:block;height:1px;background:currentColor;margin:6px 0}
.hero{height:min(920px,100svh);min-height:680px;position:relative;overflow:hidden;background:#24221e;color:#fff}
.hero-image{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.56) 0%,rgba(0,0,0,.18) 58%,rgba(0,0,0,.24) 100%),linear-gradient(0deg,rgba(0,0,0,.32),transparent 45%)}
.hero-content{position:absolute;left:max(48px,calc((100vw - var(--max))/2));bottom:13%;width:min(920px,calc(100% - 96px))}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:11px;font-weight:600;margin-bottom:28px}
.hero h1{font-size:clamp(58px,8vw,132px);margin:0 0 28px;max-width:1100px}
.hero-copy{max-width:650px;font-size:18px;line-height:1.55;margin-bottom:32px;color:rgba(255,255,255,.88)}
.hero-actions{display:flex;align-items:center;gap:28px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 24px;border:1px solid transparent;border-radius:100px;cursor:pointer;transition:.25s ease;font-weight:600;font-size:13px}
.button-light{background:#fff;color:#111}
.button-light:hover{transform:translateY(-2px);background:#f1eee9}
.button-dark{background:var(--ink);color:#fff}
.button-dark:hover{transform:translateY(-2px);background:#38362f}
.button-small{padding:11px 17px}
.text-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:600;padding-bottom:4px;border-bottom:1px solid currentColor}
.text-link span{transition:.2s}.text-link:hover span{transform:translate(3px,-2px)}
.text-link-light{color:#fff}
.scroll-cue{position:absolute;right:48px;bottom:35px;font-size:10px;text-transform:uppercase;letter-spacing:.14em;display:flex;gap:12px;opacity:.8}
.intro{padding-top:145px;padding-bottom:150px;border-bottom:1px solid var(--line)}
.intro-grid{display:grid;grid-template-columns:1.15fr .7fr;gap:12vw;align-items:start}
.intro-grid h2{margin-bottom:0}
.intro-copy{font-size:19px;max-width:560px;padding-top:24px}
.intro-copy p{margin-bottom:28px}
.section-head{display:grid;grid-template-columns:1fr 420px;gap:60px;align-items:end;margin-bottom:62px}
.section-head h2{margin-bottom:0}
.section-head p{margin-bottom:8px;color:var(--muted);font-size:17px}
.masonry{columns:3;column-gap:14px;margin-bottom:36px}
.gallery-item{position:relative;width:100%;display:inline-block;margin:0 0 14px;padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden;break-inside:avoid}
.gallery-item img{width:100%;height:auto;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.gallery-item:hover img{transform:scale(1.018)}
.gallery-item-large{column-span:none}
.portfolio-feature{padding-bottom:150px}
.services{background:var(--paper-2);width:100%;max-width:none;padding-left:max(32px,calc((100% - var(--max))/2));padding-right:max(32px,calc((100% - var(--max))/2))}
.services-header{display:grid;grid-template-columns:1fr 420px;align-items:end;margin-bottom:60px}
.services-header h2{margin:0}
.services-header p{color:var(--muted);font-size:18px;margin:0 0 12px}
.service-cards{display:grid;grid-template-columns:1.3fr .7fr;grid-template-rows:370px 370px;gap:16px}
.service-card{position:relative;overflow:hidden;color:#fff}
.service-card-wide{grid-row:1/3}
.service-card img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.service-card:hover img{transform:scale(1.025)}
.service-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.62),rgba(0,0,0,.03) 65%)}
.service-copy{position:absolute;left:30px;right:30px;bottom:28px}
.service-copy>span{font-size:10px;text-transform:uppercase;letter-spacing:.16em;opacity:.76}
.service-copy h3{font-family:"Playfair Display",Georgia,serif;font-size:clamp(38px,5vw,76px);font-weight:500;margin:10px 0 8px;line-height:1}
.service-copy p{max-width:430px;margin-bottom:16px;color:rgba(255,255,255,.82)}
.service-copy strong{font-size:12px}
.service-card-muted{filter:saturate(.78)}
.about{display:grid;grid-template-columns:.85fr 1fr;gap:10vw;align-items:center;padding-top:160px;padding-bottom:160px}
.about-photo-wrap{position:relative}
.about-photo{width:100%;aspect-ratio:4/5;object-fit:cover}
.image-note{position:absolute;left:10px;bottom:10px;background:rgba(0,0,0,.72);color:#fff;font-size:9px;padding:7px 9px;text-transform:uppercase;letter-spacing:.08em}
.about-copy h2{margin-bottom:45px}
.about-copy p{max-width:620px;color:#4e4b45}
.about-copy .about-lead{font-size:22px;color:var(--ink);line-height:1.55}
.pricing{border-top:1px solid var(--line)}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.price-card{position:relative;border:1px solid var(--line);padding:34px;min-height:520px;display:flex;flex-direction:column;background:rgba(255,255,255,.18)}
.price-card.featured{background:var(--ink);color:#fff;border-color:var(--ink)}
.price-badge{position:absolute;top:18px;right:18px;text-transform:uppercase;letter-spacing:.12em;font-size:9px;border:1px solid currentColor;border-radius:100px;padding:7px 10px;opacity:.7}
.price-card h3{font-family:"Playfair Display",Georgia,serif;font-size:31px;font-weight:500;margin-bottom:24px;padding-right:90px}
.price{font-family:"Playfair Display",Georgia,serif;font-size:46px;margin-bottom:18px;letter-spacing:-.03em}
.price-card p{color:var(--muted);min-height:52px}
.price-card.featured p{color:rgba(255,255,255,.65)}
.price-card ul{padding:24px 0 30px;margin:16px 0 30px;border-top:1px solid currentColor;list-style:none;opacity:.88}
.price-card li{padding:7px 0;font-size:14px}
.price-card li:before{content:"—";margin-right:10px;opacity:.5}
.price-card .text-link{margin-top:auto;align-self:flex-start}
.pricing-note{font-size:12px;color:var(--muted);margin-top:20px}
.process{border-top:1px solid var(--line)}
.process-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw}
.process-title h2{font-size:clamp(52px,5vw,82px);position:sticky;top:80px}
.steps{list-style:none;padding:0;margin:0}
.steps li{display:grid;grid-template-columns:60px 1fr;gap:18px;padding:28px 0;border-top:1px solid var(--line)}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps li>span{font-size:11px;color:var(--muted);letter-spacing:.1em}
.steps h3{font-family:"Playfair Display",Georgia,serif;font-size:30px;font-weight:500;margin-bottom:7px}
.steps p{color:var(--muted);margin:0}
.contact{width:100%;max-width:none;background:var(--ink);color:#fff;padding-left:max(32px,calc((100% - var(--max))/2));padding-right:max(32px,calc((100% - var(--max))/2));display:grid;grid-template-columns:.8fr 1fr;gap:9vw}
.contact .section-kicker{color:rgba(255,255,255,.55)}
.contact-heading h2{font-size:clamp(58px,6vw,96px);margin-bottom:32px}
.contact-heading>p{color:rgba(255,255,255,.65);max-width:470px}
.direct-contact{display:flex;flex-direction:column;gap:8px;margin-top:40px}
.direct-contact a{font-family:"Playfair Display",Georgia,serif;font-size:22px}
.contact-form{padding-top:47px}
.contact-form label,.admin-page label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:rgba(255,255,255,.62);margin-bottom:22px}
.contact-form input,.contact-form select,.contact-form textarea,.admin-page input,.admin-page select{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;padding:13px 0 15px;outline:0;border-radius:0}
.contact-form select option{color:#111}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-bottom-color:#fff}
.contact-form textarea{resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.submit-button{background:#fff;color:#111;margin-top:12px}
.form-alert{padding:14px 16px;margin:0 0 22px;font-size:13px;text-transform:none;letter-spacing:0}
.form-alert.success{background:#dcebdc;color:#19361b}
.form-alert.error{background:#f0d7d3;color:#5f211a}
.hp-field{position:absolute;left:-9999px}
.footer{background:var(--ink);color:#fff;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;padding:48px}
.footer-brand{display:flex;flex-direction:column}
.footer-brand strong{font-family:"Playfair Display",Georgia,serif;font-size:24px;font-weight:500}
.footer-brand span,.footer-meta{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.48)}
.footer-links{display:flex;gap:22px;font-size:12px;align-items:flex-start}
.footer-meta{display:flex;justify-content:flex-end;gap:20px}
.lightbox{position:fixed;z-index:100;inset:0;background:rgba(10,10,9,.96);display:flex;align-items:center;justify-content:center;padding:42px;opacity:0;visibility:hidden;transition:.25s}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{max-width:94vw;max-height:91vh;object-fit:contain}
.lightbox-close{position:absolute;top:20px;right:26px;border:0;background:transparent;color:#fff;font-size:42px;font-weight:200;cursor:pointer}
.dark-header{position:relative;color:var(--ink);height:100px}
.gallery-hero{padding-top:60px;padding-bottom:80px}
.gallery-hero h1{font-size:clamp(76px,12vw,180px);margin:28px 0 24px}
.gallery-hero p{font-size:20px;color:var(--muted)}
.back-link{font-size:12px;border-bottom:1px solid currentColor;padding-bottom:3px}
.gallery-full{padding-top:0}
.full-grid{columns:3}
.empty-gallery{border:1px solid var(--line);padding:80px 40px;text-align:center}
.empty-gallery h2{font-size:42px}
.gallery-cta{text-align:center;border-top:1px solid var(--line)}
.gallery-cta p{text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--muted)}
.gallery-cta h2{font-size:clamp(58px,7vw,100px);margin-bottom:40px}
.admin-page{background:#eeeae3}
.admin-shell{width:min(calc(100% - 48px),1200px);margin:auto;padding:48px 0 100px}
.admin-login{max-width:500px;margin:80px auto;background:#fff;padding:40px}
.admin-login h1,.admin-head h1{font-family:"Playfair Display",Georgia,serif;font-size:64px;font-weight:500;letter-spacing:-.04em}
.admin-login label,.upload-panel label{color:var(--muted)}
.admin-login input,.upload-panel input,.upload-panel select{color:var(--ink);border-bottom-color:var(--line)}
.admin-login .button{margin-top:12px}
.admin-head{display:flex;justify-content:space-between;align-items:end;margin:45px 0}
.admin-head h1{margin:0}
.admin-logout{border:0;background:transparent;cursor:pointer}
.upload-panel{background:#fff;padding:34px;margin-bottom:50px}
.upload-panel h2,.admin-gallery h2{font-family:"Playfair Display",Georgia,serif;font-size:34px;font-weight:500}
.upload-panel form{display:grid;grid-template-columns:1fr 1.5fr auto;gap:24px;align-items:end}
.upload-panel .field-note{grid-column:1/-1;color:var(--muted);font-size:12px;margin:0}
.admin-gallery{margin-top:50px}
.admin-gallery-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin-bottom:16px}
.admin-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.admin-grid article{position:relative;background:#ddd}
.admin-grid img{width:100%;aspect-ratio:1/1;object-fit:cover}
.admin-grid form{position:absolute;right:7px;bottom:7px}
.admin-grid button{border:0;background:rgba(0,0,0,.74);color:#fff;font-size:10px;padding:7px 10px;cursor:pointer}

@media (max-width:980px){
    .site-header{padding:0 24px;height:88px}
    .site-nav{position:fixed;inset:0;background:var(--ink);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:40px;font-family:"Playfair Display",Georgia,serif;font-size:42px;transform:translateX(100%);transition:.35s;z-index:-1}
    .site-nav.open{transform:translateX(0)}
    .site-nav .nav-cta{border:0;padding:0}
    .menu-toggle{display:block;z-index:2}
    .section{width:min(calc(100% - 40px),var(--max));padding:90px 0}
    .hero-content{left:24px;width:calc(100% - 48px)}
    .scroll-cue{right:24px}
    .intro-grid,.about,.process-grid,.contact{grid-template-columns:1fr;gap:50px}
    .section-head,.services-header{grid-template-columns:1fr;gap:24px}
    .masonry,.full-grid{columns:2}
    .service-cards{grid-template-columns:1fr 1fr;grid-template-rows:560px 340px}
    .service-card-wide{grid-column:1/3;grid-row:auto}
    .price-grid{grid-template-columns:1fr}
    .price-card{min-height:0}
    .contact{width:100%;padding-left:24px;padding-right:24px}
    .footer{grid-template-columns:1fr;gap:26px;padding:38px 24px}
    .footer-meta{justify-content:flex-start}
    .upload-panel form{grid-template-columns:1fr}
    .admin-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:600px){
    .brand-role{display:none}
    .hero{min-height:720px}
    .hero h1{font-size:54px}
    .hero-copy{font-size:16px}
    .hero-actions{align-items:flex-start;flex-direction:column;gap:20px}
    .section{width:calc(100% - 32px);padding:72px 0}
    h2{font-size:50px}
    .intro-grid{grid-template-columns:1fr}
    .intro-copy{font-size:17px}
    .masonry,.full-grid{columns:1}
    .service-cards{display:flex;flex-direction:column}
    .service-card,.service-card-wide{height:470px}
    .service-card-wide{grid-column:auto}
    .about{gap:45px}
    .price-card{padding:28px 22px}
    .form-row{grid-template-columns:1fr;gap:0}
    .contact-heading h2{font-size:54px}
    .footer-links{flex-wrap:wrap}
    .admin-grid{grid-template-columns:repeat(2,1fr)}
    .admin-login{padding:28px}
}


/* =========================================================
   V2 — COMPACT DESKTOP SCALE
   Keeps the original visual direction, but reduces oversized
   typography, whitespace and card heights.
   ========================================================= */

@media (min-width: 981px) {
    :root{
        --max: 1320px;
    }

    .section{
        width:min(calc(100% - 72px),var(--max));
        padding:82px 0;
    }

    .section-kicker{
        margin-bottom:22px;
        font-size:10px;
    }

    h2{
        font-size:clamp(44px,5.2vw,76px);
        line-height:1;
    }

    .site-header{
        height:88px;
        padding:0 40px;
    }

    .brand-name{
        font-size:24px;
    }

    .site-nav{
        gap:23px;
        font-size:12px;
    }

    .nav-cta{
        padding:10px 16px;
    }

    .hero{
        height:78vh;
        min-height:610px;
        max-height:790px;
    }

    .hero-content{
        left:max(40px,calc((100vw - var(--max))/2));
        bottom:11%;
        width:min(780px,calc(100% - 80px));
    }

    .eyebrow{
        margin-bottom:18px;
        font-size:10px;
    }

    .hero h1{
        font-size:clamp(54px,6.4vw,94px);
        margin-bottom:20px;
        max-width:900px;
    }

    .hero-copy{
        max-width:580px;
        font-size:16px;
        margin-bottom:25px;
    }

    .hero-actions{
        gap:24px;
    }

    .button{
        padding:14px 21px;
        font-size:12px;
    }

    .scroll-cue{
        right:40px;
        bottom:28px;
    }

    .intro{
        padding-top:96px;
        padding-bottom:96px;
    }

    .intro-grid{
        grid-template-columns:1.05fr .72fr;
        gap:9vw;
    }

    .intro-copy{
        font-size:17px;
        max-width:520px;
        padding-top:14px;
    }

    .intro-copy p{
        margin-bottom:20px;
    }

    .section-head{
        grid-template-columns:1fr 360px;
        gap:48px;
        margin-bottom:42px;
    }

    .section-head p{
        font-size:15px;
    }

    .masonry{
        column-gap:10px;
        margin-bottom:28px;
    }

    .gallery-item{
        margin-bottom:10px;
    }

    .portfolio-feature{
        padding-bottom:100px;
    }

    .services{
        padding-top:90px;
        padding-bottom:90px;
        padding-left:max(36px,calc((100% - var(--max))/2));
        padding-right:max(36px,calc((100% - var(--max))/2));
    }

    .services-header{
        grid-template-columns:1fr 360px;
        margin-bottom:42px;
    }

    .services-header p{
        font-size:16px;
    }

    .service-cards{
        grid-template-columns:1.25fr .75fr;
        grid-template-rows:285px 285px;
        gap:12px;
    }

    .service-copy{
        left:24px;
        right:24px;
        bottom:22px;
    }

    .service-copy h3{
        font-size:clamp(34px,4vw,58px);
        margin:7px 0 6px;
    }

    .service-copy p{
        margin-bottom:12px;
        font-size:14px;
    }

    .about{
        gap:8vw;
        padding-top:100px;
        padding-bottom:100px;
    }

    .about-photo{
        aspect-ratio:4/4.7;
    }

    .about-copy h2{
        margin-bottom:28px;
    }

    .about-copy .about-lead{
        font-size:19px;
    }

    .about-copy p{
        margin-bottom:17px;
    }

    .price-grid{
        gap:10px;
    }

    .price-card{
        padding:27px;
        min-height:430px;
    }

    .price-card h3{
        font-size:27px;
        margin-bottom:18px;
    }

    .price{
        font-size:38px;
        margin-bottom:13px;
    }

    .price-card p{
        min-height:42px;
        font-size:14px;
    }

    .price-card ul{
        padding:17px 0 21px;
        margin:10px 0 22px;
    }

    .price-card li{
        padding:5px 0;
        font-size:13px;
    }

    .process-grid{
        gap:8vw;
    }

    .process-title h2{
        font-size:clamp(42px,4.2vw,66px);
    }

    .steps li{
        grid-template-columns:50px 1fr;
        padding:20px 0;
    }

    .steps h3{
        font-size:25px;
        margin-bottom:5px;
    }

    .steps p{
        font-size:14px;
    }

    .contact{
        padding-top:92px;
        padding-bottom:92px;
        padding-left:max(36px,calc((100% - var(--max))/2));
        padding-right:max(36px,calc((100% - var(--max))/2));
        gap:7vw;
    }

    .contact-heading h2{
        font-size:clamp(48px,5vw,74px);
        margin-bottom:24px;
    }

    .contact-heading>p{
        font-size:15px;
    }

    .direct-contact{
        margin-top:30px;
    }

    .direct-contact a{
        font-size:19px;
    }

    .contact-form{
        padding-top:34px;
    }

    .contact-form label{
        margin-bottom:17px;
    }

    .contact-form input,
    .contact-form select,
    .contact-form textarea{
        padding:10px 0 12px;
    }

    .footer{
        padding:36px 40px;
    }

    .gallery-hero{
        padding-top:40px;
        padding-bottom:58px;
    }

    .gallery-hero h1{
        font-size:clamp(64px,9vw,128px);
        margin:20px 0 18px;
    }

    .gallery-hero p{
        font-size:17px;
    }

    .gallery-cta h2{
        font-size:clamp(48px,5vw,74px);
        margin-bottom:28px;
    }
}

/* Slightly tighter tablet scale too */
@media (min-width: 601px) and (max-width: 980px){
    .hero{
        min-height:640px;
        height:82vh;
    }
    .hero h1{
        font-size:clamp(50px,8vw,74px);
    }
    .section{
        padding:72px 0;
    }
    .service-cards{
        grid-template-rows:470px 290px;
    }
}


/* V3 — testimonials / reference management */
.testimonials{
    border-top:1px solid var(--line);
}
.testimonials-head{
    margin-bottom:34px;
}
.testimonial-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}
.testimonial-card{
    border:1px solid var(--line);
    padding:28px;
    min-height:310px;
    display:flex;
    flex-direction:column;
    background:rgba(255,255,255,.18);
}
.testimonial-rating{
    font-size:12px;
    letter-spacing:.15em;
    margin-bottom:22px;
}
.testimonial-card blockquote{
    margin:0 0 32px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:24px;
    line-height:1.35;
    letter-spacing:-.02em;
}
.testimonial-card footer{
    margin-top:auto;
    display:flex;
    flex-direction:column;
    gap:3px;
}
.testimonial-card footer strong{
    font-size:13px;
}
.testimonial-card footer span{
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:var(--muted);
}

.reviews-admin{
    margin:60px 0;
}
.review-admin-layout{
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:24px;
    align-items:start;
}
.review-add-form{
    background:#fff;
    padding:28px;
}
.review-add-form h3{
    font-family:"Playfair Display",Georgia,serif;
    font-size:30px;
    font-weight:500;
    margin-bottom:22px;
}
.review-add-form label{
    color:var(--muted);
}
.review-add-form input,
.review-add-form textarea,
.review-add-form select{
    width:100%;
    border:0;
    border-bottom:1px solid var(--line);
    background:transparent;
    color:var(--ink);
    padding:11px 0 12px;
    outline:0;
    resize:vertical;
}
.review-form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}
.review-admin-list{
    display:grid;
    gap:10px;
}
.review-admin-card{
    position:relative;
    background:#fff;
    padding:24px 100px 24px 24px;
}
.review-admin-card .testimonial-rating{
    margin-bottom:10px;
}
.review-admin-card p{
    margin-bottom:12px;
}
.review-admin-card strong,
.review-admin-card span{
    display:block;
}
.review-admin-card span{
    color:var(--muted);
    font-size:11px;
}
.review-admin-card form{
    position:absolute;
    right:20px;
    top:20px;
}
.delete-review{
    border:0;
    background:#eee8df;
    color:#6b2d26;
    padding:7px 10px;
    font-size:10px;
    cursor:pointer;
}

@media (max-width:980px){
    .testimonial-grid{grid-template-columns:1fr 1fr}
    .review-admin-layout{grid-template-columns:1fr}
}
@media (max-width:600px){
    .testimonial-grid{grid-template-columns:1fr}
    .testimonial-card{min-height:0}
    .testimonial-card blockquote{font-size:22px}
    .review-form-row{grid-template-columns:1fr}
}


/* V4 — branding + language switcher */
.lang-switch{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:10px;
    letter-spacing:.12em;
    margin-left:auto;
    margin-right:22px;
}
.lang-switch button{
    border:0;
    padding:4px 2px;
    background:transparent;
    color:inherit;
    cursor:pointer;
    opacity:.5;
    font-weight:600;
}
.lang-switch button.active{
    opacity:1;
    border-bottom:1px solid currentColor;
}
.lang-switch span{opacity:.35}
.gallery-header-actions{
    display:flex;
    align-items:center;
    gap:18px;
}
.gallery-header-actions .lang-switch{
    margin:0;
}
@media (max-width:980px){
    .site-header .lang-switch{
        margin-left:auto;
        margin-right:8px;
    }
    .brand-name{font-size:21px}
}
@media (max-width:600px){
    .brand-name{font-size:18px}
    .site-header .lang-switch{font-size:9px;gap:4px}
}


/* V5 — package editor */
.packages-admin{
    margin:60px 0;
}
.packages-admin-list{
    display:grid;
    gap:12px;
}
.package-editor{
    background:#fff;
    border:1px solid var(--line);
}
.package-editor summary{
    list-style:none;
    cursor:pointer;
    padding:22px 24px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.package-editor summary::-webkit-details-marker{
    display:none;
}
.package-editor summary>div{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.package-editor summary strong{
    font-family:"Playfair Display",Georgia,serif;
    font-size:25px;
    font-weight:500;
}
.package-editor summary span{
    color:var(--muted);
    font-size:12px;
}
.package-featured-chip{
    border:1px solid var(--line);
    border-radius:100px;
    padding:6px 9px;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:9px!important;
}
.package-edit-form{
    border-top:1px solid var(--line);
    padding:24px;
}
.package-language-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
}
.package-language-grid fieldset{
    border:1px solid var(--line);
    padding:20px;
}
.package-language-grid legend{
    padding:0 8px;
    font-weight:600;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.1em;
}
.package-language-grid label{
    color:var(--muted);
}
.package-language-grid input,
.package-language-grid textarea{
    width:100%;
    border:0;
    border-bottom:1px solid var(--line);
    background:transparent;
    color:var(--ink);
    padding:10px 0 11px;
    outline:0;
    resize:vertical;
}
.feature-checkbox{
    display:flex!important;
    align-items:center;
    gap:10px;
    margin:20px 0!important;
    color:var(--ink)!important;
    text-transform:none!important;
    letter-spacing:0!important;
}
.feature-checkbox input{
    width:auto!important;
}
.package-actions{
    display:flex;
    align-items:center;
    gap:15px;
}
.package-delete-form{
    padding:0 24px 24px;
}
.package-delete-form button{
    border:0;
    background:#eee8df;
    color:#6b2d26;
    padding:8px 11px;
    font-size:11px;
    cursor:pointer;
}
.new-package-editor summary{
    background:#f7f4ee;
}
@media (max-width:900px){
    .package-language-grid{
        grid-template-columns:1fr;
    }
}


/* V6 — wedding stories */
.wedding-stories{border-top:1px solid var(--line)}
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.story-card{position:relative;text-decoration:none;color:inherit}
.story-card-image{aspect-ratio:4/5;overflow:hidden;background:#ddd}
.story-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.story-card:hover .story-card-image img{transform:scale(1.025)}
.story-card-copy{padding:16px 2px 8px}
.story-card-copy>span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.story-card-copy h3{font-family:"Playfair Display",Georgia,serif;font-size:30px;font-weight:500;margin:5px 0 8px}
.story-card-copy strong{font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.stories-admin{margin:60px 0}
.stories-admin-list{display:grid;gap:12px;margin-top:12px}
.story-upload-form{border-top:1px solid var(--line);padding:24px;display:flex;align-items:end;gap:20px}
.story-upload-form label{flex:1}
.story-upload-form input{display:block;margin-top:8px}
.story-admin-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;padding:0 24px 24px}
.story-admin-thumb{position:relative;aspect-ratio:1;overflow:hidden;background:#eee}
.story-admin-thumb img{width:100%;height:100%;object-fit:cover}
.story-admin-thumb form{position:absolute;top:5px;right:5px}
.story-admin-thumb button{width:27px;height:27px;border:0;border-radius:50%;background:rgba(0,0,0,.72);color:#fff;cursor:pointer}
.story-page{padding-top:88px}
.story-hero{padding-top:70px;padding-bottom:55px}
.story-hero .section-kicker{margin-top:55px}
.story-hero h1{font-family:"Playfair Display",Georgia,serif;font-size:clamp(62px,8vw,118px);font-weight:500;line-height:.95;margin:0 0 20px;letter-spacing:-.045em}
.story-meta{font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:25px;color:var(--muted)}
.story-hero>p{max-width:650px;font-size:17px;line-height:1.65}
.story-gallery{padding-top:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.story-gallery .gallery-item{display:block;margin:0;overflow:hidden}
.story-gallery img{display:block;width:100%;height:auto}
.story-gallery .gallery-item:nth-child(5n+1){grid-column:1/-1}
@media(max-width:900px){
.story-grid{grid-template-columns:1fr 1fr}
.story-admin-thumbs{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:600px){
.story-grid{grid-template-columns:1fr}
.story-upload-form{display:block}
.story-upload-form .button{margin-top:15px}
.story-admin-thumbs{grid-template-columns:repeat(3,1fr);padding:0 16px 16px}
.story-gallery{grid-template-columns:1fr}
.story-gallery .gallery-item:nth-child(5n+1){grid-column:auto}
.story-hero h1{font-size:54px}
}


/* V7 — no lightbox + editorial wedding stories */
.gallery-item{
    cursor:default;
}
.gallery-item img{
    cursor:default;
}
.story-gallery{
    align-items:start;
}
.story-gallery .gallery-item{
    cursor:default;
}
.story-gallery .gallery-item:nth-child(5n+1){
    grid-column:1/-1;
}
.story-gallery .gallery-item:nth-child(5n+2){
    width:88%;
    justify-self:end;
}
.story-gallery .gallery-item:nth-child(5n+3){
    width:88%;
    justify-self:start;
}
.story-gallery .gallery-item:nth-child(5n+4){
    grid-column:1/-1;
    width:72%;
    justify-self:center;
    margin:34px 0;
}
.story-gallery .gallery-item:nth-child(5n){
    grid-column:1/-1;
}
@media(max-width:600px){
    .story-gallery .gallery-item,
    .story-gallery .gallery-item:nth-child(n){
        grid-column:auto;
        width:100%;
        justify-self:stretch;
        margin:0;
    }
}


/* V8 — automatic image optimization layout */
.gallery-grid{
    columns:auto;
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:10px;
}
.gallery-grid .gallery-item{
    display:block;
    margin:0;
    overflow:hidden;
    break-inside:auto;
}
.gallery-grid .gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.gallery-grid .image-landscape{
    grid-column:span 8;
    aspect-ratio:3/2;
}
.gallery-grid .image-portrait{
    grid-column:span 4;
    aspect-ratio:2/3;
}
.gallery-grid .image-square{
    grid-column:span 4;
    aspect-ratio:1/1;
}

/* Create a more natural rhythm when several portrait images occur together */
.gallery-grid .image-portrait:nth-child(3n+1){
    grid-column:span 4;
}
.gallery-grid .image-landscape:nth-child(4n+1){
    grid-column:span 12;
    aspect-ratio:16/9;
}

/* Whole wedding stories: orientation-driven editorial layout */
.story-gallery{
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:10px;
    align-items:start;
}
.story-gallery .gallery-item{
    margin:0;
    width:auto;
    justify-self:stretch;
}
.story-gallery .gallery-item img{
    width:100%;
    height:auto;
    object-fit:contain;
}
.story-gallery .image-landscape{
    grid-column:span 12;
}
.story-gallery .image-portrait{
    grid-column:span 6;
}
.story-gallery .image-square{
    grid-column:span 6;
}
.story-gallery .image-portrait:nth-of-type(4n+2),
.story-gallery .image-square:nth-of-type(4n+2){
    padding-right:5%;
}
.story-gallery .image-portrait:nth-of-type(4n+3),
.story-gallery .image-square:nth-of-type(4n+3){
    padding-left:5%;
}

/* Admin thumbs also preserve framing cleanly */
.admin-grid img,
.story-admin-thumb img{
    object-fit:cover;
}

@media(max-width:900px){
    .gallery-grid{
        grid-template-columns:repeat(6,minmax(0,1fr));
    }
    .gallery-grid .image-landscape{
        grid-column:span 6;
    }
    .gallery-grid .image-portrait,
    .gallery-grid .image-square{
        grid-column:span 3;
    }
    .gallery-grid .image-landscape:nth-child(4n+1){
        grid-column:span 6;
    }

    .story-gallery{
        grid-template-columns:repeat(6,minmax(0,1fr));
    }
    .story-gallery .image-landscape{
        grid-column:span 6;
    }
    .story-gallery .image-portrait,
    .story-gallery .image-square{
        grid-column:span 3;
    }
}
@media(max-width:600px){
    .gallery-grid,
    .story-gallery{
        display:block;
    }
    .gallery-grid .gallery-item,
    .story-gallery .gallery-item{
        width:100%;
        aspect-ratio:auto;
        padding:0;
        margin-bottom:8px;
    }
    .gallery-grid .gallery-item img,
    .story-gallery .gallery-item img{
        width:100%;
        height:auto;
        object-fit:contain;
    }
}


/* V10 — true masonry galleries, no empty grid holes */
.gallery-grid{
    display:block !important;
    columns:3 320px;
    column-gap:10px;
}
.gallery-grid .gallery-item{
    display:inline-block !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:auto !important;
    margin:0 0 10px !important;
    break-inside:avoid;
    grid-column:auto !important;
    padding:0 !important;
}
.gallery-grid .gallery-item img{
    display:block;
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
}

/* Whole wedding stories use a slightly wider editorial masonry */
.story-gallery{
    display:block !important;
    columns:2 420px;
    column-gap:10px;
}
.story-gallery .gallery-item,
.story-gallery .gallery-item:nth-child(n),
.story-gallery .image-landscape,
.story-gallery .image-portrait,
.story-gallery .image-square{
    display:inline-block !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:auto !important;
    margin:0 0 10px !important;
    padding:0 !important;
    break-inside:avoid;
    grid-column:auto !important;
    justify-self:auto !important;
}
.story-gallery .gallery-item img{
    display:block;
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
}

@media(max-width:900px){
    .gallery-grid{
        columns:2 260px;
    }
    .story-gallery{
        columns:2 300px;
    }
}
@media(max-width:600px){
    .gallery-grid,
    .story-gallery{
        columns:1;
    }
}


/* V11 — restored wedding story links + visible event preview */
.wedding-stories{
    border-top:1px solid var(--line);
}
.story-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.story-card{
    display:block;
    color:inherit;
    text-decoration:none;
}
.story-card-image{
    aspect-ratio:4/5;
    overflow:hidden;
    background:#e8e3dc;
}
.story-card-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .55s ease;
}
.story-card:hover .story-card-image img{
    transform:scale(1.025);
}
.story-card-copy{
    padding:15px 2px 8px;
}
.story-card-copy>span{
    display:block;
    margin-bottom:4px;
    color:var(--muted);
    font-size:10px;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.story-card-copy h3{
    margin:0 0 8px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:30px;
    font-weight:500;
}
.story-card-copy strong{
    font-size:10px;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.event-preview{
    margin-top:48px;
    padding-top:24px;
    border-top:1px solid var(--line);
}
.event-preview-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:14px;
    font-size:10px;
    letter-spacing:.11em;
    text-transform:uppercase;
}
.event-preview-head a{
    color:inherit;
    text-decoration:none;
}
.event-preview-grid{
    columns:3 260px;
    column-gap:10px;
}
.event-preview-item{
    display:inline-block;
    width:100%;
    margin:0 0 10px;
    break-inside:avoid;
}
.event-preview-item img{
    display:block;
    width:100%;
    height:auto;
}

@media(max-width:900px){
    .story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .event-preview-grid{columns:2 240px}
}
@media(max-width:600px){
    .story-grid{grid-template-columns:1fr}
    .event-preview-grid{columns:1}
}


/* V12 — forest green / champagne / warm ivory */
:root{
    --paper:#f4efe5;
    --paper-2:#e9dfcf;
    --ink:#18352d;
    --muted:#756d5e;
    --line:rgba(24,53,45,.18);
    --white:#fffdf8;
    --accent:#b49a68;
    --forest:#18352d;
    --forest-deep:#102820;
    --champagne:#c6ad78;
}
body{background:var(--paper);color:var(--ink)}
.section-kicker,.eyebrow{color:#8d784e}
.button-dark,.price-card.featured{background:var(--forest);border-color:var(--forest);color:#fffdf8}
.nav-cta{border-color:rgba(198,173,120,.75)}
.site-header:not(.scrolled) .nav-socials a{color:#fff}
.site-header.scrolled .nav-socials a,.light-header .nav-socials a{color:var(--forest)}
.hero-shade{background:linear-gradient(90deg,rgba(10,35,28,.68) 0%,rgba(10,35,28,.18) 58%,rgba(10,35,28,.30) 100%),linear-gradient(0deg,rgba(10,35,28,.38),transparent 45%)}
.price-badge{color:var(--champagne)}
.contact{background:var(--forest);color:#fffdf8}
.contact .section-kicker,.contact a{color:var(--champagne)}

.nav-socials{display:flex;align-items:center;gap:10px}
.nav-socials a{display:grid;place-items:center;width:27px;height:27px;opacity:.82;transition:opacity .2s ease,transform .2s ease}
.nav-socials a:hover{opacity:1;transform:translateY(-1px)}
.nav-socials svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7}
.nav-socials a:last-child svg{fill:currentColor;stroke:none}

/* References: 3 visible cards, horizontal scroll */
.testimonial-carousel{position:relative}
.testimonial-grid{
    display:flex !important;
    grid-template-columns:none !important;
    gap:14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    scrollbar-width:none;
    padding:1px;
}
.testimonial-grid::-webkit-scrollbar{display:none}
.testimonial-card{
    flex:0 0 calc((100% - 28px)/3);
    scroll-snap-align:start;
}
.testimonial-arrow{
    position:absolute;
    top:50%;
    z-index:5;
    width:46px;height:46px;
    margin-top:-23px;
    border:1px solid rgba(198,173,120,.55);
    border-radius:50%;
    background:var(--forest);
    color:#fffdf8;
    cursor:pointer;
    opacity:0;
    transform:scale(.94);
    transition:opacity .2s ease,transform .2s ease;
    box-shadow:0 8px 25px rgba(16,40,32,.18);
}
.testimonial-carousel:hover .testimonial-arrow{opacity:1;transform:scale(1)}
.testimonial-arrow-prev{left:-23px}
.testimonial-arrow-next{right:-23px}
.testimonial-arrow:disabled{opacity:0!important;pointer-events:none}

.gallery-stories{margin-top:100px;padding-top:70px;border-top:1px solid var(--line)}
.gallery-stories .story-grid{margin-top:35px}

@media(max-width:900px){
    .testimonial-card{flex-basis:calc((100% - 14px)/2)}
    .testimonial-arrow{opacity:.9}
    .nav-socials{margin-left:auto}
}
@media(max-width:600px){
    .testimonial-card{flex-basis:86%}
    .testimonial-arrow{display:none}
    .nav-socials a{width:32px;height:32px}
}


/* V12.1 — testimonial carousel click fix */
.testimonial-carousel{
    overflow:visible;
}
.testimonial-arrow{
    pointer-events:auto;
    z-index:20;
}
.testimonial-arrow:disabled{
    pointer-events:none;
}


/* V12.2 — stable and stronger top navigation */
.site-nav{
    font-weight:600;
    letter-spacing:.015em;
}
.site-nav > a:not(.nav-cta){
    opacity:.96;
}
.site-nav > a:not(.nav-cta):hover{
    opacity:1;
}
.nav-cta{
    width:126px;
    min-width:126px;
    justify-content:center;
    text-align:center;
    white-space:nowrap;
    font-weight:600;
}

.nav-socials{
    position:relative;
    margin-left:6px;
    padding-left:20px;
}
.nav-socials::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:1px;
    height:22px;
    transform:translateY(-50%);
    background:rgba(255,255,255,.38);
}
.site-header.scrolled .nav-socials::before,
.light-header .nav-socials::before,
.dark-header .nav-socials::before{
    background:rgba(24,53,45,.25);
}

@media(max-width:980px){
    .site-nav{
        font-weight:500;
        letter-spacing:0;
    }
    .site-nav .nav-cta{
        width:auto;
        min-width:0;
        text-align:left;
    }
    .nav-socials{
        padding-left:12px;
        margin-left:4px;
    }
    .nav-socials::before{
        height:20px;
    }
}


/* V12.3 — stable navigation, language switch at the end */
.site-nav{
    font-weight:400;
    letter-spacing:0;
    flex:1;
    justify-content:flex-end;
    white-space:nowrap;
}
.site-nav > a:not(.nav-cta){
    font-weight:400;
    opacity:.88;
}
.site-nav > a:not(.nav-cta):hover{opacity:1}
.nav-cta{
    width:auto;
    min-width:0;
    font-weight:400;
    flex:0 0 auto;
}
.site-nav .lang-switch{
    flex:0 0 58px;
    width:58px;
    justify-content:flex-end;
    margin-left:2px;
}
.nav-socials{
    flex:0 0 auto;
}
@media(min-width:981px){
    .site-header{
        display:grid;
        grid-template-columns:minmax(230px,auto) 1fr;
        column-gap:32px;
    }
    .menu-toggle{display:none}
}
@media(max-width:980px){
    .site-header{display:flex}
    .site-nav{white-space:normal}
    .site-nav .lang-switch{
        width:auto;
        flex:0 0 auto;
        justify-content:flex-start;
        margin-top:8px;
    }
}


/* V12.4 — consistent header alignment on every page */
.site-header,
.gallery-header,
.subpage-header{
    width:100%;
}
.site-header .site-nav,
.gallery-header .site-nav,
.subpage-header .site-nav{
    margin-left:auto !important;
    justify-content:flex-end !important;
    text-align:right;
}
.site-header .brand,
.gallery-header .brand,
.subpage-header .brand{
    margin-right:auto;
    flex:0 0 auto;
}
@media(min-width:981px){
    body .site-header{
        display:flex !important;
        align-items:center;
    }
    body .site-header .site-nav{
        display:flex;
        flex:0 1 auto;
        margin-left:auto !important;
    }
}


/* V12.5 — fixed-height homepage wedding selection */
.home-wedding-grid{
    display:grid;
    grid-template-columns:1.2fr .8fr .8fr;
    grid-template-rows:1fr 1fr;
    gap:10px;
    height:560px;
    margin-bottom:28px;
}
.home-wedding-grid .gallery-item{
    display:block;
    width:100%;
    height:100%;
    margin:0;
    padding:0;
    overflow:hidden;
    aspect-ratio:auto !important;
    break-inside:auto;
}
.home-wedding-grid .gallery-item:nth-child(1){
    grid-column:1;
    grid-row:1 / 3;
}
.home-wedding-grid .gallery-item:nth-child(2){
    grid-column:2;
    grid-row:1;
}
.home-wedding-grid .gallery-item:nth-child(3){
    grid-column:3;
    grid-row:1;
}
.home-wedding-grid .gallery-item:nth-child(4){
    grid-column:2 / 4;
    grid-row:2;
}
.home-wedding-grid .gallery-item img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center;
    display:block;
}

@media(max-width:900px){
    .home-wedding-grid{
        grid-template-columns:1fr 1fr;
        grid-template-rows:1.15fr .85fr;
        height:520px;
    }
    .home-wedding-grid .gallery-item:nth-child(1){
        grid-column:1;
        grid-row:1;
    }
    .home-wedding-grid .gallery-item:nth-child(2){
        grid-column:2;
        grid-row:1;
    }
    .home-wedding-grid .gallery-item:nth-child(3){
        grid-column:1;
        grid-row:2;
    }
    .home-wedding-grid .gallery-item:nth-child(4){
        grid-column:2;
        grid-row:2;
    }
}

@media(max-width:600px){
    .home-wedding-grid{
        grid-template-columns:1fr 1fr;
        grid-template-rows:1fr 1fr;
        height:420px;
        gap:7px;
    }
    .home-wedding-grid .gallery-item:nth-child(n){
        grid-column:auto;
        grid-row:auto;
    }
}


/* V12.6 — focused homepage + wedding stories landing */

/* Homepage: Eventy as the only secondary-service card */
.service-cards-events-only{
    display:block !important;
}
.service-card-events-only{
    display:block;
    width:100%;
    height:430px;
    position:relative;
    overflow:hidden;
}
.service-card-events-only img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.service-card-events-only .service-copy{
    max-width:620px;
}
.service-card-events-only .service-copy h3{
    font-size:clamp(42px,5vw,68px);
}

/* Weddings landing: subtle atmosphere strip */
.wedding-atmosphere{
    position:relative;
    display:flex;
    gap:6px;
    height:280px;
    overflow:hidden;
    margin-bottom:90px;
    background:var(--forest-deep);
}
.wedding-atmosphere-item{
    flex:1 1 0;
    min-width:0;
    height:100%;
    overflow:hidden;
}
.wedding-atmosphere-item.image-portrait{
    flex:.72 1 0;
}
.wedding-atmosphere-item.image-landscape{
    flex:1.28 1 0;
}
.wedding-atmosphere-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.72) contrast(.92) brightness(.84);
}
.wedding-atmosphere-overlay{
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        linear-gradient(90deg,rgba(24,53,45,.22),rgba(180,154,104,.08),rgba(24,53,45,.18)),
        linear-gradient(0deg,rgba(244,239,229,.12),transparent 45%);
}
.wedding-stories-primary{
    margin-top:0;
    padding-top:0;
    border-top:0;
}
.wedding-stories-primary .story-grid{
    margin-top:42px;
}
.wedding-stories-primary .story-card-image{
    aspect-ratio:4/3;
}
.wedding-stories-primary .story-card-copy{
    padding-top:14px;
}

@media(max-width:900px){
    .service-card-events-only{height:380px}
    .wedding-atmosphere{
        height:220px;
        margin-bottom:65px;
    }
    .wedding-atmosphere-item:nth-child(n+6){
        display:none;
    }
}
@media(max-width:600px){
    .service-card-events-only{height:340px}
    .wedding-atmosphere{
        height:180px;
        margin-bottom:48px;
        gap:4px;
    }
    .wedding-atmosphere-item:nth-child(n+5){
        display:none;
    }
}


/* V12.7 — polish batch */

/* Section 08: same horizontal width as the rest of the page */
.contact.section,
#kontakt.section{
    width:auto !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
}
.contact.section > *,
#kontakt.section > *{
    max-width:none;
}

/* Hero readability: elegant, not bold */
.hero .eyebrow,
.hero .hero-kicker{
    font-size:13px;
    letter-spacing:.19em;
    opacity:1;
}
.hero::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:rgba(244,239,229,.12);
    z-index:1;
}
.hero > *{
    position:relative;
    z-index:2;
}
.site-header{
    font-size:14px;
}
.site-header .site-nav > a{
    text-shadow:0 1px 12px rgba(16,40,32,.28);
}

/* Homepage event section: text-only, same width as main content */
.event-home-text{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);
    gap:70px;
    width:100%;
    padding:52px 0;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    align-items:end;
}
.event-home-text h3{
    margin:8px 0 0;
    max-width:780px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:clamp(42px,5.5vw,76px);
    line-height:.98;
    font-weight:500;
}
.event-home-copy{
    max-width:520px;
    justify-self:end;
}
.event-home-copy p{
    margin:0 0 24px;
    color:var(--muted);
    font-size:15px;
    line-height:1.7;
}

/* Weddings + events: auto story carousel */
.story-carousel-shell{
    position:relative;
    margin-bottom:90px;
}
.story-carousel-track{
    display:flex;
    gap:8px;
    overflow-x:auto;
    scroll-behavior:smooth;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    height:270px;
}
.story-carousel-track::-webkit-scrollbar{display:none}
.story-carousel-slide{
    position:relative;
    flex:0 0 clamp(230px,28vw,410px);
    height:100%;
    overflow:hidden;
    scroll-snap-align:start;
    text-decoration:none;
    color:#fff;
    background:var(--forest-deep);
}
.story-carousel-slide:nth-child(3n+2){
    flex-basis:clamp(190px,22vw,330px);
}
.story-carousel-slide img{
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.78) contrast(.94) brightness(.88);
    transition:transform .45s ease,filter .45s ease;
}
.story-carousel-slide::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,rgba(16,40,32,.52),transparent 50%);
}
.story-carousel-slide span{
    position:absolute;
    z-index:2;
    left:18px;
    bottom:16px;
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    opacity:.88;
}
.story-carousel-slide:hover img{
    transform:scale(1.025);
    filter:saturate(.9) contrast(.98) brightness(.94);
}
.story-carousel-arrow{
    position:absolute;
    top:50%;
    z-index:5;
    width:44px;
    height:44px;
    margin-top:-22px;
    border:1px solid rgba(198,173,120,.58);
    border-radius:50%;
    background:rgba(24,53,45,.92);
    color:#fffdf8;
    cursor:pointer;
    opacity:0;
    transition:opacity .2s ease,transform .2s ease;
}
.story-carousel-shell:hover .story-carousel-arrow{opacity:1}
.story-carousel-prev{left:-22px}
.story-carousel-next{right:-22px}

@media(max-width:900px){
    .event-home-text{
        grid-template-columns:1fr;
        gap:25px;
    }
    .event-home-copy{
        justify-self:start;
    }
    .story-carousel-track{height:230px}
    .story-carousel-arrow{opacity:.9}
}
@media(max-width:600px){
    .event-home-text{padding:38px 0}
    .story-carousel-track{height:200px}
    .story-carousel-slide{flex-basis:78vw}
    .story-carousel-arrow{display:none}
}


/* V12.8 — header rollback, wide Eventy, bulk admin */

/* Restore hero/header behavior from before V12.7 */
.hero::after{
    display:none !important;
}
.hero > *{
    position:initial;
    z-index:auto;
}
.hero .hero-image{
    position:absolute !important;
    inset:0;
    z-index:0;
}
.hero .hero-shade{
    position:absolute !important;
    inset:0;
    z-index:1;
}
.hero .hero-content{
    position:absolute !important;
    z-index:2;
}
.hero .scroll-cue{
    position:absolute !important;
    z-index:2;
}
.site-header{
    z-index:20;
    font-size:13px;
}
.hero .eyebrow{
    font-size:10px;
    letter-spacing:.2em;
    opacity:1;
}
.site-header .site-nav > a{
    text-shadow:none;
}

/* Section 03 Eventy: use the full available content width */
.services .event-home-text{
    width:100%;
    max-width:none;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.services .event-home-text h3{
    max-width:none;
}
.services .event-home-copy{
    width:100%;
    max-width:none;
    justify-self:stretch;
}

/* Bulk photo selection */
.admin-gallery-actions,
.bulk-toolbar{
    display:flex;
    align-items:center;
    gap:12px;
}
.bulk-toolbar{
    justify-content:space-between;
    padding:10px 24px 14px;
}
.bulk-delete-button{
    border:1px solid #9b5148;
    background:transparent;
    color:#7a3028;
    padding:8px 12px;
    font-size:11px;
    cursor:pointer;
}
.bulk-delete-button:hover:not(:disabled){
    background:#7a3028;
    color:#fff;
}
.bulk-delete-button:disabled{
    opacity:.35;
    cursor:default;
}
.admin-photo-card{
    position:relative;
}
.admin-photo-select{
    position:absolute !important;
    z-index:4;
    top:7px;
    left:7px;
    margin:0 !important;
    cursor:pointer;
}
.admin-photo-select input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.admin-photo-select span{
    display:block;
    width:25px;
    height:25px;
    border:1px solid rgba(255,255,255,.9);
    background:rgba(0,0,0,.38);
    box-shadow:0 1px 5px rgba(0,0,0,.18);
}
.admin-photo-select input:checked + span{
    background:#18352d;
    border-color:#c6ad78;
}
.admin-photo-select input:checked + span::after{
    content:"✓";
    display:grid;
    place-items:center;
    width:100%;
    height:100%;
    color:#fff;
    font-size:15px;
}
.story-photo-manager{
    margin-top:14px;
}
.admin-grid form,
.story-admin-thumb form{
    display:none;
}

@media(max-width:900px){
    .services .event-home-text{
        grid-template-columns:1fr;
    }
}


/* V12.9 — seamless story carousel */
.story-carousel-track{
    overscroll-behavior-x:contain;
}
.story-carousel-slide{
    flex-shrink:0;
}


/* V12.10 — align section 03 with surrounding sections */
.services.aligned-section{
    width:min(calc(100% - 64px),var(--max)) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
}
.services.aligned-section .section-kicker,
.services.aligned-section .services-header,
.services.aligned-section .event-home-text{
    width:100%;
    margin-left:0;
    margin-right:0;
}
.services.aligned-section .section-kicker{
    margin-bottom:28px;
}
.services.aligned-section .services-header{
    margin-bottom:28px;
}
.services.aligned-section .event-home-text{
    padding-top:42px;
    padding-bottom:42px;
}

@media(max-width:980px){
    .services.aligned-section{
        width:min(calc(100% - 40px),var(--max)) !important;
    }
}
@media(max-width:600px){
    .services.aligned-section{
        width:calc(100% - 32px) !important;
    }
}


/* V12.11 — admin, story navigation, compact about, branding, video */

/* Header brand: one compact identity */
.brand{
    gap:10px;
}
.brand-name{
    text-transform:uppercase;
}
.brand-role{
    font-family:"DM Sans",Arial,sans-serif;
    font-size:10px;
    font-weight:400;
    text-transform:uppercase;
    letter-spacing:.18em;
    opacity:.72;
}

/* About section: photo is supportive, not dominant */
.about{
    grid-template-columns:minmax(250px,380px) 1fr;
    gap:7vw;
    padding-top:105px;
    padding-bottom:105px;
}
.about-photo-wrap{
    width:100%;
    max-width:360px;
    justify-self:center;
}
.about-photo{
    aspect-ratio:4/5;
}

/* Process: keep Předsvatební schůzka on one line on desktop */
.process-grid{
    grid-template-columns:.8fr 1.2fr;
    gap:7vw;
}
.steps h3{
    white-space:nowrap;
}
@media(max-width:980px){
    .steps h3{white-space:normal}
}

/* Floating back control for long stories */
.story-page .story-hero,
.story-page .story-gallery,
.story-page .gallery-cta{
    width:min(calc(100% - 120px),var(--max));
}
.floating-story-back{
    position:fixed;
    z-index:25;
    left:12px;
    top:50%;
    transform:translateY(-50%);
    writing-mode:vertical-rl;
    rotate:180deg;
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 8px;
    border:1px solid var(--line);
    background:rgba(244,239,229,.92);
    backdrop-filter:blur(8px);
    color:var(--forest);
    font-size:10px;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.floating-story-back:hover{
    background:var(--forest);
    color:#fffdf8;
}
@media(max-width:700px){
    .story-page .story-hero,
    .story-page .story-gallery,
    .story-page .gallery-cta{
        width:calc(100% - 32px);
    }
    .floating-story-back{
        left:12px;
        top:auto;
        bottom:14px;
        transform:none;
        writing-mode:horizontal-tb;
        rotate:0deg;
        border-radius:100px;
        padding:9px 13px;
        box-shadow:0 7px 25px rgba(16,40,32,.16);
    }
}

/* Admin deletion controls side-by-side */
.bulk-delete-group{
    display:flex;
    align-items:center;
    gap:8px;
}
.bulk-delete-all-button{
    border:1px solid #7a3028;
    background:#7a3028;
    color:#fff;
    padding:8px 12px;
    font-size:11px;
    cursor:pointer;
}
.bulk-delete-all-button:hover{
    background:#5e211b;
}

/* Video admin */
.videos-admin{
    margin:60px 0;
}
.videos-admin-list{
    display:grid;
    gap:12px;
    margin-top:12px;
}
.video-admin-preview{
    padding:20px 24px 0;
}
.video-admin-preview img{
    width:220px;
    aspect-ratio:16/9;
    object-fit:cover;
}
.video-edit-form{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px 24px;
}
.video-edit-form label:nth-of-type(3),
.video-edit-form label:nth-of-type(4),
.video-edit-form .button{
    grid-column:1/-1;
}

/* Public video library */
.video-library{
    padding-top:0;
}
.video-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:42px 14px;
}
.video-card{
    display:block;
}
.video-thumb{
    position:relative;
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--forest-deep);
}
.video-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease,filter .5s ease;
}
.video-play{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    display:grid;
    place-items:center;
    width:58px;
    height:58px;
    padding-left:4px;
    border-radius:50%;
    background:rgba(24,53,45,.88);
    color:#fff;
    border:1px solid rgba(198,173,120,.55);
}
.video-card:hover .video-thumb img{
    transform:scale(1.02);
    filter:brightness(.9);
}
.video-card-copy{
    padding:16px 2px 0;
}
.video-card-copy h2{
    font-size:30px;
    margin-bottom:8px;
}
.video-card-copy p{
    color:var(--muted);
    margin-bottom:12px;
}
.video-card-copy strong{
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.1em;
}
@media(max-width:800px){
    .video-grid{grid-template-columns:1fr}
    .video-edit-form{grid-template-columns:1fr}
    .video-edit-form label,
    .video-edit-form .button{grid-column:1}
}


/* V12.12 — section 03, compact reviews, process title, stronger back button */

/* 1) Section 03: same page background, separation through spacing + champagne rules */
.services.aligned-section,
.services{
    background:transparent !important;
}
.services.aligned-section::before,
.services.aligned-section::after{
    content:"";
    display:block;
    width:100%;
    height:1px;
    background:rgba(180,154,104,.42);
}
.services.aligned-section::before{
    margin-bottom:42px;
}
.services.aligned-section::after{
    margin-top:42px;
}
.services.aligned-section .event-home-text{
    border-top:0 !important;
    border-bottom:0 !important;
    padding-top:24px;
    padding-bottom:24px;
}

/* 2) Reviews: no artificial empty vertical space */
.testimonial-track,
.reviews-track,
.testimonials-track{
    align-items:flex-start !important;
}
.testimonial-card,
.review-card,
.testimonials-card{
    min-height:0 !important;
    height:auto !important;
    align-self:flex-start !important;
}
.testimonial-card p,
.review-card p,
.testimonials-card p{
    min-height:0 !important;
}
.testimonial-card,
.review-card{
    padding-top:26px !important;
    padding-bottom:26px !important;
}

/* 3) Process: guarantee Předsvatební schůzka on one line on desktop */
@media(min-width:981px){
    .process-grid{
        grid-template-columns:minmax(260px,.62fr) minmax(650px,1.38fr) !important;
        gap:5vw !important;
    }
    .steps li{
        grid-template-columns:52px minmax(0,1fr);
        gap:14px;
    }
    .steps h3{
        white-space:nowrap !important;
        font-size:clamp(25px,2.05vw,30px);
    }
}

/* 4) Stronger floating return button */
.floating-story-back{
    background:var(--forest) !important;
    color:#fffdf8 !important;
    border:1px solid rgba(198,173,120,.88) !important;
    box-shadow:0 10px 28px rgba(16,40,32,.22);
    font-weight:600;
    opacity:1;
    padding:13px 10px;
    transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.floating-story-back:hover{
    background:#c6ad78 !important;
    color:var(--forest-deep) !important;
    box-shadow:0 12px 34px rgba(16,40,32,.3);
}
@media(max-width:700px){
    .floating-story-back{
        padding:11px 16px;
        box-shadow:0 8px 28px rgba(16,40,32,.28);
    }
}


/* V12.13 — clean event-only section 03 */
.event-only-section{
    background:transparent !important;
    padding-top:88px;
    padding-bottom:88px;
}
.event-only-section::before,
.event-only-section::after{
    display:none !important;
}
.event-only-section .section-kicker{
    margin-bottom:34px;
}
.event-only-grid{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:8vw;
    align-items:end;
    padding-top:34px;
    border-top:1px solid rgba(180,154,104,.42);
}
.event-only-title h2{
    margin:0;
    max-width:850px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:clamp(50px,6vw,88px);
    line-height:.98;
    font-weight:500;
    letter-spacing:-.035em;
}
.event-only-copy{
    max-width:520px;
    justify-self:end;
}
.event-only-copy p{
    margin:0 0 24px;
    color:var(--muted);
    font-size:16px;
    line-height:1.7;
}

@media(max-width:900px){
    .event-only-grid{
        grid-template-columns:1fr;
        gap:28px;
    }
    .event-only-copy{
        justify-self:start;
        max-width:620px;
    }
}


/* V12.14 — redesigned 04 / About section */
.about{
    position:relative;
    grid-template-columns:minmax(180px,280px) minmax(0,680px) !important;
    justify-content:center;
    align-items:center;
    gap:clamp(52px,7vw,110px) !important;
    padding-top:82px !important;
    padding-bottom:82px !important;
}
.about-photo-wrap{
    width:100%;
    max-width:260px !important;
    justify-self:end !important;
}
.about-photo{
    aspect-ratio:4/4.7 !important;
    height:auto !important;
    object-fit:cover;
}
.about-copy{
    width:100%;
    max-width:680px;
    justify-self:start;
}
.about-copy .section-kicker{
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:22px;
}
.about-copy .section-kicker::after{
    content:"";
    width:64px;
    height:1px;
    background:rgba(180,154,104,.58);
}
.about-copy h2{
    margin-top:0;
}
@media(min-width:901px){
    .about-copy{
        transform:translateX(24px);
    }
}
@media(max-width:900px){
    .about{
        grid-template-columns:1fr !important;
        gap:34px !important;
        padding-top:64px !important;
        padding-bottom:64px !important;
    }
    .about-photo-wrap{
        max-width:230px !important;
        justify-self:start !important;
    }
    .about-copy{
        justify-self:start;
    }
}


/* V12.15 — Event page always shows uploaded event photos */
.event-gallery-primary{
    margin-bottom:90px;
}
.event-gallery-head{
    margin-bottom:38px;
}
.event-stories-secondary{
    padding-top:72px;
    margin-top:90px;
    border-top:1px solid rgba(180,154,104,.42);
}
.event-photo-grid{
    margin-top:0;
}


/* V12.16 — justified Event gallery */
.event-photo-grid.justified-gallery{
    display:flex !important;
    flex-wrap:wrap;
    align-items:flex-start;
    gap:var(--jg-gap,8px);
    columns:auto !important;
}
.event-photo-grid.justified-gallery .gallery-item{
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    width:auto;
    height:260px;
    overflow:hidden;
    aspect-ratio:auto !important;
}
.event-photo-grid.justified-gallery .gallery-item img{
    display:block;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}
@media(max-width:700px){
    .event-photo-grid.justified-gallery .gallery-item{
        height:190px;
    }
}


/* V12.17 — cleaner testimonials with vertical dividers */
.testimonial-grid{
    align-items:stretch !important;
    gap:0 !important;
}
.testimonial-card{
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    min-height:0 !important;
    height:auto !important;
    align-self:stretch !important;
    padding:18px 32px 20px !important;
    position:relative;
}
.testimonial-card + .testimonial-card::before{
    content:"";
    position:absolute;
    left:0;
    top:14px;
    bottom:14px;
    width:1px;
    background:rgba(180,154,104,.42);
}
.testimonial-card blockquote{
    margin-bottom:24px !important;
}
.testimonial-card footer{
    margin-top:auto;
}
.testimonial-rating{
    margin-bottom:16px !important;
}

@media(max-width:700px){
    .testimonial-card{
        padding-left:22px !important;
        padding-right:22px !important;
    }
    .testimonial-card + .testimonial-card::before{
        top:10px;
        bottom:10px;
    }
}


/* V12.19 — simplified, color-matched contact select */
.contact-form select#contact-service{
    appearance:none;
    -webkit-appearance:none;
    background:
        linear-gradient(45deg,transparent 50%,var(--champagne) 50%) right 18px center/6px 6px no-repeat,
        linear-gradient(135deg,var(--champagne) 50%,transparent 50%) right 12px center/6px 6px no-repeat,
        rgba(255,253,248,.04);
    border:1px solid rgba(198,173,120,.42) !important;
    color:#fffdf8 !important;
    padding:14px 42px 14px 14px !important;
    border-radius:2px !important;
    cursor:pointer;
}
.contact-form select#contact-service:focus{
    border-color:var(--champagne) !important;
    outline:none;
    box-shadow:0 0 0 2px rgba(198,173,120,.12);
}
.contact-form select#contact-service option{
    background:var(--forest-deep);
    color:#fffdf8;
}


/* V12.20 — merged 01 / Weddings */
.wedding-intro-merged{
    padding-top:100px;
    padding-bottom:105px;
}
.wedding-merged-head{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:8vw;
    align-items:end;
    margin-top:34px;
    padding-top:34px;
    border-top:1px solid rgba(180,154,104,.42);
}
.wedding-merged-head h2{
    margin:0;
    max-width:850px;
    font-family:"Playfair Display",Georgia,serif;
    font-size:clamp(54px,6.3vw,92px);
    line-height:.96;
    font-weight:500;
    letter-spacing:-.04em;
}
.wedding-merged-copy{
    max-width:540px;
    justify-self:end;
}
.wedding-merged-copy p{
    margin:0 0 26px;
    color:var(--muted);
    font-size:16px;
    line-height:1.72;
}
.wedding-merged-preview{
    display:grid;
    grid-template-columns:1.15fr .85fr 1fr 1.1fr;
    gap:8px;
    height:330px;
    margin-top:58px;
    overflow:hidden;
}
.wedding-merged-photo{
    min-width:0;
    height:100%;
    overflow:hidden;
}
.wedding-merged-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.wedding-merged-photo.portrait{
    grid-row:auto;
}
@media(max-width:900px){
    .wedding-merged-head{
        grid-template-columns:1fr;
        gap:28px;
    }
    .wedding-merged-copy{
        justify-self:start;
    }
    .wedding-merged-preview{
        grid-template-columns:1fr 1fr;
        height:480px;
    }
    .wedding-merged-photo{
        height:236px;
    }
}
@media(max-width:600px){
    .wedding-intro-merged{
        padding-top:70px;
        padding-bottom:75px;
    }
    .wedding-merged-preview{
        height:360px;
        margin-top:40px;
    }
    .wedding-merged-photo{
        height:176px;
    }
}


/* V12.21 — custom contact calendar */
.calendar-field{
    position:relative;
}
.custom-date-wrap{
    position:relative;
}
.custom-date-trigger{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:14px 14px;
    border:1px solid rgba(198,173,120,.42);
    border-radius:2px;
    background:rgba(255,253,248,.04);
    color:#fffdf8;
    cursor:pointer;
    text-align:left;
}
.custom-date-trigger:hover,
.custom-date-trigger[aria-expanded="true"]{
    border-color:var(--champagne);
    background:rgba(255,253,248,.07);
}
.custom-date-trigger svg{
    width:19px;
    height:19px;
    flex:0 0 auto;
    fill:none;
    stroke:var(--champagne);
    stroke-width:1.5;
}
.custom-calendar{
    position:absolute;
    z-index:40;
    left:0;
    top:calc(100% + 8px);
    width:min(340px,calc(100vw - 48px));
    padding:18px;
    background:var(--forest-deep);
    color:#fffdf8;
    border:1px solid rgba(198,173,120,.55);
    box-shadow:0 18px 45px rgba(8,28,22,.32);
}
.custom-calendar[hidden]{
    display:none !important;
}
.custom-calendar-head{
    display:grid;
    grid-template-columns:38px 1fr 38px;
    align-items:center;
    gap:8px;
    margin-bottom:16px;
}
.custom-calendar-head strong{
    text-align:center;
    font-family:"Playfair Display",Georgia,serif;
    font-size:18px;
    font-weight:500;
    text-transform:capitalize;
}
.calendar-nav{
    width:36px;
    height:36px;
    border:1px solid rgba(198,173,120,.3);
    background:transparent;
    color:#fffdf8;
    cursor:pointer;
}
.calendar-nav:hover{
    border-color:var(--champagne);
    color:var(--champagne);
}
.calendar-weekdays,
.calendar-days{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:4px;
}
.calendar-weekdays{
    margin-bottom:6px;
}
.calendar-weekdays span{
    display:grid;
    place-items:center;
    height:28px;
    color:rgba(255,253,248,.52);
    font-size:9px;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.calendar-day,
.calendar-empty{
    aspect-ratio:1;
}
.calendar-day{
    border:0;
    background:transparent;
    color:#fffdf8;
    cursor:pointer;
    font-size:12px;
    border-radius:50%;
}
.calendar-day:hover{
    background:rgba(198,173,120,.18);
}
.calendar-day.is-today{
    outline:1px solid rgba(198,173,120,.55);
    outline-offset:-3px;
}
.calendar-day.is-selected{
    background:var(--champagne);
    color:var(--forest-deep);
    font-weight:600;
}
.calendar-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid rgba(198,173,120,.18);
}
.calendar-footer button{
    border:0;
    background:transparent;
    color:var(--champagne);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
    cursor:pointer;
}
.calendar-footer button:hover{
    color:#fffdf8;
}

@media(max-width:600px){
    .custom-calendar{
        width:min(320px,calc(100vw - 32px));
    }
}


/* V12.22 — real merged 01 / Svatby */
.wedding-intro-merged{
    padding-top:100px;
    padding-bottom:105px;
}
.wedding-merged-head{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:8vw;
    align-items:end;
    margin-top:34px;
    padding-top:34px;
    border-top:1px solid rgba(180,154,104,.42);
}
.wedding-merged-head h2{
    margin:0;
    font-size:clamp(54px,6vw,90px);
    line-height:.96;
}
.wedding-merged-copy{
    max-width:560px;
    justify-self:end;
}
.wedding-merged-copy p{
    margin:0 0 26px;
    color:var(--muted);
    font-size:16px;
    line-height:1.72;
}
.wedding-merged-gallery{
    margin-top:56px;
}
@media(max-width:900px){
    .wedding-merged-head{
        grid-template-columns:1fr;
        gap:28px;
    }
    .wedding-merged-copy{
        justify-self:start;
    }
}


/* V12.23 — sticky header + album logo visibility + compact 01→02 */

/* Header follows the visitor everywhere */
.sticky-site-header{
    position:fixed !important;
    top:0;
    left:0;
    right:0;
    width:100%;
    z-index:100;
    transition:
        height .22s ease,
        background .22s ease,
        color .22s ease,
        box-shadow .22s ease,
        backdrop-filter .22s ease;
}
.sticky-site-header.is-scrolled{
    height:78px;
    background:rgba(244,239,229,.94);
    color:var(--forest) !important;
    box-shadow:0 8px 28px rgba(16,40,32,.08);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}
.sticky-site-header.is-scrolled .nav-cta{
    border-color:rgba(24,53,45,.35);
}
.sticky-site-header.is-scrolled .nav-socials::before{
    background:rgba(24,53,45,.22);
}
.sticky-site-header.is-scrolled .nav-socials a,
.sticky-site-header.is-scrolled .lang-switch,
.sticky-site-header.is-scrolled .site-nav{
    color:var(--forest) !important;
}

/* Album/detail pages always start with readable dark branding */
.light-header.sticky-site-header{
    color:var(--forest) !important;
    background:rgba(244,239,229,.96);
    box-shadow:0 1px 0 rgba(24,53,45,.10);
}
.light-header.sticky-site-header .brand,
.light-header.sticky-site-header .brand-name,
.light-header.sticky-site-header .brand-role,
.light-header.sticky-site-header .lang-switch,
.light-header.sticky-site-header .gallery-header-actions{
    color:var(--forest) !important;
}
.light-header.sticky-site-header .button-dark{
    background:var(--forest);
    color:#fffdf8;
}

/* Gallery subpages also keep their header position stable */
.dark-header.sticky-site-header{
    background:rgba(244,239,229,.96);
    color:var(--forest) !important;
    box-shadow:0 1px 0 rgba(24,53,45,.10);
}

/* Account for fixed headers on non-hero pages */
.gallery-page main,
.story-page{
    scroll-margin-top:90px;
}
.gallery-page .gallery-hero{
    padding-top:105px;
}
.story-page{
    padding-top:100px !important;
}

/* Compact transition from 01 / Svatby into 02 / Eventy */
.wedding-intro-merged{
    padding-bottom:58px !important;
}
.wedding-intro-merged .home-wedding-grid,
.wedding-intro-merged .wedding-merged-gallery{
    margin-bottom:0 !important;
}
.event-only-section{
    padding-top:54px !important;
}
.event-only-section .section-kicker{
    margin-top:0 !important;
}

/* Mobile sticky header stays compact */
@media(max-width:980px){
    .sticky-site-header,
    .sticky-site-header.is-scrolled{
        height:76px;
    }
    .gallery-page .gallery-hero{
        padding-top:90px;
    }
    .story-page{
        padding-top:86px !important;
    }
}


/* V12.35 — menu links, about alignment, typography spacing, process dividers */

/* 03 / O mně: left-aligned editorial layout */
.about.about-editorial{
    grid-template-columns:minmax(0,1fr) minmax(220px,320px) !important;
    gap:clamp(48px,7vw,110px) !important;
    align-items:center !important;
    justify-content:stretch !important;
}
.about.about-editorial .about-editorial-copy{
    grid-column:1;
    grid-row:1;
    justify-self:start !important;
    max-width:720px;
    width:100%;
    transform:none !important;
    text-align:left !important;
}
.about.about-editorial .about-editorial-photo{
    grid-column:2;
    grid-row:1;
    justify-self:end !important;
    max-width:280px !important;
    width:100%;
}
.about.about-editorial .about-photo{
    width:100%;
    aspect-ratio:4/4.8;
    object-fit:cover;
}
.about.about-editorial .section-kicker{
    justify-content:flex-start !important;
    text-align:left !important;
}
.about.about-editorial h2,
.about.about-editorial p{
    text-align:left !important;
}

/* Typography: keep current font, reduce oversized headings and loosen spacing */
.hero h1{
    font-size:clamp(58px,6.8vw,104px) !important;
    letter-spacing:-.01em !important;
    line-height:.95 !important;
}
.wedding-merged-head h2,
.event-only-title h2,
.about-copy h2,
.gallery-hero h1,
.story-hero h1,
.contact-heading h2,
.process-title h2{
    letter-spacing:-.005em !important;
}
.wedding-merged-head h2{
    font-size:clamp(50px,5.7vw,84px) !important;
}
.event-only-title h2{
    font-size:clamp(48px,5.4vw,80px) !important;
}
.about-copy h2{
    font-size:clamp(48px,5vw,72px) !important;
}
.gallery-hero h1{
    font-size:clamp(66px,9vw,138px) !important;
}
.story-hero h1{
    font-size:clamp(56px,7vw,104px) !important;
}
.contact-heading h2{
    font-size:clamp(52px,5.5vw,86px) !important;
}

/* 04 / Jak to probíhá:
   only separators BETWEEN steps, not above first / below last */
.steps li{
    border-top:0 !important;
    border-bottom:0 !important;
}
.steps li + li{
    border-top:1px solid var(--line) !important;
}
.steps li:last-child{
    border-bottom:0 !important;
}

/* keep spacing compact around process list */
.steps{
    margin-top:0 !important;
}
.process-grid{
    align-items:start;
}

@media(max-width:900px){
    .about.about-editorial{
        grid-template-columns:1fr !important;
        gap:32px !important;
    }
    .about.about-editorial .about-editorial-copy{
        grid-column:1;
        grid-row:1;
    }
    .about.about-editorial .about-editorial-photo{
        grid-column:1;
        grid-row:2;
        justify-self:start !important;
        max-width:230px !important;
    }
}


/* V12.36 — unified homepage section dividers
   Rule: divider always ABOVE the new section, never below its kicker/title.
   Section 01 has no top divider because it directly follows the hero. */

/* Remove legacy/internal section-head borders that visually compete with section dividers */
.homepage .section-head,
body:not(.gallery-page):not(.story-page-body):not(.video-page) .section-head{
    border-top:0 !important;
}

/* Sections 02–07: one consistent divider at the top edge */
#eventy,
.about.about-editorial,
.process,
.pricing,
.testimonials,
.contact{
    position:relative;
    border-top:1px solid var(--line) !important;
}

/* Keep 01 clean after hero */
#svatby,
.wedding-intro-merged{
    border-top:0 !important;
}

/* Prevent duplicate top rules from immediate inner wrappers */
#eventy > :first-child,
.about.about-editorial > :first-child,
.process > :first-child,
.pricing > :first-child,
.testimonials > :first-child,
.contact > :first-child{
    border-top:0 !important;
}

/* Divider should have consistent breathing room before kicker/content */
#eventy,
.about.about-editorial,
.process,
.pricing,
.testimonials,
.contact{
    padding-top:clamp(54px,6vw,82px) !important;
}


/* V12.37 — hard reset of homepage section dividers */

/* Kill all legacy decorative top/bottom rules on homepage sections/wrappers */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    #svatby,
    #eventy,
    .about,
    .process,
    .pricing,
    .testimonials,
    .contact,
    .section-head,
    .event-only-grid,
    .wedding-merged-head,
    .about-copy,
    .process-grid,
    .price-grid,
    .testimonial-carousel,
    .contact-heading
){
    border-top:0 !important;
    border-bottom:0 !important;
}

/* Remove any pseudo-element divider attempts from older versions */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    #eventy,
    .about,
    .process,
    .pricing,
    .testimonials,
    .contact
)::before,
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    #eventy,
    .about,
    .process,
    .pricing,
    .testimonials,
    .contact
)::after{
    content:none !important;
    display:none !important;
}

/* Create ONE unified divider using the section's first kicker */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    #eventy,
    .about,
    .process,
    .pricing,
    .testimonials,
    .contact
){
    position:relative;
    padding-top:72px !important;
}

/* single divider, identical geometry everywhere */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    #eventy,
    .about,
    .process,
    .pricing,
    .testimonials,
    .contact
)::before{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    height:1px !important;
    background:var(--line) !important;
}

/* section 01 intentionally has no divider above it */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(#svatby,.wedding-intro-merged)::before,
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(#svatby,.wedding-intro-merged)::after{
    content:none !important;
    display:none !important;
}

/* restore ONLY the meaningful separators between steps in section 04 */
.steps li{
    border-top:0 !important;
    border-bottom:0 !important;
}
.steps li + li{
    border-top:1px solid var(--line) !important;
}

/* Keep kicker spacing consistent after divider */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    #eventy,
    .about,
    .process,
    .pricing,
    .testimonials,
    .contact
) .section-kicker{
    margin-top:0 !important;
}

@media(max-width:900px){
    body:not(.gallery-page):not(.story-page-body):not(.video-page)
    :is(
        #eventy,
        .about,
        .process,
        .pricing,
        .testimonials,
        .contact
    ){
        padding-top:56px !important;
    }
}


/* V12.38 — consistent short accent line after every homepage section heading */

/* Remove legacy one-off heading lines */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    .wedding-merged-head h2,
    .event-only-title h2,
    .about-copy h2,
    .process-title h2,
    .pricing h2,
    .testimonials h2,
    .contact-heading h2
)::after{
    content:none !important;
}

/* One identical accent line below every main section heading */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    .wedding-merged-head h2,
    .event-only-title h2,
    .about-copy h2,
    .process-title h2,
    .pricing .section-head h2,
    .testimonials .section-head h2,
    .contact-heading h2
){
    position:relative;
    padding-bottom:24px !important;
}

body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    .wedding-merged-head h2,
    .event-only-title h2,
    .about-copy h2,
    .process-title h2,
    .pricing .section-head h2,
    .testimonials .section-head h2,
    .contact-heading h2
)::after{
    content:"" !important;
    display:block !important;
    width:52px !important;
    height:1px !important;
    background:var(--champagne) !important;
    margin-top:18px !important;
}


/* V12.39 — short accent line BESIDE each homepage section heading */

/* Undo V12.38 below-heading accent */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    .wedding-merged-head h2,
    .event-only-title h2,
    .about-copy h2,
    .process-title h2,
    .pricing .section-head h2,
    .testimonials .section-head h2,
    .contact-heading h2
){
    padding-bottom:0 !important;
}

/* Place identical short line horizontally after the heading */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    .wedding-merged-head h2,
    .event-only-title h2,
    .about-copy h2,
    .process-title h2,
    .pricing .section-head h2,
    .testimonials .section-head h2,
    .contact-heading h2
){
    display:flex !important;
    align-items:center !important;
    gap:22px !important;
}

body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    .wedding-merged-head h2,
    .event-only-title h2,
    .about-copy h2,
    .process-title h2,
    .pricing .section-head h2,
    .testimonials .section-head h2,
    .contact-heading h2
)::after{
    content:"" !important;
    display:block !important;
    flex:0 0 52px !important;
    width:52px !important;
    height:1px !important;
    background:var(--champagne) !important;
    margin:0 !important;
}


/* V12.40 — accent line belongs beside SECTION KICKER (01 / Svatby etc.) */

/* Remove the mistakenly-added line from large headings */
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    .wedding-merged-head h2,
    .event-only-title h2,
    .about-copy h2,
    .process-title h2,
    .pricing .section-head h2,
    .testimonials .section-head h2,
    .contact-heading h2
){
    display:block !important;
}
body:not(.gallery-page):not(.story-page-body):not(.video-page)
:is(
    .wedding-merged-head h2,
    .event-only-title h2,
    .about-copy h2,
    .process-title h2,
    .pricing .section-head h2,
    .testimonials .section-head h2,
    .contact-heading h2
)::after{
    content:none !important;
    display:none !important;
}

/* Put one consistent short line AFTER 01 / Svatby, 02 / Eventy, ... */
body:not(.gallery-page):not(.story-page-body):not(.video-page) .section-kicker{
    display:flex !important;
    align-items:center !important;
    gap:14px !important;
    width:fit-content;
}
body:not(.gallery-page):not(.story-page-body):not(.video-page) .section-kicker::after{
    content:"" !important;
    display:block !important;
    width:42px !important;
    height:1px !important;
    flex:0 0 42px !important;
    background:var(--champagne) !important;
    margin:0 !important;
}


/* V12.43 — remove homepage process safely, preserve downstream layout */
.process{
    display:none !important;
}


/* V12.44 — Wedding FAQ */
.wedding-faq{
    padding-top:92px;
    padding-bottom:96px;
    border-top:1px solid var(--line);
}
.wedding-faq-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(260px,420px);
    column-gap:8vw;
    align-items:end;
    margin-bottom:48px;
}
.wedding-faq-head .section-kicker{
    grid-column:1 / -1;
    margin-bottom:22px;
}
.wedding-faq-head h2{
    margin:0;
    font-family:var(--serif);
    font-size:clamp(46px,5.3vw,78px);
    line-height:.95;
    font-weight:500;
    letter-spacing:-.005em;
}
.wedding-faq-head p{
    margin:0;
    max-width:420px;
    line-height:1.7;
    color:var(--muted);
}
.faq-list{
    border-top:1px solid var(--line);
}
.faq-item{
    border-bottom:1px solid var(--line);
}
.faq-item summary{
    list-style:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    padding:25px 0;
    font-size:18px;
    font-weight:500;
}
.faq-item summary::-webkit-details-marker{
    display:none;
}
.faq-plus{
    flex:0 0 auto;
    font-size:27px;
    line-height:1;
    font-weight:300;
    transition:transform .22s ease;
}
.faq-item[open] .faq-plus{
    transform:rotate(45deg);
}
.faq-answer{
    max-width:760px;
    padding:0 60px 26px 0;
}
.faq-answer p{
    margin:0;
    color:var(--muted);
    line-height:1.75;
}
.wedding-faq-cta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    margin-top:54px;
    padding-top:34px;
}
.wedding-faq-cta p{
    margin:0;
    font-family:var(--serif);
    font-size:clamp(30px,3.4vw,48px);
}
@media(max-width:760px){
    .wedding-faq{
        padding-top:68px;
        padding-bottom:72px;
    }
    .wedding-faq-head{
        grid-template-columns:1fr;
        gap:20px;
        margin-bottom:36px;
    }
    .wedding-faq-head .section-kicker{
        grid-column:auto;
        margin-bottom:0;
    }
    .faq-item summary{
        padding:21px 0;
        font-size:16px;
    }
    .faq-answer{
        padding-right:20px;
    }
    .wedding-faq-cta{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* Keep Playfair, but give Czech glyphs room instead of squeezing them together */
h1,
h2,
h3,
.brand-name,
.price,
.story-hero h1{
    letter-spacing:-.008em !important;
}

.hero h1,
.gallery-hero h1,
.story-hero h1{
    line-height:.98 !important;
}

/* avoid different font behavior in mobile navigation */
@media(max-width:980px){
    .site-nav{
        font-family:"DM Sans",Arial,sans-serif !important;
    }
}


/* V12.48 — About copy: maximum two typefaces */
.about.about-editorial .about-editorial-copy p,
.about.about-editorial .about-editorial-copy .about-lead,
.about.about-editorial .about-editorial-copy p strong{
    font-family:"DM Sans",Arial,sans-serif !important;
    font-style:normal !important;
}

.about.about-editorial .about-editorial-copy p strong{
    font-weight:600 !important;
}

/* The section heading may remain Playfair Display; body copy is consistently DM Sans. */


/* V12.49 — About copy: one identical text format */
.about.about-editorial .about-editorial-copy p,
.about.about-editorial .about-editorial-copy .about-lead,
.about.about-editorial .about-editorial-copy p strong{
    font-family:"DM Sans",Arial,sans-serif !important;
    font-size:18px !important;
    font-weight:400 !important;
    font-style:normal !important;
    line-height:1.7 !important;
    letter-spacing:0 !important;
    color:#4e4b45 !important;
}

/* Strong tag must not create a third visual text style here */
.about.about-editorial .about-editorial-copy p strong{
    font-weight:400 !important;
}


/* V12.51 — larger scrolling menu links */
.site-header .site-nav a{
    font-size:16px !important;
}

@media(max-width:980px){
    .site-header .site-nav a{
        font-size:16px !important;
    }
}


/* V12.52 — homepage must start exactly at the top */
html,
body{
    margin-top:0 !important;
    padding-top:0 !important;
}

body:not(.gallery-page):not(.story-page-body):not(.video-page){
    overflow-x:hidden;
}

body:not(.gallery-page):not(.story-page-body):not(.video-page) .hero{
    margin-top:0 !important;
}


/* V12.53 — remove the reserved header strip above homepage hero */

/* Homepage starts directly at viewport top */
body:not(.gallery-page):not(.story-page-body):not(.video-page) main,
body:not(.gallery-page):not(.story-page-body):not(.video-page) #top{
    margin-top:0 !important;
    padding-top:0 !important;
}

/* Hero must sit under the fixed header, not below a reserved header slot */
body:not(.gallery-page):not(.story-page-body):not(.video-page) .hero{
    margin-top:0 !important;
    padding-top:0 !important;
    top:0 !important;
}

/* Fixed header overlays the hero */
body:not(.gallery-page):not(.story-page-body):not(.video-page) .site-header,
body:not(.gallery-page):not(.story-page-body):not(.video-page) .sticky-site-header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    margin:0 !important;
}

/* Neutralise legacy spacer/padding if present */
body:not(.gallery-page):not(.story-page-body):not(.video-page) .site-header + main,
body:not(.gallery-page):not(.story-page-body):not(.video-page) .sticky-site-header + main{
    padding-top:0 !important;
    margin-top:0 !important;
}


/* V12.54 — prevent overscroll above homepage */
html{
    overscroll-behavior-y:none;
    background:#24221e;
}

body{
    overscroll-behavior-y:none;
}

/* Keep ordinary scrolling, but never expose a white canvas above the hero */
body:not(.gallery-page):not(.story-page-body):not(.video-page){
    background:#24221e;
}

body:not(.gallery-page):not(.story-page-body):not(.video-page) main{
    background:var(--paper);
}

body:not(.gallery-page):not(.story-page-body):not(.video-page) .hero{
    background:#24221e;
}


/* V12.55 — real homepage top fix */

/* Undo the dark root-background workaround from V12.54 */
html,
body{
    background:var(--paper) !important;
}

/* Keep overscroll disabled, but do not paint the gap dark */
html,
body{
    overscroll-behavior-y:none;
}

/*
   The old header layout still leaves roughly one header-height of visual reserve
   before the hero. Pull only the homepage hero upward through that reserve.
*/
body:not(.gallery-page):not(.story-page-body):not(.video-page) main#top{
    position:relative;
    margin-top:-108px !important;
    padding-top:108px !important;
    background:var(--paper) !important;
}

body:not(.gallery-page):not(.story-page-body):not(.video-page) .hero{
    margin-top:-108px !important;
    padding-top:108px !important;
    box-sizing:border-box;
}

/* Header stays fixed over the image */
body:not(.gallery-page):not(.story-page-body):not(.video-page) .site-header,
body:not(.gallery-page):not(.story-page-body):not(.video-page) .sticky-site-header{
    top:0 !important;
}

/* Mobile header is shorter */
@media(max-width:900px){
    body:not(.gallery-page):not(.story-page-body):not(.video-page) main#top{
        margin-top:-88px !important;
        padding-top:88px !important;
    }
    body:not(.gallery-page):not(.story-page-body):not(.video-page) .hero{
        margin-top:-88px !important;
        padding-top:88px !important;
    }
}

/* V13.34 — requested homepage/admin refinements */
.section-strong-cta{
    display:inline-flex;
    align-items:center;
    gap:14px;
    margin-top:10px;
    padding:14px 20px;
    text-decoration:none;
    box-shadow:0 10px 28px rgba(16,40,32,.12);
}
.section-strong-cta:hover{transform:translateY(-1px)}

/* Larger portrait in the About section */
.about.about-editorial{
    grid-template-columns:minmax(0,1fr) minmax(300px,440px) !important;
    gap:clamp(48px,6vw,92px) !important;
}
.about.about-editorial .about-editorial-photo{
    max-width:420px !important;
}

/* Packages use the same horizontal browsing pattern as testimonials */
.package-carousel{position:relative;overflow:visible}
.package-carousel .price-grid{
    display:flex !important;
    grid-template-columns:none !important;
    gap:14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    scrollbar-width:none;
    padding:1px;
}
.package-carousel .price-grid::-webkit-scrollbar{display:none}
.package-carousel .price-card{
    flex:0 0 calc((100% - 28px)/3);
    scroll-snap-align:start;
    min-width:0;
}
.package-arrow{
    position:absolute;
    top:50%;
    z-index:20;
    width:46px;
    height:46px;
    margin-top:-23px;
    border:1px solid rgba(198,173,120,.55);
    border-radius:50%;
    background:var(--forest);
    color:#fffdf8;
    cursor:pointer;
    opacity:0;
    transform:scale(.94);
    transition:opacity .2s ease,transform .2s ease;
    box-shadow:0 8px 25px rgba(16,40,32,.18);
}
.package-carousel:hover .package-arrow{opacity:1;transform:scale(1)}
.package-arrow-prev{left:-23px}
.package-arrow-next{right:-23px}
.package-arrow:disabled{opacity:0!important;pointer-events:none}

/* Editable website text admin */
.site-text-admin{margin:54px 0;background:#fff;padding:30px}
.site-text-admin-head{margin:0 0 18px;border-bottom:1px solid var(--line);padding-bottom:18px}
.site-text-admin-head h2{font-family:"Playfair Display",Georgia,serif;font-size:38px;font-weight:500;margin:0 0 6px}
.site-text-admin-head p{margin:0;color:var(--muted);font-size:13px}
.site-text-form{display:grid;gap:10px}
.site-text-group{border:1px solid var(--line);background:#fbf9f5}
.site-text-group summary{cursor:pointer;padding:17px 19px;font-weight:600;font-size:14px}
.site-text-fields{padding:0 19px 19px;display:grid;gap:18px}
.site-text-field{padding-top:18px;border-top:1px solid var(--line)}
.site-text-field>strong{display:block;margin-bottom:10px;font-family:"Playfair Display",Georgia,serif;font-size:19px;font-weight:500}
.site-text-language-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.site-text-language-grid label{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.site-text-language-grid label span{display:block;margin-bottom:5px}
.site-text-language-grid input,
.site-text-language-grid textarea{
    width:100%;
    border:1px solid var(--line);
    background:#fff;
    color:var(--ink);
    padding:11px 12px;
    outline:0;
    resize:vertical;
    font:inherit;
    text-transform:none;
    letter-spacing:0;
}
.site-text-language-grid textarea{line-height:1.5}
.site-text-savebar{position:sticky;bottom:12px;display:flex;justify-content:flex-end;padding-top:12px;z-index:5}

@media(max-width:900px){
    .about.about-editorial{grid-template-columns:1fr !important}
    .about.about-editorial .about-editorial-photo{max-width:360px !important}
    .package-carousel .price-card{flex-basis:calc((100% - 14px)/2)}
    .package-arrow{opacity:.9}
    .site-text-language-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
    .about.about-editorial .about-editorial-photo{max-width:300px !important}
    .package-carousel .price-card{flex-basis:86%}
    .package-arrow{display:none}
    .site-text-admin{padding:20px 14px}
}
\n\n/* V13.35 — compact tabbed admin dashboard */\n.admin-dashboard-nav{\n    position:sticky;\n    top:10px;\n    z-index:40;\n    display:flex;\n    gap:8px;\n    overflow-x:auto;\n    padding:10px;\n    margin:-18px 0 28px;\n    background:rgba(247,244,238,.96);\n    border:1px solid var(--line);\n    box-shadow:0 8px 24px rgba(20,35,30,.07);\n    backdrop-filter:blur(10px);\n}\n.admin-tab{\n    flex:0 0 auto;\n    border:1px solid var(--line);\n    background:#fff;\n    color:var(--ink);\n    padding:10px 15px;\n    cursor:pointer;\n    font:inherit;\n    font-size:12px;\n    font-weight:600;\n    letter-spacing:.02em;\n}\n.admin-tab:hover{border-color:#9c8b69}\n.admin-tab.is-active{background:var(--forest-deep);color:#fff;border-color:var(--forest-deep)}\n.admin-panel{display:none!important}\n.admin-panel.is-active{display:block!important}\n\n.site-text-admin{margin:0;background:#fff;padding:24px}\n.site-text-admin-head{margin-bottom:14px;padding-bottom:14px}\n.site-text-admin-head h2{font-size:32px}\n.site-text-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}\n.site-text-group{margin:0;min-width:0}\n.site-text-group summary{padding:14px 16px}\n.site-text-fields{padding:0 14px 14px;gap:12px}\n.site-text-field{padding-top:12px}\n.site-text-field>strong{font-size:16px;margin-bottom:8px}\n.site-text-language-grid{gap:10px}\n.site-text-language-grid input,\n.site-text-language-grid textarea{padding:9px 10px;font-size:13px}\n.site-text-language-grid textarea{min-height:78px}\n.site-text-savebar{grid-column:1/-1;background:rgba(255,255,255,.96);padding:10px 0 0}\n\n.upload-panel,.stories-admin,.videos-admin,.packages-admin,.reviews-admin,.admin-gallery,.admin-section{margin-top:0!important}\n.admin-gallery{padding-top:6px}\n\n@media(max-width:1000px){\n    .site-text-form{grid-template-columns:1fr}\n}\n@media(max-width:700px){\n    .admin-shell{width:min(calc(100% - 24px),1200px);padding-top:24px}\n    .admin-head{margin:28px 0}\n    .admin-head h1{font-size:46px}\n    .admin-dashboard-nav{top:6px;margin-bottom:18px}\n    .site-text-admin{padding:16px 12px}\n}\n

/* V13.36 — compact review administration + readable seamless testimonials */
.review-admin-compact{
    display:grid;
    gap:14px;
    max-width:1000px;
}
.review-add-collapsible,
.review-admin-item{
    background:#fff;
    border:1px solid var(--line);
}
.review-add-collapsible>summary{
    cursor:pointer;
    list-style:none;
    padding:15px 18px;
    font-weight:700;
    font-size:13px;
}
.review-add-collapsible>summary::-webkit-details-marker,
.review-admin-item>summary::-webkit-details-marker{display:none}
.review-add-collapsible[open]>summary{border-bottom:1px solid var(--line)}

.review-admin-list-compact{gap:7px}
.review-admin-item>summary{
    cursor:pointer;
    list-style:none;
    min-height:58px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:18px;
    padding:11px 15px;
}
.review-admin-item[open]>summary{
    background:#faf8f3;
    border-bottom:1px solid var(--line);
}
.review-admin-summary-main{
    display:grid;
    grid-template-columns:minmax(130px,190px) minmax(0,1fr);
    align-items:center;
    gap:18px;
    min-width:0;
}
.review-admin-summary-main strong{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.review-admin-preview{
    color:var(--muted);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:12px;
}
.review-admin-summary-meta{
    display:flex;
    align-items:center;
    gap:13px;
    color:var(--muted);
    font-size:11px;
}
.review-admin-stars{
    color:#a8884c;
    letter-spacing:.05em;
}
.review-admin-item-body{
    position:relative;
    padding:18px;
}
.review-edit-form{
    display:grid;
    gap:16px;
}
.review-edit-grid{
    display:grid;
    grid-template-columns:1.25fr 1fr .8fr .65fr;
    gap:14px;
}
.review-edit-form label{
    display:block;
    color:var(--muted);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.review-edit-form input,
.review-edit-form textarea,
.review-edit-form select{
    width:100%;
    margin-top:5px;
    border:1px solid var(--line);
    background:#fff;
    color:var(--ink);
    padding:9px 10px;
    outline:0;
    resize:vertical;
    font:inherit;
    font-size:13px;
    text-transform:none;
    letter-spacing:0;
}
.review-edit-actions{display:flex;justify-content:flex-start}
.review-delete-form{
    position:absolute;
    right:18px;
    bottom:18px;
}
.review-add-form{
    padding:18px;
    background:#fff;
}
.review-add-form h3{display:none}

/* Homepage testimonials */
.testimonial-grid{scroll-snap-type:x proximity !important}
.testimonial-card{
    display:flex !important;
    flex-direction:column !important;
    box-sizing:border-box;
    min-height:250px !important;
    max-height:none !important;
}
.testimonial-card blockquote.testimonial-text{
    font-size:clamp(17px,1.45vw,21px) !important;
    line-height:1.52 !important;
    margin:0 0 9px !important;
    display:-webkit-box;
    -webkit-line-clamp:6;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.testimonial-card.is-expanded blockquote.testimonial-text{
    display:block;
    overflow:visible;
}
.testimonial-more{
    align-self:flex-start;
    border:0;
    border-bottom:1px solid rgba(20,52,42,.35);
    background:transparent;
    color:var(--forest);
    padding:2px 0;
    margin:0 0 17px;
    font:inherit;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
    cursor:pointer;
}
.testimonial-more[hidden]{display:none}
.testimonial-card footer{margin-top:auto !important}
.testimonial-arrow:disabled{
    opacity:1 !important;
    pointer-events:auto !important;
}

@media(max-width:850px){
    .review-edit-grid{grid-template-columns:1fr 1fr}
    .review-admin-summary-main{grid-template-columns:minmax(105px,150px) minmax(0,1fr)}
}
@media(max-width:600px){
    .review-admin-item>summary{grid-template-columns:1fr;gap:7px}
    .review-admin-summary-main{grid-template-columns:1fr;gap:3px}
    .review-admin-summary-meta{justify-content:space-between}
    .review-edit-grid{grid-template-columns:1fr}
    .review-delete-form{position:static;margin-top:12px}
    .testimonial-card{min-height:230px !important}
    .testimonial-card blockquote.testimonial-text{
        font-size:17px !important;
        -webkit-line-clamp:7;
    }
}


/* V13.37 — compact admin, truly buffered infinite reviews, unified About typography */

/* Admin shell: less vertical whitespace, tighter controls */
body.admin-page .admin-shell,
body.admin-page .admin-wrap,
body.admin-page main{
    max-width:1180px;
}
body.admin-page .admin-panel{
    padding-top:18px !important;
    padding-bottom:18px !important;
}
body.admin-page .admin-gallery-head{
    margin-bottom:12px !important;
}
body.admin-page .admin-gallery-head h2{
    margin:0 !important;
    font-size:24px !important;
}
body.admin-page .admin-gallery-head span{
    font-size:11px !important;
}
body.admin-page input,
body.admin-page select,
body.admin-page textarea{
    padding:8px 10px !important;
    font-size:12px !important;
}
body.admin-page textarea{
    min-height:72px;
}
body.admin-page .button,
body.admin-page button{
    min-height:34px;
    padding:8px 12px;
    font-size:11px;
}
body.admin-page fieldset{
    padding:14px !important;
}
body.admin-page .package-editor > summary,
body.admin-page .review-admin-item > summary{
    min-height:48px !important;
    padding:9px 13px !important;
}
body.admin-page .package-edit-form,
body.admin-page .review-edit-form{
    gap:11px !important;
}
body.admin-page .package-language-grid{
    gap:12px !important;
}

/* Photo libraries are now closed one-line albums until needed */
.compact-admin-album{
    display:none;
    margin:0 0 8px !important;
    padding:0 !important;
    border:1px solid var(--line);
    background:#fff;
}
.compact-admin-album.is-active{
    display:block;
}
.compact-admin-album > summary{
    list-style:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:11px 14px;
}
.compact-admin-album > summary::-webkit-details-marker{display:none}
.compact-admin-album > summary > span:first-child{
    display:flex;
    align-items:baseline;
    gap:12px;
}
.compact-admin-album > summary strong{
    font-size:13px;
}
.compact-admin-album > summary small,
.compact-admin-open-label{
    color:var(--muted);
    font-size:10px;
}
.compact-admin-album[open] .compact-admin-open-label::after{content:" ↑"}
.compact-admin-album:not([open]) .compact-admin-open-label::after{content:" ↓"}
.compact-admin-album-body{
    border-top:1px solid var(--line);
    padding:12px;
}
.compact-gallery-actions{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:10px;
}
body.admin-page .admin-grid{
    grid-template-columns:repeat(auto-fill,minmax(105px,1fr)) !important;
    gap:7px !important;
}
body.admin-page .admin-photo-card{
    min-height:0 !important;
}
body.admin-page .admin-photo-card img{
    aspect-ratio:1/1;
    object-fit:cover;
}

/* Wedding/event/package/reference editors stay visually light until expanded */
body.admin-page details.package-editor,
body.admin-page details.review-admin-item{
    margin-bottom:7px !important;
}
body.admin-page details.package-editor:not([open]),
body.admin-page details.review-admin-item:not([open]){
    background:#fff;
}
body.admin-page details.package-editor[open],
body.admin-page details.review-admin-item[open]{
    box-shadow:0 8px 26px rgba(20,30,25,.05);
}

/* Event albums */
.compact-event-list{
    display:grid;
    gap:7px;
    margin-top:10px;
}
.compact-event-editor .compact-event-body{
    padding:12px 14px 14px;
    border-top:1px solid var(--line);
}
.compact-admin-form{
    padding:12px 14px !important;
}
.compact-form-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr;
    gap:10px;
}
.compact-upload-form{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:end;
    margin-bottom:12px;
}
.compact-upload-form label{
    margin:0 !important;
}

/* Make story thumbnails compact as well */
body.admin-page .story-admin-thumbs{
    grid-template-columns:repeat(auto-fill,minmax(88px,1fr)) !important;
    gap:6px !important;
}
body.admin-page .story-admin-thumb img{
    aspect-ratio:1/1;
    object-fit:cover;
}

/* Homepage About copy uses the same body typography as the other content sections */
.about.about-editorial .about-editorial-copy p,
.about.about-editorial .about-editorial-copy .about-lead,
.about.about-editorial .about-editorial-copy p strong{
    font-family:"DM Sans",Arial,sans-serif !important;
    font-size:16px !important;
    font-weight:400 !important;
    font-style:normal !important;
    line-height:1.72 !important;
    letter-spacing:0 !important;
    color:var(--muted) !important;
}

/* Remove snapping from the endlessly buffered testimonial rail.
   Manual swipe/drag remains free, arrows/autoplay move one card at a time. */
.testimonial-grid{
    scroll-snap-type:none !important;
}
.testimonial-card{
    scroll-snap-align:none !important;
}

@media(max-width:760px){
    .compact-form-grid,
    .compact-upload-form{
        grid-template-columns:1fr;
    }
    body.admin-page .admin-grid{
        grid-template-columns:repeat(auto-fill,minmax(82px,1fr)) !important;
    }
}




/* V13.39 — package carousel: manual only, no autoplay, arrows remain active */
.package-carousel .price-grid{
    scroll-snap-type:none !important;
}
.package-carousel .price-card{
    scroll-snap-align:none !important;
}
.package-carousel .package-arrow:disabled{
    opacity:1 !important;
    pointer-events:auto !important;
}


/* V13.40 — stable manual-only endless carousels.
   No autoplay, no scroll-position recycling, no visible snap-back. */
.package-carousel,
.testimonial-carousel{
    overflow:hidden !important;
}

.package-carousel .price-grid,
.testimonial-carousel .testimonial-grid{
    overflow:visible !important;
    scroll-behavior:auto !important;
    scroll-snap-type:none !important;
    scrollbar-width:none !important;
    will-change:transform;
}

.package-carousel .price-card,
.testimonial-carousel .testimonial-card{
    scroll-snap-align:none !important;
}

.package-carousel .package-arrow,
.testimonial-carousel .testimonial-arrow{
    pointer-events:auto !important;
}

.package-carousel .package-arrow:disabled,
.testimonial-carousel .testimonial-arrow:disabled{
    opacity:1 !important;
    pointer-events:auto !important;
}

@media(max-width:700px){
    .package-carousel,
    .testimonial-carousel{
        overflow:hidden !important;
    }
}


/* V13.41 — keep carousel arrows fully inside the visible frame */
.package-carousel .package-arrow-prev,
.testimonial-carousel .testimonial-arrow-prev{
    left:12px !important;
}

.package-carousel .package-arrow-next,
.testimonial-carousel .testimonial-arrow-next{
    right:12px !important;
}

/* Give cards a little breathing room behind the inset arrows */
.package-carousel .price-grid,
.testimonial-carousel .testimonial-grid{
    padding-left:6px !important;
    padding-right:6px !important;
}

@media(max-width:700px){
    .package-carousel .package-arrow-prev,
    .testimonial-carousel .testimonial-arrow-prev{
        left:6px !important;
    }

    .package-carousel .package-arrow-next,
    .testimonial-carousel .testimonial-arrow-next{
        right:6px !important;
    }
}


/* V13.47 — wedding/event story galleries read in chronological row order.
   Replace CSS columns (top-to-bottom flow) with a normal two-column grid
   so DOM order is left-to-right, then next row. */
.story-gallery{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    columns:auto !important;
    column-gap:10px !important;
    row-gap:10px !important;
    align-items:start !important;
}

.story-gallery .gallery-item,
.story-gallery .gallery-item:nth-child(n),
.story-gallery .image-landscape,
.story-gallery .image-portrait,
.story-gallery .image-square{
    display:block !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:auto !important;
    margin:0 !important;
    padding:0 !important;
    break-inside:auto !important;
    grid-column:auto !important;
    justify-self:stretch !important;
}

.story-gallery .gallery-item img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
}

@media(max-width:700px){
    .story-gallery{
        grid-template-columns:1fr !important;
    }
}


/* V13.48 — chronological justified layout for full wedding/event stories.
   Images keep their sequence left-to-right, rows fill the available width,
   and mixed portrait/landscape photos no longer leave large empty holes. */
.story-gallery[data-justified-gallery]{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:flex-start !important;
    gap:var(--jg-gap,8px) !important;
    columns:auto !important;
    grid-template-columns:none !important;
}

.story-gallery[data-justified-gallery] .gallery-item,
.story-gallery[data-justified-gallery] .gallery-item:nth-child(n),
.story-gallery[data-justified-gallery] .image-landscape,
.story-gallery[data-justified-gallery] .image-portrait,
.story-gallery[data-justified-gallery] .image-square{
    display:block !important;
    width:auto;
    height:260px;
    flex:0 0 auto;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden;
    aspect-ratio:auto !important;
    grid-column:auto !important;
}

.story-gallery[data-justified-gallery] .gallery-item img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

@media(max-width:700px){
    .story-gallery[data-justified-gallery] .gallery-item{
        height:190px;
    }
}


/* V13.50 — full story galleries back to two columns, chronological by rows */
.story-gallery{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    columns:auto !important;
    align-items:start !important;
}

.story-gallery .gallery-item,
.story-gallery .gallery-item:nth-child(n),
.story-gallery .image-landscape,
.story-gallery .image-portrait,
.story-gallery .image-square{
    display:block !important;
    width:100% !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    aspect-ratio:auto !important;
    overflow:visible !important;
    grid-column:auto !important;
    justify-self:stretch !important;
}

.story-gallery .gallery-item img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
}

@media(max-width:700px){
    .story-gallery{
        grid-template-columns:1fr !important;
    }
}


/* V13.51 — two-column masonry for wedding/event albums */
.story-gallery.story-masonry-active{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    align-items:start !important;
    columns:auto !important;
}

.story-gallery.story-masonry-active .story-masonry-column{
    display:flex;
    flex-direction:column;
    gap:10px;
    min-width:0;
}

.story-gallery.story-masonry-active .gallery-item,
.story-gallery.story-masonry-active .gallery-item:nth-child(n),
.story-gallery.story-masonry-active .image-landscape,
.story-gallery.story-masonry-active .image-portrait,
.story-gallery.story-masonry-active .image-square{
    display:block !important;
    width:100% !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    grid-column:auto !important;
    overflow:visible !important;
}

.story-gallery.story-masonry-active .gallery-item img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
}

@media(max-width:700px){
    .story-gallery,
    .story-gallery.story-masonry-active{
        display:block !important;
        grid-template-columns:1fr !important;
    }

    .story-gallery .gallery-item{
        margin-bottom:8px !important;
    }
}


/* V13.53 — manual wedding album ordering in admin */
.story-order-item{
    margin:0 0 12px;
}
.story-order-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:7px 10px;
    border:1px solid rgba(20,20,20,.12);
    border-bottom:0;
    border-radius:8px 8px 0 0;
    background:rgba(20,20,20,.035);
    font-size:12px;
}
.story-order-toolbar + .story-editor{
    margin-top:0 !important;
    border-radius:0 0 8px 8px;
}
.story-order-form{
    display:flex;
    gap:6px;
}
.story-order-form button{
    appearance:none;
    border:1px solid rgba(20,20,20,.18);
    border-radius:6px;
    background:#fff;
    padding:5px 9px;
    cursor:pointer;
    font:inherit;
}
.story-order-form button:hover:not(:disabled){
    background:#f2f2f2;
}
.story-order-form button:disabled{
    opacity:.35;
    cursor:default;
}


/* V13.56 — výraznější zlaté tlačítko pro odeslání kontaktního formuláře */
.contact-form button[type="submit"],
.contact-form input[type="submit"]{
    background:#c8a45d !important;
    color:#111 !important;
    border-color:#c8a45d !important;
}

.contact-form button[type="submit"]:hover,
.contact-form input[type="submit"]:hover{
    background:#d8b66e !important;
    border-color:#d8b66e !important;
    color:#111 !important;
}
