/* style.css
   /home/tnmpl/public_html/www/trzysiostrygaleria.pl/assets/css/style.css
   Ostatnia aktualizacja: 2026-07-07 09:32:18 Europe/Warsaw */

:root{
    --ts-bg:#f7f1e6;
    --ts-paper:#fffaf1;
    --ts-ink:#241c17;
    --ts-muted:#76695d;
    --ts-line:rgba(36,28,23,.16);
    --ts-accent:#9b4f2f;
    --ts-accent-dark:#6e331f;
    --ts-soft:#eadcc8;
    --ts-shadow:0 18px 50px rgba(36,28,23,.10);
    --ts-topbar-height:68px;
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    color:var(--ts-ink);
    background:
        radial-gradient(circle at top left, rgba(155,79,47,.13), transparent 28rem),
        linear-gradient(180deg, #fffaf1 0%, var(--ts-bg) 48%, #efe3d1 100%);
    font-family:Georgia, 'Times New Roman', serif;
}

a{
    color:inherit;
}

img{
    max-width:100%;
}

.ts-page{
    min-height:100vh;
    padding-top:var(--ts-topbar-height);
}

/* =========================
   TOPBAR FIXED
========================= */

.ts-topbar{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:9999;
    margin:0;
    padding:10px 18px;
    background:rgba(255,250,241,.96);
    border-bottom:1px solid var(--ts-line);
    box-shadow:0 10px 30px rgba(36,28,23,.10);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    font-family:Arial, sans-serif;
}

.ts-topbar-inner{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:nowrap;
    gap:10px;
    max-width:1320px;
    margin:0 auto;
    overflow:visible;
}

.ts-topbar-link,
.ts-topbar-details > summary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    min-height:40px;
    padding:9px 17px;
    border:1px solid var(--ts-line);
    border-radius:999px;
    background:rgba(255,255,255,.62);
    color:var(--ts-ink);
    text-decoration:none;
    font-size:.93rem;
    font-weight:700;
    line-height:1;
    cursor:pointer;
    list-style:none;
    transition:.2s ease;
}

.ts-topbar-link:hover,
.ts-topbar-details[open] > summary,
.ts-topbar-details > summary:hover{
    background:var(--ts-ink);
    color:#fff;
    border-color:var(--ts-ink);
}

.ts-topbar-details{
    position:relative;
    flex:0 0 auto;
}

.ts-topbar-details > summary::-webkit-details-marker{
    display:none;
}

.ts-topbar-details > summary::after{
    content:'';
    width:7px;
    height:7px;
    margin-left:9px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg) translateY(-2px);
    transition:.2s ease;
}

.ts-topbar-details[open] > summary::after{
    transform:rotate(225deg) translateY(-1px);
}

.ts-topbar-dropdown{
    position:absolute;
    left:50%;
    top:calc(100% + 10px);
    transform:translateX(-50%);
    min-width:250px;
    max-width:340px;
    max-height:70vh;
    overflow-y:auto;
    padding:10px;
    border:1px solid var(--ts-line);
    border-radius:20px;
    background:rgba(255,250,241,.99);
    box-shadow:0 18px 50px rgba(36,28,23,.18);
    display:grid;
    gap:4px;
    z-index:10000;
}

.ts-topbar-dropdown::before{
    content:'';
    position:absolute;
    left:50%;
    top:-7px;
    width:14px;
    height:14px;
    background:rgba(255,250,241,.99);
    border-left:1px solid var(--ts-line);
    border-top:1px solid var(--ts-line);
    transform:translateX(-50%) rotate(45deg);
}

.ts-topbar-dropdown-link{
    position:relative;
    display:block;
    padding:10px 12px;
    border-radius:14px;
    color:var(--ts-ink);
    text-decoration:none;
    font-size:.95rem;
    line-height:1.25;
    transition:.2s ease;
    z-index:2;
}

.ts-topbar-dropdown-link:hover{
    background:var(--ts-soft);
    color:var(--ts-accent-dark);
}

.ts-topbar-dropdown-main{
    font-weight:900;
    color:var(--ts-accent-dark);
}

.ts-topbar-dropdown-sub{
    padding-left:28px;
    font-size:.9rem;
    color:var(--ts-muted);
}

