/* ==================================================
   Perusasetukset ja värit
   Muokkaa värejä ja sivuston maksimileveyttä tästä.
   ================================================== */

:root {
    --bg:#fbf6ee;
    --paper:#fff;
    --text:#29231d;
    --muted:#6f6258;
    --line:#e7dccc;
    --brand:#7b5744;
    --brand-dark:#573c31;
    --soft:#efe1d0;
    --green:#6b941f;
    --radius:22px;
    --max:1120px;
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
}

body {
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    color:var(--text);
    background:var(--bg);
    line-height:1.6;
    overflow-x:hidden;
}

img {
    max-width:100%;
    display:block;
}

a {
    color:inherit;
    text-decoration:none;
}

.container {
    width:min(var(--max),calc(100% - 40px));
    margin:0 auto;
}

/* ==================================================
   Yläpalkki ja navigaatio
   ================================================== */

header {
    position:sticky;
    top:0;
    z-index:10;
    background:rgba(251,246,238,.92);
    backdrop-filter:blur(12px);
    border-bottom:1px solid var(--line);
}

.nav {
    min-height:76px;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:20px;
}

.logo img {
    width:118px;
    height:auto;
}

.nav-links {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    font-size:15px;
    color:var(--muted);
    white-space:nowrap;
}

.nav-links a:hover {
    color:var(--brand);
}

.nav-actions {
    display:flex;
    justify-content:flex-end;
    gap:10px;
}

.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    padding:13px 22px;
    background:var(--brand);
    color:#fff;
    font-weight:700;
    border:1px solid var(--brand);
    transition:.2s ease;
}

.button:hover {
    background:var(--brand-dark);
    border-color:var(--text);
}

.button.secondary {
    background:transparent;
    color:var(--brand);
}

.button.secondary:hover {
    background:var(--soft);
}

.menu-toggle {
    display:none;
    border:1px solid var(--line);
    background:var(--paper);
    color:var(--brand);
    border-radius:999px;
    width:40px;
    height:40px;
    align-items:center;
    justify-content:center;
    cursor:pointer;
}

.menu-toggle span,.menu-toggle span:before,.menu-toggle span:after {
    display:block;
    width:18px;
    height:2px;
    background:currentColor;
    border-radius:999px;
    position:relative;
    content:"";
}

.menu-toggle span:before {
    position:absolute;
    top:-6px;
}

.menu-toggle span:after {
    position:absolute;
    top:6px;
}

/* ==================================================
   Etusivun ilmoitus ja hero-osio
   ================================================== */

.announcement {
    background:var(--brand);
    color:white;
    text-align:center;
    padding:10px 0;
    font-weight:700;
    font-size:14px;
}

.hero {
    padding:96px 0 76px;
}

.hero-grid {
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:54px;
    align-items:center;
}

h1,h2,h3 {
    font-family:Georgia,'Times New Roman',serif;
    line-height:1.08;
    letter-spacing:-.04em;
    margin:0;
}

h1 {
    font-size:clamp(44px,7vw,82px);
    max-width:820px;
}

h2 {
    font-size:clamp(34px,4vw,52px);
    max-width:800px;
}

h3 {
    font-size:24px;
}

.lead {
    margin:24px 0 0;
    max-width:660px;
    font-size:19px;
    color:var(--muted);
}

.actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:34px;
}

.hero-card-inner {
    min-height:420px;
    display:grid;
    place-items:center;
    border-radius:34px;
    padding:34px;
    background:var(--paper);
    border:1px solid var(--line);
    box-shadow:0 10px 30px rgba(87,60,49,.06);
    overflow:hidden;
}

.hero-card-inner img {
    max-height:330px;
    object-fit:contain;
    border-radius:22px;
}

/* ==================================================
   Yleiset sisältöosiot, kortit ja tuotelistaukset
   ================================================== */

section {
    padding:78px 0;
}

.section-head {
    margin-bottom:34px;
}

