/*
Theme Name: Parturi Lorenzo Child
Theme URI: https://parturilorenzo.fi
Description: Moderni luksus-ulkoasu — glass, mesh, gold + violetti.
Author: Parturi Lorenzo
Template: astra
Version: 3.0.0
Text Domain: parturi-lorenzo-child
*/

:root{
    --bg:#ffffff;
    --bg-2:#f5f8f5;
    --cream:#f5f8f5;
    --paper:#ffffff;
    --ink:#15281f;
    --ink-soft:#2e3d34;
    --ink-mute:#5e6e64;
    --line:rgba(21,40,31,.10);
    --line-light:rgba(21,40,31,.10);
    --p-50:#ecf3ee;
    --p-100:#d1e3d6;
    --p-200:#a3c2ad;
    --p-300:#6f9b7e;
    --p-400:#4a7a5c;
    --p-500:#2d5a3d;
    --p-600:#1f3a2e;
    --p-700:#15281f;
    --pink-400:#b8893d;
    --gold:#b8893d;
    --gold-soft:#d4a04c;
    --grad: linear-gradient(135deg,#2d5a3d 0%, #2d5a3d 100%);
    --grad-gold: linear-gradient(135deg,#b8893d 0%, #b8893d 100%);
    --grad-soft: linear-gradient(135deg,#ecf3ee 0%, #ecf3ee 100%);
    --grad-text: linear-gradient(135deg,#1f3a2e 0%, #1f3a2e 100%);
    --r-sm:10px; --r:14px; --r-lg:22px; --r-xl:32px;
    --shadow-sm:0 2px 10px rgba(21,40,31,.06), 0 8px 24px -8px rgba(31,58,46,.18);
    --shadow:0 18px 50px -12px rgba(31,58,46,.30), 0 6px 18px rgba(74,122,92,.14);
    --shadow-lg:0 40px 100px -20px rgba(31,58,46,.45), 0 14px 34px -8px rgba(184,137,61,.22);
    --card-rest:0 1px 2px rgba(21,40,31,.04), 0 12px 32px -12px rgba(31,58,46,.22), 0 2px 6px rgba(21,40,31,.05);
    --t:320ms cubic-bezier(.2,.7,.2,1);
    --t-spring:500ms cubic-bezier(.34,1.56,.64,1);
}
@property --ang{ syntax:'<angle>'; initial-value:0deg; inherits:false; }

.pl-app *,.pl-app *::before,.pl-app *::after{ box-sizing:border-box; }
body.pl-app #page,body.pl-app .site-header,body.pl-app .ast-primary-header-bar,body.pl-app .ast-primary-header,body.pl-app #masthead,body.pl-app .site-footer,body.pl-app #colophon,body.pl-app .astra-advanced-hook,body.pl-app .ast-above-header,body.pl-app .ast-below-header,body.pl-blog #page,body.pl-blog .site-header,body.pl-blog .ast-primary-header-bar,body.pl-blog .ast-primary-header,body.pl-blog #masthead,body.pl-blog .site-footer,body.pl-blog #colophon,body.pl-blog .astra-advanced-hook,body.pl-blog .ast-above-header,body.pl-blog .ast-below-header{ display:none !important; }
html,body.pl-app{ overflow-x:clip; max-width:100%; }
body.pl-app img,body.pl-app iframe,body.pl-app video{ max-width:100%; height:auto; }

.pl-app{
    font-family:'Inter','Helvetica Neue',Arial,sans-serif;
    color:var(--ink); background:var(--paper);
    line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
    position:relative;
}
.pl-app::before{
    content:""; position:fixed; inset:0; z-index:1; pointer-events:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/></svg>");
    opacity:.05; mix-blend-mode:multiply;
}
.pl-app::after{
    content:""; position:fixed; inset:0; z-index:1; pointer-events:none;
    background:radial-gradient(600px circle at var(--mx,50%) var(--my,30%), rgba(184,137,61,.05), transparent 65%);
}
.pl-app a{ color:var(--p-600); text-decoration:none; transition:color var(--t); }
.pl-app a:hover{ color:var(--p-500); }
.pl-app img{ max-width:100%; display:block; }
.pl-app h1,.pl-app h2,.pl-app h3,.pl-app h4{
    font-family:'Playfair Display',Georgia,serif; color:var(--ink);
    line-height:1.08; letter-spacing:-.02em; margin:0 0 .5em; font-weight:700;
}
.pl-app h1{ font-size:clamp(2.6rem,5.6vw,4.6rem); font-weight:800; letter-spacing:-.03em; }
.pl-app h2{ font-size:clamp(2rem,3.6vw,3rem); }
.pl-app h3{ font-size:1.35rem; }
.pl-app p{ margin:0 0 1em; color:var(--ink-soft); }
.pl-wrap{ width:min(1240px,92%); margin:0 auto; position:relative; z-index:2; }
.pl-app ::selection{ background:rgba(184,137,61,.25); color:var(--ink); }

/* Booking overrides */
.pl-pricing > div{ min-width:0; }
.pl-pricing .pb-wrap{ padding:1.5rem; box-shadow:none; max-width:100%; background:transparent; }
.pl-pricing .pb-cards{ grid-template-columns:repeat(auto-fit, minmax(min(180px,100%), 1fr)); }
.pl-pricing .pb-cards--sm{ grid-template-columns:repeat(auto-fit, minmax(min(130px,100%), 1fr)); }
.pl-pricing .pb-grid{ grid-template-columns:repeat(auto-fit, minmax(min(200px,100%), 1fr)); }
.pl-pricing .pb-card-body{ padding:14px 12px; word-break:break-word; }
.pl-app .pb-slot{ color:var(--ink) !important; background:#fff !important; border-radius:10px; }
.pl-app .pb-slot.is-active{ color:#fff !important; background:var(--grad) !important; box-shadow:0 6px 16px rgba(74,122,92,.35); }
.pl-app .pb-slot:disabled{ color:#b5b1bd !important; }

/* TOPBAR */
.pl-topbar{ background:var(--bg); color:#cfc6e3; font-size:13px; border-bottom:1px solid var(--line); }
.pl-topbar-inner{ display:flex; justify-content:space-between; align-items:center; padding:10px 0; gap:1rem; flex-wrap:wrap; }
.pl-topbar a{ color:#fff; }
.pl-topbar .pl-topbar-left{ display:flex; gap:1.4rem; align-items:center; flex-wrap:wrap; }
.pl-topbar .pl-topbar-left span{ display:inline-flex; align-items:center; gap:.4rem; }
.pl-topbar .pl-topbar-cta{
    display:inline-flex; align-items:center; gap:.5rem; background:var(--grad);
    padding:6px 16px; border-radius:999px; font-weight:700; color:#fff;
    box-shadow:0 6px 24px rgba(184,137,61,.4); transition:transform var(--t);
}
.pl-topbar .pl-topbar-cta:hover{ transform:translateY(-1px); color:#fff; }

/* HEADER */
.pl-header{
    position:sticky; top:0; z-index:60;
    background:rgba(255,255,255,.78);
    -webkit-backdrop-filter:saturate(160%) blur(18px); backdrop-filter:saturate(160%) blur(18px);
    border-bottom:1px solid transparent;
    transition:border-color var(--t), box-shadow var(--t), background var(--t);
}
.pl-header.scrolled{ border-color:var(--line-light); background:rgba(255,255,255,.94); box-shadow:0 8px 30px rgba(11,8,20,.08); }
.pl-header-inner{ display:flex; align-items:center; justify-content:space-between; padding:1rem 0; gap:1.5rem; }
.pl-brand{ display:inline-flex; align-items:center; gap:.7rem; color:var(--ink); font-weight:700; }
.pl-brand-mark{
    width:46px; height:46px; border-radius:14px; background:var(--grad);
    display:grid; place-items:center; color:#fff;
    font-family:'Playfair Display',serif; font-weight:800; font-size:1.5rem;
    box-shadow:0 12px 30px -6px rgba(184,137,61,.55), inset 0 1px 0 rgba(255,255,255,.4);
    position:relative;
}
.pl-brand-mark::after{
    content:""; position:absolute; inset:-3px; border-radius:16px; z-index:-1;
    background:conic-gradient(from 0deg, transparent 0%, rgba(184,137,61,.6), transparent 30%);
    animation:plRotate 6s linear infinite; filter:blur(6px); opacity:.7;
}
@keyframes plRotate{ to{ transform:rotate(360deg); } }
.pl-brand-text{ line-height:1.1; font-family:'Playfair Display',serif; font-size:1.18rem; }
.pl-brand-text small{ display:block; font-family:'Inter',sans-serif; font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--ink-mute); font-weight:600; }
.pl-nav ul{ display:flex; gap:1.6rem; list-style:none; padding:0; margin:0; }
.pl-nav a{ color:var(--ink-soft); font-weight:500; font-size:.95rem; padding:.4em 0; position:relative; }
.pl-nav a::after{ content:''; position:absolute; left:0; right:100%; bottom:-4px; height:2px; background:var(--grad); border-radius:2px; transition:right var(--t-spring); }
.pl-nav a:hover{ color:var(--ink); }
.pl-nav a:hover::after{ right:0; }
.pl-header-cta{ display:flex; gap:.6rem; align-items:center; }
.pl-nav-toggle{ display:none; background:var(--grad); border:0; cursor:pointer; width:44px; height:44px; padding:10px; flex-direction:column; gap:5px; justify-content:center; border-radius:12px; box-shadow:0 8px 20px -6px rgba(184,137,61,.55), inset 0 1px 0 rgba(255,255,255,.35); transition:transform var(--t), box-shadow var(--t), filter var(--t); }
.pl-nav-toggle:hover{ transform:translateY(-1px); filter:brightness(1.05); box-shadow:0 12px 26px -6px rgba(184,137,61,.7), inset 0 1px 0 rgba(255,255,255,.4); }
.pl-nav-toggle:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.pl-nav-toggle span{ display:block; height:2px; width:100%; background:#fff; border-radius:2px; transition:transform var(--t),opacity var(--t); }
.pl-nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.pl-nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.pl-nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.pl-mobile-menu{ display:none; flex-direction:column; padding:1rem 0; background:rgba(255,255,255,.98); border-top:1px solid var(--line-light); }
.pl-mobile-menu a{ color:var(--ink); padding:.85rem 1.2rem; border-bottom:1px solid rgba(15,10,30,.05); font-weight:500; }
.pl-mobile-menu .pl-btn{ margin:1rem 1.2rem 0; }

/* BUTTONS */
.pl-app .pl-btn{
    display:inline-flex !important; align-items:center; gap:.6em;
    padding:.95em 1.8em; border-radius:999px;
    font-weight:600 !important; font-size:.95rem; border:1.5px solid transparent;
    cursor:pointer; text-decoration:none !important;
    transition:transform var(--t-spring), box-shadow var(--t), background var(--t), color var(--t), border-color var(--t);
    white-space:nowrap; line-height:1.2; position:relative; overflow:hidden; isolation:isolate;
}
.pl-app .pl-btn-lg{ padding:1.05em 2em; font-size:1rem; }
.pl-app .pl-btn::before{
    content:""; position:absolute; inset:0;
    background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
    transform:translateX(-110%); transition:transform .8s ease; pointer-events:none;
}
.pl-app .pl-btn:hover::before{ transform:translateX(110%); }
.pl-app .pl-btn-primary,.pl-app .pl-btn-primary:visited{
    background:var(--grad) !important; color:#fff !important;
    box-shadow:0 14px 40px -10px rgba(184,137,61,.55), inset 0 1px 0 rgba(255,255,255,.25);
}
.pl-app .pl-btn-primary:hover{ transform:translateY(-3px) scale(1.02); box-shadow:0 22px 50px -10px rgba(184,137,61,.55); color:#fff !important; }
.pl-app .pl-btn-outline,.pl-app .pl-btn-outline:visited{ background:transparent !important; color:var(--p-600) !important; border-color:var(--p-400); }
.pl-app .pl-btn-outline:hover{ background:var(--p-500) !important; color:#fff !important; transform:translateY(-2px); border-color:transparent; }
.pl-app .pl-btn-ghost,.pl-app .pl-btn-ghost:visited{ background:rgba(255,255,255,.7) !important; color:var(--ink) !important; border-color:var(--line-light); backdrop-filter:blur(10px); }
.pl-app .pl-btn-ghost:hover{ background:#fff !important; border-color:var(--p-300); color:var(--p-600) !important; transform:translateY(-2px); }
.pl-app .pl-btn-light,.pl-app .pl-btn-light:visited{ background:#fff !important; color:var(--p-700) !important; border-color:var(--p-100); box-shadow:0 6px 18px rgba(11,8,20,.08); }
.pl-app .pl-btn-light:hover{ border-color:var(--p-500); color:var(--p-500) !important; transform:translateY(-2px); }

/* HERO */
.pl-hero{ position:relative; padding:6rem 0; background:var(--bg); color:#fff; overflow:hidden; isolation:isolate; }
.pl-hero::before{
    content:""; position:absolute; inset:-20%; z-index:-2; pointer-events:none;
    background:
        radial-gradient(45% 50% at 18% 22%, rgba(184,137,61,.55) 0%, transparent 60%),
        radial-gradient(40% 45% at 82% 18%, rgba(184,137,61,.45) 0%, transparent 60%),
        radial-gradient(50% 55% at 65% 82%, rgba(74,122,92,.5) 0%, transparent 60%),
        radial-gradient(35% 40% at 15% 85%, rgba(184,137,61,.32) 0%, transparent 60%);
    filter:blur(20px) saturate(140%);
    animation:plMesh 24s ease-in-out infinite alternate;
}
.pl-hero::after{
    content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
    background:linear-gradient(180deg, rgba(11,8,20,.2) 0%, rgba(11,8,20,.55) 100%),
        repeating-linear-gradient(45deg, transparent 0 22px, rgba(255,255,255,.025) 22px 23px);
}
@keyframes plMesh{
    0%{ transform:translate3d(0,0,0) rotate(0deg) scale(1); }
    50%{ transform:translate3d(2%,-1%,0) rotate(8deg) scale(1.06); }
    100%{ transform:translate3d(-2%,2%,0) rotate(-6deg) scale(1.04); }
}
.pl-hero-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:4rem; align-items:center; }
.pl-hero h1,.pl-hero h2,.pl-hero h3{ color:#fff; }
.pl-hero p{ color:rgba(255,255,255,.78); }
.pl-hero-eyebrow{
    display:inline-flex; align-items:center; gap:.55em;
    padding:.5em 1.1em; border-radius:999px;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
    -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    color:#f5e1a4; font-size:.78rem; font-weight:700; letter-spacing:3px; text-transform:uppercase;
    margin-bottom:1.6rem;
}
.pl-hero-eyebrow .pl-dot{ width:7px; height:7px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px rgba(184,137,61,.25); animation:plPulse 2s ease-in-out infinite; }
@keyframes plPulse{ 0%,100%{ box-shadow:0 0 0 4px rgba(184,137,61,.25); } 50%{ box-shadow:0 0 0 10px rgba(184,137,61,.05); } }
.pl-hero h1{
    margin-bottom:1.2rem;
    background:var(--grad-text);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.pl-hero h1 em{ font-style:normal; color:#b8893d; }
.pl-hero-sub{ font-size:1.18rem; max-width:560px; margin-bottom:2rem; color:rgba(255,255,255,.78) !important; }
.pl-hero-cta{ display:flex; gap:.8rem; flex-wrap:wrap; margin-bottom:2.2rem; }
.pl-hero-trust{ display:flex; gap:1.2rem; align-items:center; flex-wrap:wrap; font-size:.92rem; color:rgba(255,255,255,.6); }
.pl-hero-trust strong{ color:#fff; font-weight:700; }
.pl-hero-stars{ color:var(--gold); letter-spacing:1px; filter:drop-shadow(0 0 8px rgba(184,137,61,.5)); }
.pl-hero-visual{ position:relative; min-height:540px; perspective:1600px; }
.pl-hero-img{
    position:relative; z-index:2; border-radius:var(--r-xl); overflow:hidden;
    box-shadow:var(--shadow-lg), 0 0 0 1px rgba(255,255,255,.08) inset;
    transform:rotateY(-7deg) rotateX(4deg);
    transition:transform .8s cubic-bezier(.2,.7,.2,1); will-change:transform;
}
.pl-hero-img:hover{ transform:rotateY(0) rotateX(0) translateY(-4px); }
.pl-hero-img::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 50%, rgba(11,8,20,.55) 100%); pointer-events:none; }
.pl-hero-img img{ width:100%; height:580px; object-fit:cover; filter:saturate(1.15) contrast(1.05); }
.pl-hero-decor{
    position:absolute; inset:-32px; z-index:1;
    background:conic-gradient(from 140deg at 60% 40%, rgba(184,137,61,.5), rgba(184,137,61,.3) 30%, rgba(184,137,61,.4) 60%, rgba(184,137,61,.5));
    filter:blur(40px) saturate(140%); opacity:.7; border-radius:42px;
    animation:plRotate 18s linear infinite;
}
.pl-hero-floating{
    position:absolute; z-index:3; background:rgba(255,255,255,.92); border-radius:var(--r);
    padding:.95rem 1.2rem;
    box-shadow:0 16px 50px -12px rgba(11,8,20,.45), 0 1px 0 rgba(255,255,255,.5) inset;
    -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
    display:flex; align-items:center; gap:.8rem;
    animation:plBob 6s ease-in-out infinite; border:1px solid rgba(255,255,255,.5);
}
.pl-hero-floating-1{ top:30px; left:-30px; }
.pl-hero-floating-2{ bottom:30px; right:-30px; animation-delay:-3s; }
@keyframes plBob{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-14px);} }
.pl-hero-floating .pl-ico{
    width:42px; height:42px; border-radius:12px; background:var(--grad);
    display:grid; place-items:center; color:#fff; font-size:18px; flex:0 0 42px;
    box-shadow:0 6px 14px -4px rgba(184,137,61,.5);
}
.pl-hero-floating strong{ display:block; font-family:'Playfair Display',serif; font-size:1.05rem; line-height:1.1; color:var(--ink); }
.pl-hero-floating small{ font-size:11px; color:var(--ink-mute); letter-spacing:1.5px; text-transform:uppercase; }

/* Trust strip */
.pl-trust-strip{ border-top:1px solid var(--line-light); border-bottom:1px solid var(--line-light); background:linear-gradient(180deg,#fff 0%, var(--cream) 100%); padding:2rem 0; position:relative; overflow:hidden; }
.pl-trust-strip::before{ content:""; position:absolute; inset:0; background:radial-gradient(60% 80% at 50% 50%, rgba(184,137,61,.05), transparent 70%); }
.pl-trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; align-items:center; }
.pl-trust-item{ text-align:center; padding:.6rem; border-radius:var(--r); transition:transform var(--t); }
.pl-trust-item:hover{ transform:translateY(-3px); }
.pl-trust-num{
    font-family:'Playfair Display',serif; font-weight:800; font-size:2.6rem; line-height:1;
    background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
    filter:drop-shadow(0 4px 14px rgba(184,137,61,.25));
}
.pl-trust-label{ margin-top:8px; font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:var(--ink-mute); font-weight:700; }

/* SECTION */
.pl-section{ padding:7rem 0; position:relative; }
.pl-section.alt{ background:var(--cream); }
.pl-section.alt::before{ content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(40% 40% at 10% 10%, rgba(184,137,61,.08), transparent 60%), radial-gradient(40% 40% at 90% 90%, rgba(184,137,61,.08), transparent 60%); }
.pl-section.dark{ background:var(--bg); color:#e8e2f4; }
.pl-section.dark h2,.pl-section.dark h3{ color:#fff; }
.pl-section.dark p{ color:#bdb3cf; }
.pl-section-head{ text-align:center; max-width:760px; margin:0 auto 4rem; position:relative; }
.pl-eyebrow{ display:inline-block; color:var(--p-600); font-size:.78rem; letter-spacing:3px; text-transform:uppercase; font-weight:700; margin-bottom:.8rem; }
.pl-eyebrow::before,.pl-eyebrow::after{ content:""; display:inline-block; width:24px; height:1px; vertical-align:middle; background:linear-gradient(90deg, transparent, currentColor); margin-right:.6em; }
.pl-eyebrow::after{ background:linear-gradient(90deg, currentColor, transparent); margin:0 0 0 .6em; }
.pl-section.dark .pl-eyebrow{ color:var(--gold); }
.pl-section-head h2{ margin-bottom:.6rem; }
.pl-section-head p{ font-size:1.08rem; }

/* SERVICES */
.pl-services{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.pl-service{
    position:relative; overflow:hidden; background:var(--paper); border-radius:var(--r-lg);
    padding:2.2rem 1.9rem; border:1px solid var(--line-light);
    box-shadow:var(--card-rest);
    transition:transform var(--t), box-shadow var(--t), border-color var(--t);
    will-change:transform;
}
.pl-service::before{
    content:""; position:absolute; inset:0; padding:1.5px; border-radius:inherit;
    background:conic-gradient(from var(--ang,0deg), transparent 0deg, rgba(184,137,61,.4) 60deg, rgba(184,137,61,.4) 120deg, transparent 200deg);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    opacity:0; transition:opacity var(--t); pointer-events:none;
}
.pl-service:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }
.pl-service:hover::before{ opacity:1; animation:plSpin 4s linear infinite; }
@keyframes plSpin{ to{ --ang:360deg; } }
.pl-service::after{
    content:""; position:absolute; inset:auto -30% -50% auto; width:240px; height:240px;
    background:radial-gradient(circle,rgba(184,137,61,.18),transparent 70%);
    transition:transform .8s ease; transform:scale(.4); pointer-events:none;
}
.pl-service:hover::after{ transform:scale(1.6); }
.pl-service > *{ position:relative; z-index:1; }
.pl-service-icon{
    width:60px; height:60px; border-radius:16px; background:var(--grad);
    display:grid; place-items:center; color:#fff; font-size:26px;
    box-shadow:0 12px 28px -6px rgba(184,137,61,.55), inset 0 1px 0 rgba(255,255,255,.3);
    margin-bottom:1.3rem; transition:transform var(--t-spring);
}
.pl-service:hover .pl-service-icon{ transform:rotate(-8deg) scale(1.08); }
.pl-service h3{ margin:0 0 .4rem; font-size:1.3rem; }
.pl-service p{ margin:0 0 1.1rem; font-size:.95rem; }
.pl-service-link{ display:inline-flex; align-items:center; gap:.4em; color:var(--p-600); font-weight:700; font-size:.9rem; transition:gap var(--t); }
.pl-service-link::after{ content:"→"; transition:transform var(--t); }
.pl-service:hover .pl-service-link{ gap:.8em; }
.pl-service-price{
    position:absolute; top:1.4rem; right:1.4rem;
    font-family:'Playfair Display',serif; font-size:.95rem; font-weight:800;
    background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
    border:1px solid var(--p-100); padding:.32em .9em; border-radius:999px;
    background-color:rgba(244,236,255,.55);
}

/* ABOUT */
.pl-about-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:4rem; align-items:center; }
.pl-about-img{ position:relative; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--shadow-lg); isolation:isolate; }
.pl-about-img img{ width:100%; height:580px; object-fit:cover; transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.pl-about-img:hover img{ transform:scale(1.05); }
.pl-about-img::before{ content:""; position:absolute; inset:auto auto -40px -40px; width:170px; height:170px; border-radius:var(--r-lg); background:var(--grad); z-index:-1; filter:blur(2px); }
.pl-about-img::after{ content:""; position:absolute; inset:auto -40px -40px auto; width:120px; height:120px; border-radius:50%; background:var(--grad-gold); z-index:-1; filter:blur(2px); }
.pl-about-badge{
    position:absolute; top:24px; left:24px;
    padding:.6rem 1.1rem; border-radius:999px;
    font-size:.78rem; font-weight:800; letter-spacing:2px; text-transform:uppercase;
    background:rgba(255,255,255,.95);
    color:var(--p-700);
    box-shadow:var(--shadow-sm); border:1px solid rgba(255,255,255,.8);
    -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
}
.pl-about-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:2rem; padding-top:2rem; border-top:1px solid var(--line-light); }
.pl-about-stats div + div{ padding-left:1.2rem; border-left:1px solid var(--line-light); }
.pl-about-stats div strong{ display:block; font-family:'Playfair Display',serif; font-size:2.2rem; line-height:1; background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.pl-about-stats div small{ color:var(--ink-mute); font-size:.78rem; letter-spacing:1.5px; text-transform:uppercase; font-weight:700; }

/* FEATURES */
.pl-features{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
.pl-feature{
    background:var(--paper); border-radius:var(--r-lg); padding:2rem 1.5rem;
    border:1px solid var(--line-light);
    box-shadow:var(--card-rest);
    transition:transform var(--t), box-shadow var(--t), border-color var(--t);
    text-align:center; position:relative; overflow:hidden;
}
.pl-feature::before{ content:""; position:absolute; inset:auto auto -40% -40%; width:160px; height:160px; border-radius:50%; background:radial-gradient(circle, rgba(184,137,61,.18), transparent 70%); transition:transform .6s ease; transform:scale(.4); }
.pl-feature:hover::before{ transform:scale(2); }
.pl-feature:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--p-200); }
.pl-feature-icon{
    width:70px; height:70px; border-radius:50%; background:var(--grad-soft);
    display:grid; place-items:center; color:var(--p-700); font-size:30px;
    margin:0 auto 1.1rem; border:2px solid var(--p-100);
    box-shadow:0 8px 20px -6px rgba(184,137,61,.3); position:relative;
}
.pl-feature-icon::before{ content:""; position:absolute; inset:-6px; border-radius:50%; background:conic-gradient(from 0deg, var(--p-300), var(--pink-400), var(--gold), var(--p-300)); z-index:-1; opacity:0; transition:opacity var(--t); filter:blur(8px); }
.pl-feature:hover .pl-feature-icon::before{ opacity:.6; }
.pl-feature h3{ font-size:1.1rem; margin:0 0 .3rem; }
.pl-feature p{ font-size:.92rem; margin:0; }

/* TESTIMONIALS */
.pl-testimonials{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.pl-quote{ position:relative; background:var(--paper); border-radius:var(--r-lg); padding:2.6rem 1.9rem 1.9rem; border:1px solid var(--line-light); box-shadow:var(--card-rest); transition:transform var(--t), box-shadow var(--t); }
.pl-quote:hover{ transform:translateY(-8px) rotate(-.4deg); box-shadow:var(--shadow); }
.pl-quote::before{
    content:"\201C"; position:absolute; top:-26px; left:24px;
    font-family:'Playfair Display',serif; font-size:6rem; line-height:1;
    background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
    padding:0 8px;
}
.pl-quote-stars{ color:var(--gold); letter-spacing:2px; font-size:14px; margin-bottom:.8rem; filter:drop-shadow(0 0 6px rgba(184,137,61,.5)); }
.pl-quote p{ font-size:1.02rem; line-height:1.75; font-style:italic; color:var(--ink); margin:0 0 1.4rem; }
.pl-quote-author{ display:flex; align-items:center; gap:.9rem; border-top:1px solid var(--line-light); padding-top:1rem; }
.pl-quote-avatar{ width:48px; height:48px; border-radius:50%; background:var(--grad); color:#fff; display:grid; place-items:center; font-family:'Playfair Display',serif; font-weight:700; box-shadow:0 6px 16px -4px rgba(184,137,61,.5); }
.pl-quote-name strong{ display:block; font-family:'Playfair Display',serif; font-weight:700; }
.pl-quote-name small{ color:var(--ink-mute); font-size:12px; letter-spacing:1.5px; text-transform:uppercase; }

/* PRICING */
.pl-pricing{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; background:var(--paper); border-radius:var(--r-xl); padding:3rem; box-shadow:var(--shadow); border:1px solid var(--line-light); position:relative; overflow:hidden; }
.pl-pricing::before{ content:""; position:absolute; top:-50%; right:-30%; width:600px; height:600px; background:radial-gradient(circle, rgba(184,137,61,.10), transparent 60%); pointer-events:none; }
.pl-pricing > *{ position:relative; z-index:1; }
.pl-pricing h2{ margin-top:0; }
.pl-pricing-list{ list-style:none; padding:0; margin:1.5rem 0; display:grid; gap:.6rem; }
.pl-pricing-list li{ display:flex; justify-content:space-between; align-items:center; padding:.95rem 1.2rem; border-radius:12px; background:var(--cream); transition:background var(--t), transform var(--t); border:1px solid transparent; }
.pl-pricing-list li:hover{ background:#fff; transform:translateX(4px); border-color:var(--p-100); box-shadow:var(--shadow-sm); }
.pl-pricing-list strong{ font-family:'Playfair Display',serif; background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; font-size:1.15rem; font-weight:800; }

/* INFO (hours/contact) */
.pl-info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.pl-info-card{ background:var(--paper); border-radius:var(--r-lg); padding:2.4rem; border:1px solid var(--line-light); box-shadow:var(--card-rest); transition:transform var(--t), box-shadow var(--t); position:relative; overflow:hidden; }
.pl-info-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.pl-info-card h3{ margin:0 0 1rem; }
.pl-info-card .pl-info-icon{ width:60px; height:60px; border-radius:16px; background:var(--grad-soft); color:var(--p-600); display:grid; place-items:center; font-size:26px; margin-bottom:1.3rem; border:1px solid var(--p-100); }
.pl-hours{ list-style:none; padding:0; margin:0; }
.pl-hours li{ display:flex; justify-content:space-between; padding:.9rem 0; border-bottom:1px dashed var(--line-light); font-size:.97rem; transition:color var(--t); }
.pl-hours li:last-child{ border-bottom:0; }
.pl-hours li:hover{ color:var(--p-600); }
.pl-hours li.is-today{ background:linear-gradient(135deg, var(--p-50), #fff); margin:0 -1rem; padding:.95rem 1rem; border-radius:12px; border:1px solid var(--p-100); font-weight:700; color:var(--p-700); box-shadow:0 4px 14px -4px rgba(184,137,61,.18); }
.pl-info-line{ display:flex; align-items:center; gap:.85rem; margin:.7rem 0; font-size:1.02rem; }
.pl-info-line .pl-info-ico-sm{ width:38px; height:38px; border-radius:12px; flex:0 0 38px; background:var(--p-50); color:var(--p-600); display:grid; place-items:center; font-size:16px; border:1px solid var(--p-100); }
.pl-info-line a{ color:var(--ink); font-weight:600; }
.pl-info-line a:hover{ color:var(--p-600); }
.pl-map{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); margin-top:2rem; position:relative; }
.pl-map iframe{ width:100%; height:380px; border:0; display:block; filter:contrast(1.05); }

/* CTA banner */
.pl-cta{ position:relative; overflow:hidden; background:var(--bg); color:#fff; border-radius:var(--r-xl); padding:4.5rem 3rem; box-shadow:var(--shadow-lg); isolation:isolate; }
.pl-cta::before{
    content:""; position:absolute; inset:-30%; z-index:-2;
    background:radial-gradient(40% 40% at 20% 20%, rgba(184,137,61,.55), transparent 60%), radial-gradient(40% 40% at 80% 80%, rgba(184,137,61,.45), transparent 60%), radial-gradient(40% 40% at 80% 20%, rgba(184,137,61,.30), transparent 60%);
    filter:blur(20px) saturate(150%); animation:plMesh 20s ease-in-out infinite alternate;
}
.pl-cta::after{
    content:""; position:absolute; inset:0; z-index:-1;
    background-image:linear-gradient(to right, rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,.05) 1px, transparent 1px);
    background-size:32px 32px;
    mask-image:radial-gradient(ellipse at top right, black, transparent 70%);
    -webkit-mask-image:radial-gradient(ellipse at top right, black, transparent 70%);
    pointer-events:none;
}
.pl-cta-inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.2fr 1fr; gap:3rem; align-items:center; }
.pl-cta h2{ color:#fff; background:var(--grad-text); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.pl-cta p{ color:rgba(255,255,255,.85); font-size:1.1rem; margin-bottom:1.6rem; }
.pl-cta-phonecard{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); padding:1.8rem; border-radius:var(--r-lg); color:#fff; text-align:center; position:relative; }
.pl-cta-phonecard small{ display:block; font-size:11px; letter-spacing:3px; text-transform:uppercase; opacity:.85; margin-bottom:.4rem; color:var(--gold-soft); }
.pl-cta-phonecard a{ display:block; color:#fff; font-family:'Playfair Display',serif; font-size:2rem; font-weight:800; line-height:1; margin-bottom:.4rem; }
.pl-cta-phonecard a:hover{ color:#f5e1a4; }
.pl-cta-phonecard .pl-btn{ margin-top:.8rem; }

/* FOOTER */
.pl-footer{ background:var(--bg); color:#bfb6d3; padding:5rem 0 1.5rem; position:relative; overflow:hidden; }
.pl-footer::before{ content:""; position:absolute; top:-60%; right:-10%; width:700px; height:700px; background:radial-gradient(circle,rgba(184,137,61,.25),transparent 65%); filter:blur(30px); pointer-events:none; }
.pl-footer::after{ content:""; position:absolute; bottom:-40%; left:-10%; width:500px; height:500px; background:radial-gradient(circle,rgba(184,137,61,.18),transparent 65%); filter:blur(30px); pointer-events:none; }
.pl-footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2.5rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.08); position:relative; z-index:1; }
.pl-footer h4{ color:#fff; font-size:.92rem; font-family:'Inter',sans-serif; text-transform:uppercase; letter-spacing:2.5px; margin:0 0 1.2rem; position:relative; padding-bottom:.7rem; }
.pl-footer h4::after{ content:""; position:absolute; left:0; bottom:0; width:36px; height:2px; background:var(--grad); border-radius:2px; }
.pl-footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:.65rem; }
.pl-footer a{ color:#bfb6d3; font-size:.92rem; transition:color var(--t), padding-left var(--t); }
.pl-footer a:hover{ color:#fff; padding-left:4px; }
.pl-footer .pl-brand{ color:#fff; }
.pl-footer .pl-brand-text small{ color:#8b80a3; }
.pl-footer-tag{ color:#8b80a3; font-size:.92rem; max-width:340px; margin-top:1rem; }
.pl-footer-bottom{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding-top:1.6rem; color:#8b80a3; font-size:.85rem; position:relative; z-index:1; }

/* PAGE HERO / CONTENT */
.pl-page-hero{ position:relative; overflow:hidden; padding:6rem 0 4rem; background:var(--bg); color:#fff; text-align:center; }
.pl-page-hero::before{ content:""; position:absolute; inset:-20%; z-index:0; background:radial-gradient(40% 50% at 30% 30%, rgba(184,137,61,.45), transparent 60%), radial-gradient(40% 50% at 70% 70%, rgba(184,137,61,.35), transparent 60%); filter:blur(20px); animation:plMesh 22s ease-in-out infinite alternate; }
.pl-page-hero::after{ content:""; position:absolute; inset:0; z-index:0; background-image:linear-gradient(to right, rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,.05) 1px, transparent 1px); background-size:48px 48px; mask-image:radial-gradient(ellipse at center, black 40%, transparent 80%); -webkit-mask-image:radial-gradient(ellipse at center, black 40%, transparent 80%); }
.pl-page-hero > *{ position:relative; z-index:1; }
.pl-page-hero h1{ color:#fff; background:var(--grad-text); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.pl-page-hero p{ color:rgba(255,255,255,.85); margin-top:.6rem; max-width:680px; margin-left:auto; margin-right:auto; }
.pl-content-wrap{ padding:4rem 0; }
.pl-content{ max-width:820px; margin:0 auto; background:var(--paper); border-radius:var(--r-xl); padding:3rem; box-shadow:var(--shadow); border:1px solid var(--line-light); }
.pl-content h2{ margin-top:2rem; padding-bottom:.5rem; border-bottom:2px solid var(--p-100); font-size:1.4rem; }
.pl-content h2:first-of-type{ margin-top:0; }
.pl-content h3{ color:var(--p-700); margin-top:1.4em; }
.pl-content p,.pl-content li{ color:var(--ink-soft); }
.pl-content ul{ padding-left:1.2rem; }
.pl-content li{ margin-bottom:.4rem; }

/* REVEAL */
.pl-reveal{ opacity:0; transform:translateY(28px) scale(.98); transition:opacity .9s ease, transform 1s cubic-bezier(.2,.7,.2,1), filter .9s ease; filter:blur(6px); }
.pl-reveal.in{ opacity:1; transform:none; filter:blur(0); }

/* PROGRESS */
.pl-progress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:9999; background:var(--grad); box-shadow:0 0 14px rgba(184,137,61,.7), 0 0 4px rgba(184,137,61,.5); transition:width .1s linear; }

/* Booking widget */
.parturi-booking-form,.pb-form{ background:var(--paper); border-radius:var(--r-lg); padding:2rem; border:1px solid var(--line-light); box-shadow:var(--shadow-sm); position:relative; overflow:hidden; }

/* Cursor */
.pl-cursor{ position:fixed; top:0; left:0; z-index:9998; pointer-events:none; width:36px; height:36px; border-radius:50%; border:1.5px solid rgba(184,137,61,.6); transform:translate(-50%,-50%); transition:transform .18s ease, width .18s ease, height .18s ease, border-color .18s ease, background .18s ease, opacity .2s; mix-blend-mode:exclusion; will-change:transform; }
.pl-cursor.is-hover{ width:60px; height:60px; border-color:rgba(184,137,61,.8); background:rgba(184,137,61,.1); }
.pl-cursor.is-hidden{ opacity:0; }
@media (hover:none){ .pl-cursor{ display:none; } }

/* RESPONSIVE */
@media (max-width: 980px){
    .pl-hero{ padding:4rem 0 3rem; }
    .pl-hero-grid{ grid-template-columns:1fr; gap:3rem; }
    .pl-hero-visual{ min-height:auto; max-width:480px; margin:0 auto; }
    .pl-hero-img img{ height:380px; }
    .pl-trust-grid{ grid-template-columns:repeat(2,1fr); gap:2rem; }
    .pl-services{ grid-template-columns:repeat(2,1fr); }
    .pl-features{ grid-template-columns:repeat(2,1fr); }
    .pl-testimonials{ grid-template-columns:1fr; }
    .pl-about-grid{ grid-template-columns:1fr; gap:2.5rem; }
    .pl-about-img img{ height:380px; }
    .pl-pricing{ grid-template-columns:1fr; padding:2rem; }
    .pl-info-grid{ grid-template-columns:1fr; }
    .pl-cta{ padding:3rem 2rem; }
    .pl-cta-inner{ grid-template-columns:1fr; }
    .pl-footer-grid{ grid-template-columns:1fr 1fr; gap:2rem; }
    .pl-section{ padding:5rem 0; }
}
@media (max-width: 720px){
    .pl-nav,.pl-header-cta .pl-hide-mobile{ display:none; }
    .pl-nav-toggle{ display:flex; }
    body.pl-menu-open .pl-mobile-menu{ display:flex; }
    .pl-services{ grid-template-columns:1fr; }
    .pl-features{ grid-template-columns:1fr; }
    .pl-trust-grid{ grid-template-columns:1fr 1fr; gap:1.5rem; }
    .pl-footer-grid{ grid-template-columns:1fr; }
    .pl-content{ padding:1.6rem; }
    .pl-hero h1{ font-size:2.4rem; }
    .pl-about-stats{ grid-template-columns:1fr; }
    .pl-about-stats div + div{ padding-left:0; border-left:0; padding-top:1rem; border-top:1px solid var(--line-light); margin-top:1rem; }
}
@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{ animation:none !important; transition:none !important; }
    .pl-reveal{ opacity:1; transform:none; filter:none; }
}

/* ===== BLOG ===== */
.pl-post-hero{ position:relative; overflow:hidden; padding:6.5rem 0 4.5rem; color:#fff; background:var(--bg); isolation:isolate; }
.pl-post-hero::before{ content:""; position:absolute; inset:-20%; z-index:-2; background:radial-gradient(40% 50% at 25% 30%, rgba(184,137,61,.5), transparent 60%), radial-gradient(40% 50% at 80% 70%, rgba(184,137,61,.35), transparent 60%); filter:blur(20px); animation:plMesh 22s ease-in-out infinite alternate; }
.pl-post-hero.has-image::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(135deg, rgba(11,8,20,.78), rgba(31,58,46,.7)), var(--pl-hero-img) center/cover no-repeat; filter:saturate(1.1); }
.pl-post-hero-overlay{ position:absolute; inset:auto -10% -50% auto; width:700px; height:700px; background:radial-gradient(circle, rgba(184,137,61,.35), transparent 60%); filter:blur(20px); pointer-events:none; }
.pl-post-hero-inner{ position:relative; z-index:1; max-width:880px; }
.pl-post-hero h1{ color:#fff; background:var(--grad-text); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; font-size:clamp(2.2rem,4.6vw,3.6rem); margin:.5rem 0 1rem; }
.pl-app .pl-post-hero .pl-post-lede,.pl-post-lede{ color:#fff !important; font-size:1.18rem; max-width:720px; margin:0 0 1.6rem; text-shadow:0 2px 16px rgba(11,8,20,.5); font-weight:500; }
.pl-breadcrumbs{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; font-size:.78rem; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,.7); margin-bottom:1.4rem; }
.pl-breadcrumbs a{ color:rgba(255,255,255,.85); }
.pl-breadcrumbs a:hover{ color:#fff; }
.pl-breadcrumbs span{ color:rgba(255,255,255,.4); }
.pl-post-meta{ display:flex; flex-wrap:wrap; gap:1.2rem; align-items:center; color:rgba(255,255,255,.85); font-size:.9rem; }
.pl-post-meta-item{ display:inline-flex; align-items:center; gap:.4rem; }
.pl-post-meta-cats{ display:inline-flex; gap:.4rem; flex-wrap:wrap; }
.pl-post-cat{ display:inline-block; padding:.28em .9em; border-radius:999px; background:rgba(255,255,255,.12); color:#fff !important; font-size:.74rem; letter-spacing:1.2px; text-transform:uppercase; font-weight:700; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.15); transition:background var(--t), transform var(--t); }
.pl-post-cat:hover{ background:var(--grad); border-color:transparent; transform:translateY(-1px); }

.pl-blog-wrap{ padding:4rem 0 5rem; background:var(--paper); }
.pl-blog-grid{ display:grid; grid-template-columns: minmax(0, 1fr) 340px; gap:3rem; align-items:stretch; }
.pl-blog-grid > .pl-post,.pl-blog-grid > .pl-search-results,.pl-blog-grid > .pl-list-col{ align-self:start; }
@media (max-width: 1024px){
    .pl-blog-grid{ grid-template-columns:1fr; gap:2rem; }
    .pl-blog-side-inner{ position:static; max-height:none; overflow:visible; padding-right:0; }
    .pl-blog-wrap{ padding:2.5rem 0 3rem; }
}
@media (max-width: 720px){
    .pl-post-hero{ padding:4rem 0 3rem; }
    .pl-post-hero h1{ font-size:2rem; line-height:1.2; }
    .pl-post-lede{ font-size:1rem; }
    .pl-post-meta{ gap:.6rem; font-size:.82rem; }
    .pl-blog-hero{ padding:4rem 0 3rem; }
    .pl-search-hero-form{ padding:.3rem; }
    .pl-search-hero-form input{ padding:.6rem .8rem; font-size:.95rem; }
}

.pl-post{ background:var(--paper); border-radius:var(--r-xl); padding:3rem; box-shadow:var(--shadow); border:1px solid var(--line-light); overflow:hidden; position:relative; }
.pl-post-figure{ margin:-3rem -3rem 2.4rem; overflow:hidden; position:relative; }
.pl-post-figure::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 60%, rgba(11,8,20,.18)); pointer-events:none; }
.pl-post-figure img{ width:100%; height:auto; max-height:520px; object-fit:cover; display:block; transition:transform 1s cubic-bezier(.2,.7,.2,1); }
.pl-post:hover .pl-post-figure img{ transform:scale(1.04); }
.pl-post-content{ max-width:none; margin:0; padding:0; box-shadow:none; border:0; background:transparent; }
.pl-post-content > h2,.pl-post-content > h3{ font-family:'Playfair Display',serif; }
.pl-post-content > h2{ margin-top:2rem; padding-bottom:.5rem; border-bottom:2px solid var(--p-100); font-size:1.6rem; }
.pl-post-content > h2:first-child{ margin-top:0; }
.pl-post-content > h3{ color:var(--p-700); margin-top:1.6em; font-size:1.2rem; }
.pl-post-content p{ font-size:1.05rem; line-height:1.85; }
.pl-post-content blockquote{ margin:1.8rem 0; padding:1.4rem 1.6rem 1.4rem 2.8rem; background:linear-gradient(135deg, var(--p-50) 0%, #fff 100%); border-left:4px solid var(--p-500); border-radius:0 var(--r-lg) var(--r-lg) 0; font-family:'Playfair Display',serif; font-style:italic; font-size:1.18rem; color:var(--ink); position:relative; box-shadow:0 8px 24px -8px rgba(184,137,61,.18); }
.pl-post-content blockquote::before{ content:"\201C"; position:absolute; top:-12px; left:.7rem; font-size:3.6rem; line-height:1; background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; font-family:'Playfair Display',serif; }
.pl-post-content img{ border-radius:var(--r-lg); box-shadow:var(--shadow); margin:1.5rem 0; }
.pl-post-content a{ color:var(--p-600); text-decoration:underline; text-decoration-color:var(--p-200); text-underline-offset:3px; }
.pl-post-content a:hover{ color:var(--p-500); text-decoration-color:var(--p-500); }
.pl-post-content code{ background:var(--p-50); color:var(--p-700); padding:.15em .45em; border-radius:6px; font-size:.92em; }
.pl-post-content pre{ background:var(--bg); color:#e8e2f4; padding:1.2rem; border-radius:var(--r); overflow:auto; border:1px solid var(--line); }
.pl-post-content ul,.pl-post-content ol{ padding-left:1.4rem; }
.pl-post-content li{ margin-bottom:.4rem; line-height:1.75; }
.pl-post-content li::marker{ color:var(--p-500); }

.pl-post-tags,.pl-post-share{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line-light); }
.pl-post-tags > div,.pl-share-buttons{ display:flex; flex-wrap:wrap; gap:.5rem; }
.pl-tag{ display:inline-flex; align-items:center; gap:.4em; padding:.45em 1em; border-radius:999px; background:var(--cream); color:var(--ink-soft) !important; font-size:.85rem; font-weight:600; border:1px solid var(--line-light); transition:all var(--t); }
.pl-tag span{ background:var(--grad); color:#fff; padding:0 .55em; border-radius:999px; font-size:.7rem; }
.pl-tag:hover{ background:var(--p-50); color:var(--p-700) !important; border-color:var(--p-200); transform:translateY(-2px); box-shadow:0 6px 16px -6px rgba(184,137,61,.4); }
.pl-tag-sm{ font-size:.78rem; padding:.32em .8em; }
.pl-share-btn{ width:42px; height:42px; border-radius:14px; background:var(--cream); color:var(--ink-soft) !important; display:grid; place-items:center; font-family:'Playfair Display',serif; font-weight:700; border:1px solid var(--line-light); transition:all var(--t); }
.pl-share-btn:hover{ background:var(--grad); color:#fff !important; border-color:transparent; transform:translateY(-3px); box-shadow:0 12px 28px -8px rgba(184,137,61,.5); }
.pl-post-nav{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2rem; padding-top:1.6rem; border-top:1px solid var(--line-light); }
.pl-post-nav-item{ display:flex; flex-direction:column; gap:.3rem; padding:1.2rem 1.4rem; border-radius:var(--r); background:var(--cream); border:1px solid var(--line-light); color:var(--ink) !important; transition:all var(--t); }
.pl-post-nav-item:hover{ background:#fff; border-color:var(--p-200); box-shadow:var(--shadow); transform:translateY(-3px); }
.pl-post-nav-item small{ color:var(--p-600); font-weight:700; font-size:.78rem; letter-spacing:1.5px; text-transform:uppercase; }
.pl-post-nav-item strong{ font-family:'Playfair Display',serif; font-size:1rem; line-height:1.3; }
.pl-post-nav-next{ text-align:right; }

.pl-related{ margin-top:3rem; padding-top:2rem; border-top:1px solid var(--line-light); }
.pl-related h2{ margin:.3rem 0 1.4rem; font-size:1.6rem; }
.pl-related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.pl-related-card{ display:flex; flex-direction:column; border-radius:var(--r); overflow:hidden; background:var(--cream); border:1px solid var(--line-light); color:var(--ink) !important; transition:all var(--t); }
.pl-related-card:hover{ transform:translateY(-6px); border-color:var(--p-200); box-shadow:var(--shadow); }
.pl-related-thumb{ display:block; height:140px; background:var(--grad-soft) center/cover no-repeat; }
.pl-related-body{ padding:1rem 1.1rem 1.2rem; display:flex; flex-direction:column; gap:.3rem; }
.pl-related-body small{ font-size:.72rem; letter-spacing:1.5px; text-transform:uppercase; color:var(--p-600); font-weight:700; }
.pl-related-body strong{ font-family:'Playfair Display',serif; font-size:1.04rem; line-height:1.3; color:var(--ink); }
.pl-related-more{ font-size:.85rem; color:var(--p-600); font-weight:600; margin-top:.4rem; }

@media (max-width: 720px){
    .pl-related-grid{ grid-template-columns:1fr; }
    .pl-post{ padding:1.6rem; }
    .pl-post-figure{ margin:-1.6rem -1.6rem 1.6rem; }
    .pl-post-nav{ grid-template-columns:1fr; }
    .pl-post-nav-next{ text-align:left; }
}

.pl-blog-side{ position:relative; }
.pl-blog-side-inner{ position:sticky; top:96px; display:grid; gap:1.2rem; max-height:calc(100vh - 110px); overflow:auto; padding-right:4px; scrollbar-width:thin; scrollbar-color:var(--p-200) transparent; }
.pl-blog-side-inner::-webkit-scrollbar{ width:6px; }
.pl-blog-side-inner::-webkit-scrollbar-thumb{ background:var(--p-200); border-radius:3px; }
.pl-side-card{ background:var(--paper); border:1px solid var(--line-light); border-radius:var(--r-lg); padding:1.5rem; box-shadow:var(--card-rest); transition:transform var(--t), box-shadow var(--t), border-color var(--t); }
.pl-side-card:hover{ border-color:var(--p-200); box-shadow:var(--shadow); }
.pl-side-card h4{ font-family:'Playfair Display',serif; font-size:1.18rem; margin:.2rem 0 1rem; color:var(--ink); }
.pl-search-form{ display:flex; gap:.5rem; align-items:center; background:var(--cream); border:1px solid var(--line-light); border-radius:999px; padding:.3rem .35rem .3rem 1rem; transition:border-color var(--t), box-shadow var(--t); }
.pl-search-form:focus-within{ border-color:var(--p-300); box-shadow:0 0 0 5px rgba(184,137,61,.12); background:#fff; }
.pl-search-form input{ flex:1; border:0; background:transparent; outline:none; font:inherit; color:var(--ink); padding:.55rem 0; font-size:.95rem; }
.pl-search-form button{ width:38px; height:38px; border-radius:50%; background:var(--grad); color:#fff; border:0; cursor:pointer; display:grid; place-items:center; box-shadow:0 6px 16px -4px rgba(184,137,61,.5); transition:transform var(--t-spring); }
.pl-search-form button:hover{ transform:scale(1.1) rotate(8deg); }
.pl-latest-list{ list-style:none; padding:0; margin:0; display:grid; gap:.7rem; }
.pl-latest-item{ display:grid; grid-template-columns:64px 1fr; gap:.8rem; align-items:center; padding:.5rem; border-radius:12px; color:var(--ink) !important; transition:background var(--t), transform var(--t); }
.pl-latest-item:hover{ background:var(--p-50); transform:translateX(3px); }
.pl-latest-thumb{ width:64px; height:64px; border-radius:12px; background:var(--grad-soft) center/cover no-repeat; display:grid; place-items:center; flex:0 0 64px; border:1px solid var(--p-100); overflow:hidden; box-shadow:0 4px 12px -4px rgba(184,137,61,.3); }
.pl-latest-mark{ font-family:'Playfair Display',serif; font-weight:800; font-size:1.7rem; background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.pl-latest-text{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.pl-latest-text strong{ font-family:'Playfair Display',serif; font-weight:600; font-size:.96rem; line-height:1.25; color:var(--ink); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pl-latest-text small{ font-size:.72rem; letter-spacing:1.5px; text-transform:uppercase; color:var(--p-600); font-weight:700; }
.pl-latest-empty{ color:var(--ink-mute); font-size:.92rem; }
.pl-tag-cloud{ display:flex; flex-wrap:wrap; gap:.4rem; }
.pl-side-cta{ background:var(--bg) !important; color:#fff; border:0 !important; position:relative; overflow:hidden; }
.pl-side-cta::before{ content:""; position:absolute; inset:-30%; background:radial-gradient(40% 50% at 30% 30%, rgba(184,137,61,.55), transparent 60%), radial-gradient(40% 50% at 70% 70%, rgba(184,137,61,.4), transparent 60%); filter:blur(20px); pointer-events:none; animation:plMesh 18s ease-in-out infinite alternate; }
.pl-side-cta-inner{ position:relative; z-index:1; }
.pl-side-cta h4{ color:#fff; }
.pl-side-cta p{ color:rgba(255,255,255,.85); font-size:.92rem; margin:0 0 1rem; }
.pl-side-cta .pl-btn{ width:100%; justify-content:center; }
.pl-side-call{ display:block; text-align:center; margin-top:.8rem; color:#fff !important; font-family:'Playfair Display',serif; font-weight:700; font-size:1.1rem; }
.pl-side-call:hover{ color:var(--gold-soft) !important; }

.pl-search-hero h1 em{ font-style:normal; background:var(--grad-text); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.pl-search-hero strong{ color:#fff; }
.pl-search-hero-form{ margin:1.6rem auto 0; max-width:640px; display:flex; align-items:center; gap:.4rem; background:rgba(255,255,255,.95); border-radius:999px; padding:.35rem .4rem; box-shadow:0 24px 60px -12px rgba(11,8,20,.5); color:var(--ink); border:1px solid rgba(255,255,255,.5); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.pl-search-hero-submit{ flex:0 0 46px; width:46px; height:46px; border:0; cursor:pointer; border-radius:50%; background:var(--grad); color:#fff; display:grid; place-items:center; box-shadow:0 8px 20px -4px rgba(184,137,61,.55); transition:transform var(--t-spring); }
.pl-search-hero-submit:hover{ transform:scale(1.1) rotate(8deg); }
.pl-search-hero-form input{ flex:1 1 auto; min-width:0; border:0; background:transparent; outline:none; padding:.7rem 1rem; font:inherit; color:var(--ink); font-size:1rem; }
.pl-search-results{ background:var(--paper); border-radius:var(--r-xl); padding:2rem; box-shadow:var(--shadow); border:1px solid var(--line-light); }
.pl-result-list{ list-style:none; padding:0; margin:0; display:grid; gap:1rem; }
.pl-result-link{ display:grid; grid-template-columns:200px 1fr; gap:1.4rem; padding:1rem; border-radius:var(--r-lg); background:var(--cream); border:1px solid var(--line-light); color:var(--ink) !important; transition:all var(--t); }
.pl-result-link:hover{ background:#fff; border-color:var(--p-200); box-shadow:var(--shadow); transform:translateX(6px); }
.pl-result-thumb{ height:140px; border-radius:var(--r); background:var(--grad-soft) center/cover no-repeat; display:grid; place-items:center; border:1px solid var(--p-100); }
.pl-result-mark{ font-family:'Playfair Display',serif; font-weight:800; font-size:2.6rem; background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.pl-result-body{ display:flex; flex-direction:column; gap:.4rem; min-width:0; }
.pl-result-meta{ font-size:.74rem; letter-spacing:2px; text-transform:uppercase; color:var(--ink-mute); font-weight:700; display:flex; gap:.5rem; flex-wrap:wrap; }
.pl-result-type{ color:var(--p-600); }
.pl-result-body h3{ margin:0; font-size:1.25rem; line-height:1.3; }
.pl-result-body p{ margin:0; color:var(--ink-soft); font-size:.95rem; }
.pl-result-more{ color:var(--p-600); font-weight:600; font-size:.9rem; margin-top:.2rem; }
@media (max-width: 720px){
    .pl-result-link{ grid-template-columns:1fr; }
    .pl-result-thumb{ height:180px; }
    .pl-search-hero-form{ flex-wrap:wrap; }
}
.pl-empty{ text-align:center; padding:3rem 1.5rem; }
.pl-empty-icon{ font-size:3.4rem; margin-bottom:.6rem; filter:drop-shadow(0 8px 18px rgba(184,137,61,.35)); }
.pl-empty h2{ margin:.4rem 0 .6rem; }
.pl-empty em{ color:var(--p-600); font-style:normal; }
.pl-empty p{ max-width:520px; margin:0 auto 1.4rem; color:var(--ink-soft); }
.pl-pagination{ display:flex; gap:.4rem; flex-wrap:wrap; justify-content:center; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line-light); }
.pl-pagination .page-numbers{ display:inline-grid; place-items:center; min-width:44px; height:44px; padding:0 .9rem; border-radius:12px; background:var(--cream); border:1px solid var(--line-light); color:var(--ink-soft); font-weight:700; transition:all var(--t); }
.pl-pagination .page-numbers:hover{ background:var(--p-50); color:var(--p-700); border-color:var(--p-200); transform:translateY(-2px); }
.pl-pagination .page-numbers.current{ background:var(--grad); color:#fff; border-color:transparent; box-shadow:0 8px 22px -6px rgba(184,137,61,.5); }
.pl-pagination .page-numbers.dots{ background:transparent; border:0; }

.pl-blog-hero{ background:var(--bg); text-align:center; padding:5.5rem 0 4.5rem; }
.pl-blog-hero p{ font-size:1.1rem; max-width:680px; margin-left:auto; margin-right:auto; }

.pl-list-col{ min-width:0; }
.pl-post-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1.4rem; }
@media (max-width: 1280px){ .pl-post-grid{ grid-template-columns:1fr; } }

.pl-post-card{ background:var(--paper); border:1px solid var(--line-light); border-radius:var(--r-lg); overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--card-rest); transition:transform var(--t), box-shadow var(--t), border-color var(--t); position:relative; }
.pl-post-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:var(--p-200); }
.pl-post-card-thumb{ display:block; height:240px; background:var(--grad-soft) center/cover no-repeat; position:relative; overflow:hidden; }
.pl-post-card-thumb::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 50%, rgba(11,8,20,.55) 100%); opacity:.8; transition:opacity var(--t); }
.pl-post-card:hover .pl-post-card-thumb::after{ opacity:1; }
.pl-post-card-mark{ position:absolute; inset:0; display:grid; place-items:center; font-family:'Playfair Display',serif; font-weight:800; font-size:3.4rem; background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.pl-post-card-cat{ position:absolute; top:14px; left:14px; z-index:1; background:rgba(255,255,255,.92); color:var(--p-700); font-size:.7rem; font-weight:800; letter-spacing:1.4px; text-transform:uppercase; padding:.45em 1em; border-radius:999px; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); box-shadow:var(--shadow-sm); border:1px solid rgba(255,255,255,.7); }
.pl-post-card-body{ padding:1.5rem 1.6rem 1.7rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.pl-post-card-meta{ display:flex; gap:1rem; flex-wrap:wrap; font-size:.78rem; letter-spacing:1.2px; text-transform:uppercase; color:var(--ink-mute); font-weight:700; }
.pl-post-card h3{ margin:0; font-size:1.3rem; line-height:1.3; font-family:'Playfair Display',serif; }
.pl-post-card h3 a{ color:var(--ink) !important; background-image:var(--grad); background-size:0 2px; background-repeat:no-repeat; background-position:0 100%; transition:background-size var(--t), color var(--t); }
.pl-post-card:hover h3 a{ color:var(--p-600) !important; background-size:100% 2px; }
.pl-post-card p{ margin:0; color:var(--ink-soft); font-size:.94rem; line-height:1.65; flex:1; }
.pl-post-card-link{ margin-top:.4rem; color:var(--p-600); font-weight:700; font-size:.92rem; transition:gap var(--t); display:inline-flex; align-items:center; gap:.3em; }
.pl-post-card:hover .pl-post-card-link{ gap:.7em; }

.pl-post-comments{ margin-top:2.5rem; padding-top:2rem; border-top:1px solid var(--line-light); }
.pl-post-comments .comment-list{ list-style:none; padding:0; margin:0 0 2rem; display:grid; gap:1rem; }
.pl-post-comments .comment-body{ background:var(--cream); border-radius:var(--r); padding:1rem 1.2rem; border:1px solid var(--line-light); }
.pl-post-comments input[type="text"],.pl-post-comments input[type="email"],.pl-post-comments input[type="url"],.pl-post-comments textarea{ width:100%; padding:.8rem 1rem; border-radius:12px; border:1px solid var(--line-light); background:#fff; font:inherit; transition:border-color var(--t), box-shadow var(--t); }
.pl-post-comments input:focus,.pl-post-comments textarea:focus{ outline:none; border-color:var(--p-300); box-shadow:0 0 0 5px rgba(184,137,61,.12); }
.pl-post-comments .submit{ background:var(--grad); color:#fff; border:0; padding:.85em 1.7em; border-radius:999px; font-weight:700; cursor:pointer; box-shadow:0 12px 32px -8px rgba(184,137,61,.5); transition:transform var(--t-spring); }
.pl-post-comments .submit:hover{ transform:translateY(-3px); }

/* ===== WHITE THEME OVERRIDES (cyan #4BFFFF + valkoinen vain) ===== */
.pl-app .pl-topbar{ background:#fff; color:var(--ink-soft); border-bottom:1px solid var(--line-light); }
.pl-app .pl-topbar a{ color:var(--ink); }
.pl-app .pl-topbar .pl-topbar-cta{ color:#fff; }

.pl-app .pl-hero,
.pl-app .pl-cta,
.pl-app .pl-page-hero,
.pl-app .pl-post-hero,
.pl-app .pl-blog-hero,
.pl-app .pl-footer,
.pl-app .pl-section.dark{ background:#fff !important; color:var(--ink) !important; }

.pl-app .pl-hero h1,.pl-app .pl-hero h2,.pl-app .pl-hero h3,
.pl-app .pl-cta h2,.pl-app .pl-cta h3,
.pl-app .pl-page-hero h1,
.pl-app .pl-post-hero h1,
.pl-app .pl-section.dark h2,.pl-app .pl-section.dark h3,
.pl-app .pl-footer h4{ color:var(--ink) !important; }

.pl-app .pl-hero p,
.pl-app .pl-hero-sub,
.pl-app .pl-hero-trust,
.pl-app .pl-cta p,
.pl-app .pl-page-hero p,
.pl-app .pl-post-hero .pl-post-lede,
.pl-app .pl-section.dark p,
.pl-app .pl-footer p,
.pl-app .pl-footer a,
.pl-app .pl-footer .pl-footer-tag,
.pl-app .pl-footer-bottom,
.pl-app .pl-blog-hero p{ color:var(--ink-soft) !important; }

.pl-app .pl-hero-trust strong,
.pl-app .pl-footer .pl-brand,
.pl-app .pl-footer .pl-brand-text small{ color:var(--ink) !important; }

/* Hero h1 gradient: cyan-only on white */
.pl-app .pl-hero h1,
.pl-app .pl-cta h2,
.pl-app .pl-page-hero h1,
.pl-app .pl-post-hero h1{
    background:none !important;
    color:var(--p-700) !important;
    -webkit-text-fill-color:initial !important;
}

/* Eyebrow & tags on white hero */
.pl-app .pl-hero-eyebrow{ background:rgba(184,137,61,.10); border-color:rgba(184,137,61,.35); color:var(--p-700); }
.pl-app .pl-hero-stars{ color:var(--p-500); }
.pl-app .pl-hero-img::after{ display:none; }
.pl-app .pl-hero::after{ display:none; }
.pl-app .pl-page-hero::after{ display:none; }
.pl-app .pl-post-hero::after{ display:none; }

/* Soften hero mesh on white so it does not overpower */
.pl-app .pl-hero::before,
.pl-app .pl-cta::before,
.pl-app .pl-page-hero::before,
.pl-app .pl-post-hero::before,
.pl-app .pl-side-cta::before{ opacity:.55; }

/* CTA card switches to light surface */
.pl-app .pl-cta{ border:1px solid var(--line-light); box-shadow:var(--shadow); }
.pl-app .pl-cta-phonecard{ background:var(--cream); border:1px solid var(--line-light); color:var(--ink); }
.pl-app .pl-cta-phonecard small{ color:var(--p-700); }
.pl-app .pl-cta-phonecard a{ color:var(--ink); }
.pl-app .pl-cta-phonecard a:hover{ color:var(--p-500); }

/* Side CTA (blog sidebar) */
.pl-app .pl-side-cta{ background:var(--cream) !important; color:var(--ink); }
.pl-app .pl-side-cta h4{ color:var(--ink); }
.pl-app .pl-side-cta p{ color:var(--ink-soft); }
.pl-app .pl-side-call{ color:var(--p-600) !important; }

/* Footer borders & links */
.pl-app .pl-footer{ border-top:1px solid var(--line-light); }
.pl-app .pl-footer-grid{ border-bottom-color:var(--line-light); }
.pl-app .pl-footer a:hover{ color:var(--p-500) !important; }

/* Hero floating cards remain white but ensure border subtle */
.pl-app .pl-hero-floating{ border:1px solid var(--line-light); }

/* Post hero overlay tinted gradient → cyan only */
.pl-app .pl-post-hero.has-image::after{ background:linear-gradient(135deg, rgba(255,255,255,.5), rgba(184,137,61,.35)), var(--pl-hero-img) center/cover no-repeat !important; }
.pl-app .pl-post-hero.has-image,
.pl-app .pl-post-hero.has-image h1,
.pl-app .pl-post-hero.has-image .pl-post-lede{ color:var(--ink) !important; }