.ts-topbar-dropdown-sub::before{
    content:'—';
    position:absolute;
    left:13px;
    color:var(--ts-muted);
}

.ts-topbar-dropdown-empty{
    display:block;
    padding:10px 12px;
    color:var(--ts-muted);
    font-size:.88rem;
}

.ts-topbar-cart{
    background:var(--ts-accent);
    color:#fff;
    border-color:var(--ts-accent);
}

.ts-topbar-cart:hover{
    background:var(--ts-accent-dark);
    border-color:var(--ts-accent-dark);
    color:#fff;
}

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

.ts-top-note{
    font-family:Arial, sans-serif;
    font-size:.78rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--ts-muted);
}

.ts-header{
    padding:28px 0 18px;
}

.ts-brand-wrap{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:22px;
    align-items:center;
}

.ts-logo-box{
    width:164px;
    height:164px;
    border:0px solid var(--ts-line);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    /* background:rgba(255,255,255,.44); */
    
    overflow:hidden;
    text-decoration:none;
}

.ts-logo-box img{
    width:78%;
    height:78%;
    object-fit:contain;
}

.ts-logo-fallback{
    width:68px;
    height:68px;
    border:2px solid var(--ts-ink);
    border-radius:50%;
    position:relative;
}

.ts-logo-fallback::before,
.ts-logo-fallback::after{
    content:'';
    position:absolute;
    left:50%;
    top:9px;
    width:2px;
    height:50px;
    background:var(--ts-ink);
    transform-origin:bottom center;
}

.ts-logo-fallback::before{
    transform:translateX(-50%) rotate(120deg);
}

.ts-logo-fallback::after{
    transform:translateX(-50%) rotate(240deg);
}

.ts-logo-fallback span{
    position:absolute;
    left:50%;
    top:9px;
    width:2px;
    height:50px;
    background:var(--ts-ink);
    transform:translateX(-50%);
    display:block;
}

.ts-brand-title{
    margin:0;
    font-size:clamp(2.1rem, 5vw, 5.25rem);
    line-height:.94;
    letter-spacing:.03em;
    text-transform:uppercase;
}

.ts-brand-subtitle{
    margin-top:9px;
    font-family:Arial, sans-serif;
    font-size:clamp(.95rem, 1.4vw, 1.15rem);
    color:var(--ts-muted);
    max-width:740px;
}

.ts-sisters-mark{
	  font-family: "Bonheur Royale", cursive;
  font-weight: 400;
  font-style: normal;
    min-width:148px;
    text-align:center;
    color:var(--ts-accent-dark);
    font-size:1.9rem;
}

.ts-sisters-lines{
	height:96px;
    border:1px solid var(--ts-line);
    border-radius:50% 50% 8px 8px;
    background:linear-gradient(135deg, rgba(255,255,255,.55), rgba(234,220,200,.5));
    position:relative;
    overflow:hidden;
}

.ts-sisters-lines::before,
.ts-sisters-lines::after{
    content:'';
    position:absolute;
    top:18px;
    width:32px;
    height:72px;
    border:2px solid var(--ts-accent-dark);
    border-bottom:none;
    border-radius:50% 50% 0 0;
    opacity:.6;
}

.ts-sisters-lines::before{
    left:28px;
}

.ts-sisters-lines::after{
    right:28px;
}

.ts-search-bar{
    margin-top:24px;
    padding:11px;
    background:rgba(255,255,255,.58);
    border:1px solid var(--ts-line);
    border-radius:999px;
    box-shadow:0 10px 35px rgba(36,28,23,.07);
}

.ts-search-bar .form-control{
    border:0;
    background:transparent;
    box-shadow:none;
    font-family:Arial, sans-serif;
    padding-left:16px;
}

.ts-btn{
    border:0;
    border-radius:999px;
    background:var(--ts-accent);
    color:#fff;
    padding:11px 24px;
    font-family:Arial, sans-serif;
    font-weight:700;
    transition:.2s ease;
}

.ts-btn:hover{
    background:var(--ts-accent-dark);
    color:#fff;
}

/* =========================
   OPTIONAL OLD MAIN NAV
========================= */

.ts-main-nav{
    margin-top:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    flex-wrap:wrap;
    font-family:Arial, sans-serif;
}

