/* Loovl PPF-ETU (restyling.fi) – banner on PPF pages and window on the home pages, until 31.3.2027.
 * Draft 15.10.2026, built from loovl-syksy/syksy.css. The banner adapts to the column it sits in
 * (container queries), not to the screen. Only divs and spans inside: the theme gives p / ul / h*
 * margins with selectors stronger than ours (restyling.fi/CLAUDE.md, gotcha 14). */

.loovl-ppfetu,.loovl-ppfetu *{box-sizing:border-box}
.loovl-ppfetu{--pe-red:#c7081b;--pe-red-dark:#a30616;--pe-bg:#0f0f10;--pe-line:rgba(255,255,255,.14);font-family:Montserrat,Arial,Helvetica,sans-serif;font-size:15px;line-height:1.4;text-align:left;color:#fff}
.loovl-ppfetu div,.loovl-ppfetu span{margin:0;padding:0}

/* ---------- Shared parts ---------- */

.loovl-ppfetu__otsikko{font-family:Teko,Arial,Helvetica,sans-serif;font-weight:600;line-height:.8;letter-spacing:.01em;text-transform:uppercase}
.loovl-ppfetu__otsikko span{display:block}
.loovl-ppfetu__punainen{color:var(--pe-red)}
.loovl-ppfetu__viiva{display:block;width:100%;max-width:290px;height:2px;background:var(--pe-red)}
.loovl-ppfetu__hyodyt span{display:block;font-weight:500}

.loovl-ppfetu__tarjoukset{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.loovl-ppfetu .loovl-ppfetu__tarjous{display:flex;flex-direction:column;border:1px solid var(--pe-line);border-radius:8px;background:rgba(255,255,255,.035);padding:8px 8px 12px}
.loovl-ppfetu .loovl-ppfetu__nimi{padding:7px 12px 5px;border-radius:3px;background:linear-gradient(90deg,#3b3b3e,#26262a);font-weight:800;font-size:19px;letter-spacing:.05em;text-transform:uppercase;line-height:1.1}
.loovl-ppfetu .loovl-ppfetu__johdanto{padding:10px 6px 0;font-size:13.5px;color:#e2e2e2;line-height:1.35}
.loovl-ppfetu .loovl-ppfetu__paalle{padding:8px 6px 0}
.loovl-ppfetu__paalle span{display:inline-block;padding:5px 11px 4px;background:var(--pe-red);color:#fff;font-weight:800;font-size:19px;letter-spacing:.02em;line-height:1.15;text-transform:uppercase}
.loovl-ppfetu .loovl-ppfetu__edut{display:flex;flex-direction:column;padding:10px 6px 0}
.loovl-ppfetu__etu{display:flex;align-items:center;gap:12px;font-size:13px;line-height:1.3;color:#e8e8e8}
.loovl-ppfetu__etu b{font-weight:700;color:#fff}
.loovl-ppfetu__ikoni{display:block;flex:0 0 auto;width:38px;height:38px;color:#fff}
.loovl-ppfetu .loovl-ppfetu__vali{display:block;padding:2px 0 2px 50px;color:var(--pe-red);font-weight:800;font-size:12px;letter-spacing:.08em;line-height:1.2}
.loovl-ppfetu__vali--plus{font-size:18px;letter-spacing:0}
.loovl-ppfetu .loovl-ppfetu__arvo{display:flex;align-items:baseline;justify-content:space-between;gap:4px 12px;flex-wrap:wrap;margin:12px 6px 0;padding-top:10px;border-top:1px solid var(--pe-line)}
.loovl-ppfetu__arvo-nimi{font-size:11px;font-weight:600;letter-spacing:.24em;color:#bdbdbd;text-transform:uppercase}
.loovl-ppfetu__arvo-summa{font-family:Teko,Arial,Helvetica,sans-serif;font-weight:600;font-size:54px;line-height:.8;color:var(--pe-red)}

.loovl-ppfetu__napit{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.loovl-ppfetu a.loovl-ppfetu__nappi{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 14px;border:1px solid rgba(255,255,255,.4);border-radius:6px;background:transparent;color:#fff!important;text-decoration:none!important;font-size:12.5px;font-weight:600;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;transition:background-color .15s ease,border-color .15s ease}
.loovl-ppfetu a.loovl-ppfetu__nappi i{flex:0 0 auto;width:22px;font-size:19px;text-align:center;color:var(--pe-red)}
.loovl-ppfetu a.loovl-ppfetu__nappi span{flex:1 1 auto;min-width:0}
.loovl-ppfetu a.loovl-ppfetu__nappi:hover,.loovl-ppfetu a.loovl-ppfetu__nappi:focus{border-color:#fff;background:rgba(255,255,255,.08);color:#fff!important}
.loovl-ppfetu a.loovl-ppfetu__nappi--whatsapp{grid-column:1/-1;min-height:52px;border-color:var(--pe-red);background:var(--pe-red);font-size:13.5px;box-shadow:0 6px 18px rgba(199,8,27,.35)}
.loovl-ppfetu a.loovl-ppfetu__nappi--whatsapp i{color:#fff;font-size:24px;width:26px}
.loovl-ppfetu a.loovl-ppfetu__nappi--whatsapp:hover,.loovl-ppfetu a.loovl-ppfetu__nappi--whatsapp:focus{border-color:var(--pe-red-dark);background:var(--pe-red-dark)}
.loovl-ppfetu a.loovl-ppfetu__nappi:focus-visible,.loovl-ppfetu__sulje:focus-visible{outline:3px solid #fff;outline-offset:2px}
.loovl-ppfetu__nuoli{display:block;flex:0 0 auto}

.loovl-ppfetu__alaviite{display:flex;flex-direction:column;gap:2px;font-size:11px;line-height:1.35;color:#a9a9a9}

/* ---------- Banner ---------- */

.loovl-ppfetu-kehys{max-width:1260px;margin:0 auto;padding:40px 30px}
.loovl-ppfetu-banneri{container-type:inline-size;margin:0 0 28px}
.loovl-ppfetu-banneri--kehys{margin:0}
.loovl-ppfetu-banneri--rivi{clear:both;width:100%;margin:8px 0 20px}
@media (max-width:800px){.loovl-ppfetu-kehys{padding:28px 0}}

/* Narrow (phone): photo strip on top, title, Ultimate, Advanced, buttons, footnote. */
.loovl-ppfetu-banneri .loovl-ppfetu__kortti{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"c" "a" "b" "n" "d";overflow:hidden;border-radius:12px;background:var(--pe-bg);box-shadow:0 12px 34px rgba(0,0,0,.22)}
.loovl-ppfetu-banneri .loovl-ppfetu__a{grid-area:a;padding:16px 16px 0}
.loovl-ppfetu-banneri .loovl-ppfetu__b{grid-area:b;padding:14px 12px 0}
.loovl-ppfetu-banneri .loovl-ppfetu__kuva{grid-area:c;position:relative;aspect-ratio:16/7;overflow:hidden;background:#000}
/* Absolute: the tall photo must not set the height of its grid row. */
.loovl-ppfetu-banneri .loovl-ppfetu__kuva img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:cover;object-position:50% 40%}
.loovl-ppfetu-banneri .loovl-ppfetu__kuva::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,15,16,0) 55%,var(--pe-bg) 100%)}
.loovl-ppfetu-banneri .loovl-ppfetu__napit{grid-area:n;padding:14px 12px 10px}
.loovl-ppfetu-banneri .loovl-ppfetu__d{grid-area:d;padding:0 14px 14px}
.loovl-ppfetu-banneri .loovl-ppfetu__otsikko{font-size:50px}
.loovl-ppfetu-banneri .loovl-ppfetu__otsikko span{display:inline}
.loovl-ppfetu-banneri .loovl-ppfetu__viiva{display:none}
/* On a phone the banner opens the page: the three benefit lines go, the offers stay whole. */
.loovl-ppfetu-banneri .loovl-ppfetu__hyodyt{display:none}
/* Phone: the two offers side by side, without the gift icons – both are seen at once and the
   banner is half as tall as with the offers stacked (decided 15.10.2026). */
.loovl-ppfetu-banneri .loovl-ppfetu__tarjoukset{grid-template-columns:1fr 1fr;gap:8px}
.loovl-ppfetu-banneri .loovl-ppfetu__tarjous{padding:6px 6px 10px}
.loovl-ppfetu-banneri .loovl-ppfetu__nimi{font-size:15px;padding:5px 7px 3px}
.loovl-ppfetu-banneri .loovl-ppfetu__johdanto{font-size:11.5px;padding:6px 2px 0}
.loovl-ppfetu-banneri .loovl-ppfetu__paalle{padding:6px 2px 0}
.loovl-ppfetu-banneri .loovl-ppfetu__paalle span{font-size:12px;letter-spacing:0;padding:3px 5px 2px}
.loovl-ppfetu-banneri .loovl-ppfetu__edut{padding:6px 2px 0}
.loovl-ppfetu-banneri .loovl-ppfetu__ikoni{display:none}
.loovl-ppfetu-banneri .loovl-ppfetu__etu{font-size:11.5px}
.loovl-ppfetu-banneri .loovl-ppfetu__vali{padding:1px 0}
.loovl-ppfetu-banneri .loovl-ppfetu__arvo{margin:8px 2px 0;padding-top:6px}
.loovl-ppfetu-banneri .loovl-ppfetu__arvo-nimi{font-size:11px;letter-spacing:.1em} /* 22.10.2026: was 9px - too small to read */
.loovl-ppfetu-banneri .loovl-ppfetu__arvo-summa{font-size:38px}

/* Very narrow (under 300 px): side by side the gift lines would break into single words. An article column on a 390 px phone is about 330 px – it keeps the offers side by side. */
@container (max-width:299px){
	.loovl-ppfetu-banneri .loovl-ppfetu__tarjoukset{grid-template-columns:1fr}
	.loovl-ppfetu a.loovl-ppfetu__nappi{padding:8px 10px;gap:8px;font-size:11.5px}
}

/* Medium (article column on a computer, tablet): title and photo side by side, the two offers in a row. */
@container (min-width:640px){
	.loovl-ppfetu-banneri .loovl-ppfetu__kortti{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);grid-template-areas:"a c" "b b" "n n" "d d"}
	.loovl-ppfetu-banneri .loovl-ppfetu__a{padding:26px 24px 8px}
	.loovl-ppfetu-banneri .loovl-ppfetu__kuva{aspect-ratio:auto;min-height:220px}
	.loovl-ppfetu-banneri .loovl-ppfetu__kuva::after{background:linear-gradient(90deg,var(--pe-bg) 0%,rgba(15,15,16,0) 45%)}
	.loovl-ppfetu-banneri .loovl-ppfetu__b{padding:16px 20px 0}
	.loovl-ppfetu-banneri .loovl-ppfetu__tarjoukset{grid-template-columns:1fr 1fr;gap:12px}
	/* Back to the full offer cards with icons. */
	.loovl-ppfetu-banneri .loovl-ppfetu__tarjous{padding:8px 8px 12px}
	.loovl-ppfetu-banneri .loovl-ppfetu__nimi{font-size:19px;padding:7px 12px 5px}
	.loovl-ppfetu-banneri .loovl-ppfetu__johdanto{font-size:13.5px;padding:10px 6px 0}
	.loovl-ppfetu-banneri .loovl-ppfetu__paalle{padding:8px 6px 0}
	.loovl-ppfetu-banneri .loovl-ppfetu__paalle span{font-size:19px;padding:5px 11px 4px}
	.loovl-ppfetu-banneri .loovl-ppfetu__edut{padding:10px 6px 0}
	.loovl-ppfetu-banneri .loovl-ppfetu__ikoni{display:block}
	.loovl-ppfetu-banneri .loovl-ppfetu__etu{font-size:13px}
	.loovl-ppfetu-banneri .loovl-ppfetu__vali{padding:2px 0 2px 50px}
	.loovl-ppfetu-banneri .loovl-ppfetu__arvo{margin:12px 6px 0;padding-top:10px}
	.loovl-ppfetu-banneri .loovl-ppfetu__arvo-nimi{font-size:11px;letter-spacing:.24em}
	.loovl-ppfetu-banneri .loovl-ppfetu__arvo-summa{font-size:54px}
	.loovl-ppfetu-banneri .loovl-ppfetu__otsikko{font-size:72px}
	.loovl-ppfetu-banneri .loovl-ppfetu__otsikko span{display:block}
	.loovl-ppfetu-banneri .loovl-ppfetu__viiva{display:block;margin-top:14px}
	.loovl-ppfetu-banneri .loovl-ppfetu__hyodyt{display:block;margin-top:14px;font-size:15px}
	.loovl-ppfetu-banneri .loovl-ppfetu__hyodyt span+span{margin-top:3px}
	.loovl-ppfetu-banneri .loovl-ppfetu__napit{grid-template-columns:1.6fr 1fr 1.3fr;padding:16px 20px 10px}
	.loovl-ppfetu-banneri a.loovl-ppfetu__nappi--whatsapp{grid-column:auto}
	.loovl-ppfetu-banneri .loovl-ppfetu__d{padding:2px 20px 16px}
	.loovl-ppfetu-banneri .loovl-ppfetu__alaviite{flex-direction:row;flex-wrap:wrap}
	.loovl-ppfetu-banneri .loovl-ppfetu__alaviite span+span::before{content:"|";margin:0 8px;opacity:.6}
}

/* Wide (service page, price list on a computer): as in the mock-up – title, two offers, photo on the right. */
@container (min-width:1000px){
	.loovl-ppfetu-banneri .loovl-ppfetu__kortti{grid-template-columns:minmax(0,.75fr) minmax(0,1.65fr) minmax(0,.95fr);grid-template-areas:"a b c" "n n c" "d d c"}
	.loovl-ppfetu-banneri .loovl-ppfetu__a{display:flex;flex-direction:column;justify-content:center;padding:34px 20px 20px 38px}
	.loovl-ppfetu-banneri .loovl-ppfetu__b{align-self:center;padding:30px 24px 0 12px}
	.loovl-ppfetu-banneri .loovl-ppfetu__kuva{min-height:100%}
	.loovl-ppfetu-banneri .loovl-ppfetu__kuva::after{background:linear-gradient(90deg,var(--pe-bg) 0%,rgba(15,15,16,.55) 22%,rgba(15,15,16,0) 55%)}
	.loovl-ppfetu-banneri .loovl-ppfetu__otsikko{font-size:96px}
	.loovl-ppfetu-banneri .loovl-ppfetu__viiva{margin-top:18px}
	.loovl-ppfetu-banneri .loovl-ppfetu__hyodyt{margin-top:18px;font-size:17px}
	.loovl-ppfetu-banneri .loovl-ppfetu__napit{padding:20px 24px 8px 38px}
	.loovl-ppfetu-banneri .loovl-ppfetu__d{padding:4px 24px 22px 38px}
	.loovl-ppfetu-banneri .loovl-ppfetu__arvo-summa{font-size:60px}
}

/* ---------- Window (home pages) ---------- */

.loovl-ppfetu-ikkuna{position:fixed;z-index:99990;right:24px;bottom:24px;width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);overflow:hidden auto;overscroll-behavior:contain;border-radius:14px;background:var(--pe-bg);box-shadow:0 24px 60px rgba(0,0,0,.5);opacity:0;transform:translateX(calc(100% + 40px));transition:opacity .35s ease,transform .45s cubic-bezier(.2,.8,.2,1)}
.loovl-ppfetu-ikkuna[hidden]{display:none}
.loovl-ppfetu-ikkuna.is-auki{opacity:1;transform:none}
/* 20.10.2026: while the phone menu is open (html.loovl-menyu-auki, theme tema.js) the window waits:
 * it stands above the header (99990) and would cover the menu. It comes back when the menu closes. */
html.loovl-menyu-auki .loovl-ppfetu-ikkuna{visibility:hidden !important}
.loovl-ppfetu-ikkuna .loovl-ppfetu__tausta{position:absolute;top:0;right:0;width:62%;height:260px;max-width:none;margin:0;object-fit:cover;object-position:50% 35%;pointer-events:none}
.loovl-ppfetu-ikkuna::before{content:"";position:absolute;top:0;right:0;left:0;height:262px;z-index:1;background:linear-gradient(90deg,var(--pe-bg) 38%,rgba(15,15,16,.6) 62%,rgba(15,15,16,.1) 100%),linear-gradient(180deg,rgba(15,15,16,0) 60%,var(--pe-bg) 100%);pointer-events:none}
.loovl-ppfetu-ikkuna .loovl-ppfetu__sisus{position:relative;z-index:2;padding:28px 22px 20px}
.loovl-ppfetu__sulje{position:absolute;z-index:3;top:12px;right:12px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0;padding:0;border:0;border-radius:50%;background:#fff;color:#1d1d1b;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.35)}
.loovl-ppfetu__sulje:hover{background:#e9e9e9}
.loovl-ppfetu-ikkuna .loovl-ppfetu__otsikko{font-size:78px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__viiva{max-width:170px;margin-top:12px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__hyodyt{max-width:230px;margin-top:12px;font-size:14px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__tarjoukset{grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__nimi{font-size:16px;padding:6px 9px 4px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__johdanto{font-size:12px;padding:8px 3px 0}
.loovl-ppfetu-ikkuna .loovl-ppfetu__paalle{padding:7px 3px 0}
.loovl-ppfetu-ikkuna .loovl-ppfetu__paalle span{font-size:14px;padding:4px 7px 3px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__edut{padding:8px 3px 0}
.loovl-ppfetu-ikkuna .loovl-ppfetu__etu{gap:8px;font-size:11.5px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__ikoni{width:28px;height:28px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__vali{padding-left:36px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__arvo{margin:10px 3px 0;padding-top:8px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__arvo-nimi{font-size:11px;letter-spacing:.12em}
.loovl-ppfetu-ikkuna .loovl-ppfetu__arvo-summa{font-size:42px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__napit{margin-top:14px}
.loovl-ppfetu-ikkuna .loovl-ppfetu__alaviite{margin-top:10px;font-size:10px}

/* Low laptop screens: the benefit lines go first, the offers stay whole. */
@media (min-width:601px) and (max-height:820px){
	.loovl-ppfetu-ikkuna .loovl-ppfetu__hyodyt{display:none}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__otsikko{font-size:64px}
}

/* Phone: a sheet along the bottom edge; the offers stacked. */
@media (max-width:600px){
	.loovl-ppfetu-ikkuna{right:0;bottom:0;left:0;width:auto;max-width:none;max-height:88vh;max-height:88dvh;border-radius:16px 16px 0 0;transform:translateY(100%);padding-bottom:env(safe-area-inset-bottom)}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__tausta{width:70%;height:200px}
	.loovl-ppfetu-ikkuna::before{height:202px}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__sisus{padding:18px 14px 12px}
	.loovl-ppfetu__sulje{top:10px;right:10px;width:36px;height:36px}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__otsikko{font-size:56px}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__hyodyt{display:none}
	/* The two offers stay side by side, without the gift icons: stacked they made the sheet taller than the screen. */
	.loovl-ppfetu-ikkuna .loovl-ppfetu__tarjoukset{gap:8px;margin-top:14px}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__tarjous{padding:6px 6px 10px}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__nimi{font-size:14px;padding:5px 7px 3px}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__johdanto{font-size:11px;padding:6px 2px 0}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__paalle{padding:6px 2px 0}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__paalle span{font-size:12.5px;padding:3px 6px 2px}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__edut{padding:6px 2px 0}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__ikoni{display:none}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__etu{font-size:11px}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__vali{padding:1px 0}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__arvo{margin:8px 2px 0;padding-top:6px}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__arvo-nimi{font-size:10.5px;letter-spacing:.1em}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__arvo-summa{font-size:36px}
	.loovl-ppfetu-ikkuna .loovl-ppfetu__viiva{display:none}
	.loovl-ppfetu a.loovl-ppfetu__nappi{min-height:44px;padding:8px 10px;gap:8px;font-size:11.5px}
	.loovl-ppfetu a.loovl-ppfetu__nappi--whatsapp{min-height:48px;font-size:12.5px}
}

/* While the window is open the PPF bar (loovl-cta.php) steps aside – they would overlap. */
html.loovl-ppfetu-auki .loovl-cta-bar{visibility:hidden!important;opacity:0!important}
html.loovl-ppfetu-auki #toTop{visibility:hidden!important}

@media (prefers-reduced-motion:reduce){.loovl-ppfetu-ikkuna{transition:none}}
@media print{.loovl-ppfetu{display:none!important}}