.section-label {
    margin:0 0 12px;
    color:var(--brand);
    font-size:13px;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.intro {
    margin:18px 0 0;
    max-width:740px;
    color:var(--muted);
    font-size:18px;
}

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

.card {
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:26px;
}

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

.rules {
    margin:0;
    padding:0;
    list-style:none;
    display:grid;
    gap:14px;
}

.rules li {
    padding-left:28px;
    position:relative;
    color:var(--muted);
}

.rules li:before {
    content:"✓";
    position:absolute;
    left:0;
    top:0;
    color:var(--green);
    font-weight:900;
}

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

.product-card {
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    transition:.2s ease;
}

.product-card:hover {
    transform:translateY(-3px);
    box-shadow:0 12px 28px rgba(87,60,49,.08);
}

.product-card img {
    aspect-ratio:1/1;
    object-fit:cover;
}

.product-card .body {
    padding:22px;
}

.product-card h3 {
    font-size:25px;
}

.product-card p {
    color:var(--muted);
}

.tag {
    display:inline-flex;
    border-radius:999px;
    background:var(--soft);
    color:var(--brand);
    font-size:13px;
    font-weight:800;
    padding:7px 11px;
    margin-bottom:14px;
}

.dark {
    background:var(--text);
    color:#fff;
}

.dark .section-label {
    color:#efd6b8;
}

.dark .intro,.dark .card p {
    color:rgba(255,255,255,.72);
}

.dark .card {
    background:rgba(255,255,255,.07);
    border-color:rgba(255,255,255,.14);
}


/* ==================================================
   Tuotelistauksen lisäosat
   ================================================== */

.product-actions {
    display:flex;
    justify-content:center;
    margin-top:30px;
}

.page-hero {
    padding-bottom:48px;
}

.all-products-grid {
    margin-top:10px;
}

/* ==================================================
   Yhteystiedot ja kartta
   ================================================== */

.contact-section {
    background:var(--soft);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.contact-grid {
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:28px;
    align-items:stretch;
}

.contact-box {
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:34px;
}

.map {
    min-height:420px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    background:var(--paper);
}

.map iframe {
    width:100%;
    height:100%;
    min-height:420px;
    border:0;
    display:block;
}

.faq-grid {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px;
}

/* ==================================================
   Yksittäisen tuotteen sivu
   ================================================== */

.product-detail {
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:42px;
    align-items:start;
}

.product-image-box {
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:34px;
    padding:20px;
    position:sticky;
    top:100px;
}

.product-image-box img {
    border-radius:22px;
}

.info-grid {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:14px;
}

.info-item {
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:18px;
    padding:16px;
}

.info-item strong {
    display:block;
}

.content-block {
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:26px;
    margin-top:18px;
}

.content-block p {
    color:var(--muted);
}

/* ==================================================
   Alatunniste
   ================================================== */

footer {
    border-top:1px solid var(--line);
    padding:28px 0;
    color:var(--muted);
    font-size:14px;
}

.footer-row {
    text-align:center;
}

/* ==================================================
   Responsiivisuus: tabletit ja puhelimet
   ================================================== */

@media (max-width: 980px) {
    .hero-grid,.contact-grid,.product-detail{grid-template-columns:1fr;
}

.cards,.product-grid,.faq-grid {
    grid-template-columns:repeat(2,1fr);
}

.product-image-box {
    position:static;
}

}

@media (max-width: 720px) {
    .container{width:min(var(--max),calc(100% - 28px));
}

.nav {
    min-height:auto;
    padding:12px 0;
    grid-template-columns:auto 1fr;
}

.logo img {
    width:92px;
}

.nav-actions .button {
    display:none;
}

.menu-toggle {
    display:inline-flex;
    margin-left:auto;
}

.nav-links {
    display:none;
    position:absolute;
    top:68px;
    left:14px;
    right:14px;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:18px;
    padding:14px;
    box-shadow:0 18px 45px rgba(87,60,49,.16);
    z-index:30;
    white-space:normal;
}

.nav-links.active {
    display:grid;
    gap:8px;
    text-align:center;
}

.nav-links a {
    padding:10px;
    border-radius:12px;
}

.nav-links a:hover {
    background:var(--soft);
}

.hero {
    padding:64px 0 48px;
}

section {
    padding:56px 0;
}

.cards,.product-grid,.faq-grid,.info-grid {
    grid-template-columns:1fr;
}

.hero-card-inner {
    min-height:280px;
}

.button {
    width:100%;
}

}


/* ==================================================
   Tuotesivujen uusi selkeä rakenne
   - feature-list = tärkeimmät ominaisuudet tiiviinä laatikoina
   - details/summary = avattavat tuoteosiot
   ================================================== */

.product-hero {
    padding-bottom:48px;
}

.product-section-tight {
    padding-top:40px;
    padding-bottom:40px;
}

.feature-list {
    margin:0;
    padding:0;
    list-style:none;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}

.feature-list li {
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:18px;
    padding:16px 18px;
    color:var(--muted);
}

.feature-list li::before {
    content:"✓";
    color:var(--green);
    font-weight:900;
    margin-right:8px;
}

.product-info-layout {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:28px;
    align-items:start;
}

.product-summary-box {
    position:sticky;
    top:100px;
}

.accordion-list {
    display:grid;
    gap:14px;
}

.accordion-list details {
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
}

.accordion-list summary {
    cursor:pointer;
    padding:22px 26px;
    font-family:Georgia,'Times New Roman',serif;
    font-size:24px;
    font-weight:700;
    list-style:none;
}

.accordion-list summary::-webkit-details-marker {
    display:none;
}

.accordion-list summary::after {
    content:"+";
    float:right;
    color:var(--brand);
}

.accordion-list details[open] summary::after {
    content:"−";
}

.details-content {
    border-top:1px solid var(--line);
    padding:24px 26px 28px;
}

.details-content p {
    color:var(--muted);
}

.details-content h3 {
    margin-top:22px;
    margin-bottom:10px;
}

.details-content h3:first-child {
    margin-top:0;
}

.text-link {
    display:inline-block;
    margin-top:12px;
    color:var(--brand);
    font-weight:800;
}

@media (max-width: 980px) {
    .feature-list,
    .product-info-layout {
        grid-template-columns:1fr;
    }

    .product-summary-box {
        position:static;
    }
}

@media (max-width: 720px) {
    .feature-list {
        grid-template-columns:1fr;
    }

    .accordion-list summary {
        font-size:21px;
        padding:18px 20px;
    }

    .details-content {
        padding:20px;
    }
}

/* Tuotesivuilla pääotsikko pidetään semanttisesti h1-tasona,
   mutta sen visuaalinen koko vastaa h2-otsikkoa. */
.product-hero h1 {
    font-size:clamp(34px,4vw,52px);
    max-width:800px;
}



/* ==================================================
   Tuotesivut: käyttäjän valitsema kaksipalstainen pohja
   ================================================== */

.product-hero h1 {
    font-size:clamp(34px,4vw,52px);
    max-width:800px;
}

.product-page-info {
    align-items:start;
}

@media (max-width: 980px) {
    .product-page-info {
        grid-template-columns:1fr;
    }
}


/* Tuotekatalogin tuoteryhmät
   Jokainen tuoteryhmä erotetaan omaksi kokonaisuudekseen,
   jotta Kaikki tuotteet -sivu ei näytä yhdeltä pitkältä listalta. */
.product-category {
    clear: both;
    margin-top:72px;
    padding-top:56px;
    border-top:1px solid var(--line);
}

.product-category:first-of-type {
    margin-top:40px;
    padding-top:0;
    border-top:0;
}

.product-category h2 {
    font-size:clamp(28px,3vw,40px);
    line-height:1.08;
    margin:0 0 30px;
}

.product-category .product-grid {
    margin-top:0;
    margin-bottom:0;
}

.product-category + .product-category {
    margin-top:92px;
}

@media (max-width: 760px) {
    .product-category {
        margin-top:58px;
        padding-top:44px;
    }

    .product-category + .product-category {
        margin-top:72px;
    }
}