.ts-main-nav a{
    text-decoration:none;
    padding:9px 17px;
    border:1px solid var(--ts-line);
    border-radius:999px;
    background:rgba(255,255,255,.42);
}

.ts-main-nav a:hover{
    background:var(--ts-ink);
    color:#fff;
}

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

.ts-layout{
    display:grid;
    grid-template-columns:240px 1fr;
    gap:32px;
    padding:24px 0 56px;
}

.ts-sidebar{
    position:sticky;
    top:calc(var(--ts-topbar-height) + 18px);
    align-self:start;
    padding:24px 20px;
    border:1px solid var(--ts-line);
    border-radius:28px;
    background:rgba(255,250,241,.78);
    box-shadow:var(--ts-shadow);
}

.ts-sidebar-title{
    font-family:Arial, sans-serif;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:var(--ts-muted);
    font-size:.75rem;
    margin-bottom:14px;
}

.ts-side-menu{
    list-style:none;
    margin:0;
    padding:0;
}

.ts-side-menu li + li{
    border-top:1px solid var(--ts-line);
}

.ts-side-menu a{
    display:block;
    padding:10px 0;
    text-decoration:none;
    font-size:1.05rem;
    transition:.2s ease;
}

.ts-side-menu a:hover{
    color:var(--ts-accent);
    padding-left:7px;
}

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

.ts-hero{
    border:1px solid var(--ts-line);
    border-radius:34px;
    background:linear-gradient(135deg, rgba(255,255,255,.84), rgba(234,220,200,.48));
    box-shadow:var(--ts-shadow);
    padding:clamp(28px, 4vw, 56px);
    overflow:hidden;
    position:relative;
}

.ts-hero::after{
    content:'';
    position:absolute;
    right:-70px;
    bottom:-90px;
    width:260px;
    height:260px;
    border:1px solid rgba(155,79,47,.18);
    border-radius:50%;
}

.ts-hero h2{
    font-size:clamp(2rem, 4vw, 4rem);
    line-height:1;
    margin:0 0 16px;
}

.ts-hero p{
    font-size:1.12rem;
    color:var(--ts-muted);
    max-width:780px;
}

.ts-hero-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:24px;
    font-family:Arial, sans-serif;
}

.ts-btn-outline{
    border:1px solid var(--ts-line);
    border-radius:999px;
    padding:11px 22px;
    text-decoration:none;
    background:rgba(255,255,255,.52);
    font-weight:700;
    transition:.2s ease;
}

.ts-btn-outline:hover{
    border-color:var(--ts-accent);
    color:var(--ts-accent-dark);
}

/* =========================
   SECTIONS
========================= */

.ts-section{
    margin-top:42px;
}

.ts-section-head{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:20px;
}

.ts-section-title{
    margin:0;
    font-size:clamp(1.75rem, 3vw, 3rem);
    line-height:1;
}

.ts-section-link{
    font-family:Arial, sans-serif;
    font-weight:700;
    color:var(--ts-accent-dark);
    text-decoration:none;
}

/* =========================
   CARDS / GRIDS
========================= */

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

.ts-card{
    border:1px solid var(--ts-line);
    border-radius:28px;
    background:rgba(255,250,241,.86);
    overflow:hidden;
    box-shadow:0 12px 36px rgba(36,28,23,.08);
    height:100%;
    transition:.2s ease;
}

.ts-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 50px rgba(36,28,23,.13);
}

.ts-card-image{
    aspect-ratio:4/5;
    background:
        linear-gradient(135deg, rgba(155,79,47,.12), rgba(36,28,23,.04)),
        repeating-linear-gradient(45deg, rgba(36,28,23,.03) 0 8px, transparent 8px 16px);
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--ts-muted);
    text-align:center;
    padding:20px;
}

.ts-card-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    position:absolute;
    inset:0;
}

