/* Parturi Booking – frontend form
   Värit on synkronoitu Linda & co -teeman muuttujiin.
   Fallback-arvot pitävät widgetin yhtenäisenä myös ilman teemaa. */
.pb-wrap{
    max-width:900px;margin:0 auto;
    background:var(--paper,#fff);
    color:var(--ink,#15281f);
    border-radius:var(--r-lg,16px);padding:40px;
    box-shadow:var(--shadow-sm,0 20px 60px rgba(45,90,61,.12));
    border:1px solid var(--line-light,rgba(21,40,31,.10));
}
.pb-form h3{margin:0 0 18px;color:var(--p-600,#1f3a2e);font-family:'Playfair Display',Georgia,serif;}
.pb-step{margin-bottom:36px;}

.pb-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
.pb-cards--sm{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));}
.pb-card{cursor:pointer;position:relative;display:block;}
.pb-card input{position:absolute;opacity:0;pointer-events:none;}
.pb-card-body{
    border:2px solid var(--p-400,#4a7a5c);border-radius:10px;padding:18px;text-align:center;
    transition:all .25s ease;background:var(--paper,#fff);
}
.pb-card-body strong{display:block;color:var(--ink,#15281f);font-size:1.05rem;}
.pb-card-body span{color:var(--p-400,#4a7a5c);font-size:.85rem;display:block;margin-top:4px;}
.pb-card-body .pb-price{color:var(--p-500,#2d5a3d);font-weight:700;margin-top:8px;}
.pb-card:hover .pb-card-body{border-color:var(--gold,#4a7a5c);transform:translateY(-2px);}
.pb-card input:checked + .pb-card-body{
    border-color:var(--p-500,#2d5a3d);
    background:var(--grad,linear-gradient(135deg,#2d5a3d 0%, #2d5a3d 100%));
    color:#fff;
    box-shadow:0 10px 25px rgba(45,90,61,.3);
}
.pb-card input:checked + .pb-card-body strong,
.pb-card input:checked + .pb-card-body span,
.pb-card input:checked + .pb-card-body .pb-price{color:#fff;}

.pb-date{padding:14px;border:2px solid var(--p-400,#4a7a5c);border-radius:10px;font-size:1rem;width:100%;max-width:260px;background:var(--paper,#fff);color:var(--ink,#15281f);}
.pb-date:focus{border-color:var(--p-500,#2d5a3d);outline:none;}

.pb-slots{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px;min-height:50px;}
.pb-slot{
    padding:10px 16px;border:2px solid var(--p-400,#4a7a5c);border-radius:8px;background:var(--paper,#fff);
    cursor:pointer;font-weight:600;transition:all .2s ease;color:var(--ink,#15281f);
}
.pb-slot:hover:not(:disabled){border-color:var(--p-500,#2d5a3d);color:var(--p-500,#2d5a3d);}
.pb-slot.is-active{background:var(--grad,#2d5a3d);color:#fff;border-color:transparent;}
.pb-slot:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through;}
.pb-hint{color:var(--p-400,#4a7a5c);}

.pb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;}
.pb-grid input,.pb-grid textarea,.pb-grid select{
    padding:14px;border:2px solid var(--p-400,#4a7a5c);border-radius:10px;font-size:1rem;font-family:inherit;width:100%;
    background:var(--paper,#fff);color:var(--ink,#15281f);
}
.pb-grid input:focus,.pb-grid textarea:focus,.pb-grid select:focus{border-color:var(--p-500,#2d5a3d);outline:none;}
.pb-grid textarea{grid-column:1/-1;}
.pb-grid label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--p-500,#2d5a3d);font-weight:600;}

.pb-consent{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:.9rem;color:var(--p-500,#2d5a3d);}

.pb-summary{
    background:var(--p-50,#ecf3ee);border-left:4px solid var(--p-500,#2d5a3d);padding:18px 22px;border-radius:8px;margin-bottom:18px;display:none;
}
.pb-summary.is-visible{display:block;}
.pb-summary strong{color:var(--p-600,#1f3a2e);}

.pb-submit,.pb-cancel{
    padding:16px 34px;border:0;border-radius:8px;font-weight:700;text-transform:uppercase;letter-spacing:1px;
    font-size:14px;cursor:pointer;transition:all .25s ease;
}
.pb-submit{background:var(--grad,#2d5a3d);color:#fff;box-shadow:0 10px 25px rgba(45,90,61,.3);border-bottom:2px solid var(--gold,#4a7a5c);}
.pb-submit:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(45,90,61,.45);}
.pb-cancel{background:#fff;color:#c0392b;border:2px solid #c0392b;}
.pb-cancel:hover{background:#c0392b;color:#fff;}

.pb-message{margin-top:16px;padding:14px 18px;border-radius:8px;display:none;}
.pb-message.is-success{display:block;background:#e6f7ea;color:#1e7a3b;border-left:4px solid #1e7a3b;}
.pb-message.is-error{display:block;background:#fdecec;color:#b2261e;border-left:4px solid #b2261e;}

.pb-alert{padding:14px 18px;border-radius:8px;margin-bottom:18px;}
.pb-alert--warn{background:#fff4e0;color:#8a5a00;border-left:4px solid #c9a961;}