.ts-placeholder{
    font-family:Arial, sans-serif;
    font-size:.9rem;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.ts-sold{
    position:absolute;
    inset:auto 18px 18px 18px;
    background:rgba(36,28,23,.82);
    color:#fff;
    border:1px solid rgba(255,255,255,.34);
    border-radius:999px;
    padding:10px 14px;
    font-family:Arial, sans-serif;
    font-weight:800;
    letter-spacing:.12em;
    text-align:center;
    text-transform:uppercase;
    z-index:2;
}

.ts-card-body{
    padding:20px;
}

.ts-card-title{
    margin:0 0 6px;
    font-size:1.28rem;
    line-height:1.15;
}

.ts-card-meta{
    margin:0 0 12px;
    color:var(--ts-muted);
    font-family:Arial, sans-serif;
    font-size:.92rem;
}

.ts-card-details{
    display:grid;
    gap:4px;
    margin-bottom:14px;
    color:#4c4038;
    font-family:Arial, sans-serif;
    font-size:.92rem;
}

.ts-price{
    font-family:Arial, sans-serif;
    font-size:1.18rem;
    font-weight:900;
    color:var(--ts-ink);
}

.ts-card-link{
    display:inline-flex;
    margin-top:14px;
    font-family:Arial, sans-serif;
    font-weight:800;
    color:var(--ts-accent-dark);
    text-decoration:none;
}

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

.ts-info-card{
    border:1px solid var(--ts-line);
    border-radius:24px;
    background:rgba(255,255,255,.48);
    padding:22px;
    height:100%;
}

.ts-info-card h3{
    font-size:1.35rem;
    margin:0 0 10px;
}

.ts-info-card p{
    color:var(--ts-muted);
    margin:0;
}

.ts-empty{
    border:1px dashed var(--ts-line);
    border-radius:24px;
    padding:28px;
    background:rgba(255,255,255,.38);
    color:var(--ts-muted);
    font-family:Arial, sans-serif;
}

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

.ts-contact-strip{
    margin-top:42px;
    border:1px solid var(--ts-line);
    border-radius:30px;
    background:var(--ts-ink);
    color:#fff;
    padding:28px;
}

.ts-contact-strip a{
    color:#fff;
}

.ts-footer{
    border-top:1px solid var(--ts-line);
    padding:28px 0 42px;
    font-family:Arial, sans-serif;
    color:var(--ts-muted);
}

.ts-footer a{
    color:var(--ts-muted);
    text-decoration:none;
    margin-right:16px;
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 1199.98px){
    :root{
        --ts-topbar-height:68px;
    }

    .ts-topbar-inner{
        justify-content:flex-start;
        overflow-x:auto;
        overflow-y:visible;
        scrollbar-width:thin;
        padding-bottom:2px;
    }

    .ts-topbar-dropdown{
        position:fixed;
        left:12px;
        right:12px;
        top:58px;
        transform:none;
        width:auto;
        min-width:0;
        max-width:none;
        max-height:calc(100vh - 76px);
    }

    .ts-topbar-dropdown::before{
        display:none;
    }
}

@media (max-width: 991.98px){
    :root{
        --ts-topbar-height:64px;
    }

    .ts-topbar{
        padding:8px 10px;
    }

    .ts-topbar-link,
    .ts-topbar-details > summary{
        min-height:38px;
        padding:8px 14px;
        font-size:.88rem;
    }

    .ts-brand-wrap{
        grid-template-columns:1fr;
        text-align:center;
        justify-items:center;
    }

    .ts-sisters-mark{
        display:none;
    }

    .ts-layout{
        grid-template-columns:1fr;
    }

    .ts-sidebar{
        position:static;
    }

    .ts-side-menu{
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:0 18px;
    }

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

    .ts-small-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width: 575.98px){
    :root{
        --ts-topbar-height:62px;
    }

    .ts-topbar{
        padding:7px 8px;
    }

    .ts-topbar-inner{
        gap:7px;
    }

    .ts-topbar-link,
    .ts-topbar-details > summary{
        min-height:36px;
        padding:8px 12px;
        font-size:.84rem;
    }

    .ts-topbar-dropdown{
        left:8px;
        right:8px;
        top:54px;
        border-radius:18px;
    }

    .ts-header{
        padding-top:18px;
    }

    .ts-logo-box{
        width:88px;
        height:88px;
    }

    .ts-search-bar{
        border-radius:24px;
    }

    .ts-search-bar .input-group{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
    }

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

    .ts-side-menu{
        grid-template-columns:1fr;
    }

    .ts-section-head{
        align-items:start;
        flex-direction:column;
    }
}