/**
 * JK PG Services Showcase
 *
 * Copyright © 2026 Jan Kaczmarek
 * All Rights Reserved.
 *
 * This software is proprietary.
 * Unauthorized copying, modification, distribution or resale
 * of this software, in whole or in part, is prohibited
 * without prior written permission from the copyright holder.
 */
.offer-section{
  position:relative;
  overflow:hidden;
  padding:120px 0 135px;
  background:#ffffff;
  color:#111;
  text-align:center;
}
.offer-section h2{
  font-family:'Lora',serif;
  font-style:italic;
  font-weight:500;
  font-size:clamp(42px,6vw,82px);
  line-height:1.05;
  margin:0 0 70px;
  color:#111;
}
.offer-carousel{position:relative;height:500px;max-width:1100px;margin:0 auto;perspective:1400px;}
.offer-cards{position:relative;height:100%;cursor:grab;user-select:none;}
.offer-card{position:absolute;top:0;left:50%;width:340px;min-height:440px;margin-left:-170px;padding:34px 30px;border-radius:26px;background:#fff;border:1px solid rgba(43,32,27,.16);box-shadow:0 30px 80px rgba(43,32,27,.16);text-align:left;transition:all .75s cubic-bezier(.22,1,.36,1);cursor:pointer;}
.offer-card span{font-family:'Montserrat',sans-serif;font-size:12px;letter-spacing:2px;opacity:.55;}
.offer-card h3{font-family:'Lora',serif;font-style:italic;font-weight:500;font-size:34px;line-height:1.05;margin:38px 0 22px;color:#111;}
.offer-card p{font-family:'Montserrat',sans-serif;font-size:15px;line-height:1.55;margin:0 0 16px;color:#2d2d2d;}
.offer-card strong{display:block;margin-top:24px;padding-top:20px;border-top:1px solid rgba(43,32,27,.18);font-family:'Montserrat',sans-serif;font-size:13px;letter-spacing:1px;color:#111;}
.offer-open{margin-top:22px;color:#2b201b;background:transparent;border:0;border-bottom:1px solid #2b201b;padding:0 0 3px;cursor:pointer;font-family:'Montserrat',sans-serif;font-size:14px;}
.offer-card.active{transform:translateX(0) translateZ(160px) rotateY(0deg) scale(1);opacity:1;z-index:5;}
.offer-card.next{transform:translateX(270px) translateZ(-90px) rotateY(-38deg) scale(.92);opacity:.72;z-index:4;}
.offer-card.next2{transform:translateX(500px) translateZ(-260px) rotateY(-62deg) scale(.82);opacity:.26;z-index:3;}
.offer-card.prev{transform:translateX(-270px) translateZ(-90px) rotateY(38deg) scale(.92);opacity:.72;z-index:4;}
.offer-card.prev2{transform:translateX(-500px) translateZ(-260px) rotateY(62deg) scale(.82);opacity:.26;z-index:3;}
.offer-nav{
    position:absolute;
    top:44%;
    z-index:20;

    width:46px;
    height:46px;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:0;
    margin:0;

    border-radius:50%;
    border:1px solid rgba(43,32,27,.25);
    background:rgba(255,255,255,.65);
    color:#2b201b;
    cursor:pointer;

    font-size:24px;
    line-height:1;
}
.offer-prev{left:3%;}.offer-next{right:3%;}

.service-modal{position:fixed;inset:0;z-index:99999;pointer-events:none;opacity:0;transition:opacity .35s ease;}
.service-modal.is-open{pointer-events:auto;opacity:1;}
.service-modal_overlay{position:absolute;inset:0;background:rgba(24,20,18,.68);backdrop-filter:blur(8px);}
.service-modal_box{position:relative;width:min(1120px,92vw);max-height:86vh;margin:7vh auto;background:#fff;border-radius:28px;box-shadow:0 40px 140px rgba(0,0,0,.32);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);overflow:hidden;transform:translateY(22px) scale(.98);opacity:0;transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .45s ease;}
.service-modal.is-open .service-modal_box{transform:translateY(0) scale(1);opacity:1;}
.service-modal_close{
    position:absolute;
    right:20px;
    top:18px;

    width:40px;
    height:40px;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:0;
    margin:0;

    z-index:4;
    border-radius:50%;
    border:1px solid rgba(0,0,0,.12);
    background:#fff;
    color:#111;
    cursor:pointer;
    font-size:20px;
    line-height:1;
}
.service-modal_left{padding:56px 58px 60px;overflow:auto;max-height:86vh;background:#fff;}
.service-modal_right{padding:56px 42px 60px;background:#fff;border-left:1px solid rgba(43,32,27,.12);overflow:auto;max-height:86vh;}
.service-kicker{display:block;margin-bottom:22px;font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:4px;text-transform:uppercase;color:#8b8178;}
.service-modal_left h2{font-family:'Lora',serif;font-style:italic;font-weight:500;color:#111;font-size:clamp(46px,5vw,76px);line-height:.98;margin:0 0 30px;}
.service-modal_right h3{font-family:'Lora',serif;font-style:italic;font-weight:500;color:#111;font-size:36px;line-height:1.05;margin:0 0 14px;}
.service-content{font-family:'Montserrat',sans-serif;color:#2d2d2d;font-size:15px;line-height:1.75;}
.service-content p{margin:0 0 18px;}
.service-content h4{font-family:'Lora',serif;font-style:italic;font-weight:500;color:#111;font-size:30px;line-height:1.1;margin:34px 0 18px;padding-top:26px;border-top:1px solid rgba(43,32,27,.14);}
.service-content ul{list-style:none;padding:0;margin:0 0 22px;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;}
.service-content li{position:relative;padding-left:22px;margin:0;}
.service-content li::before{content:'✓';position:absolute;left:0;top:0;color:#111;font-weight:600;}
.service-note{margin-top:24px;padding:20px 22px;border-radius:18px;background:#fafafa;border:1px solid rgba(43,32,27,.12);font-weight:600;color:#111;}
.booking-panel{display:flex;flex-direction:column;justify-content:center;min-height:100%;}
.booking-intro{font-family:'Montserrat',sans-serif;color:#444;font-size:14px;line-height:1.65;margin:0 0 28px;}
.booking-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 24px;}
.booking-detail{padding:18px 16px;border:1px solid rgba(43,32,27,.14);border-radius:16px;background:#fafafa;}
.booking-detail span{display:block;margin-bottom:7px;font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#8b8178;}
.booking-detail strong{display:block;font-family:'Montserrat',sans-serif;font-size:15px;font-weight:600;line-height:1.35;color:#111;}
.booking-button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:58px;padding:16px 22px;border:1px solid #2b201b;border-radius:999px;background:#2b201b;color:#fff!important;text-decoration:none;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:600;transition:background .25s ease,color .25s ease,transform .25s ease;}
.booking-button:hover{background:transparent;color:#2b201b!important;transform:translateY(-1px);}
.booking-button span{font-size:19px;line-height:1;}
.booking-note{margin:15px 6px 0;font-family:'Montserrat',sans-serif;font-size:11px;line-height:1.55;color:#777;}

.contact-panel[hidden],
.booking-panel[hidden]{
  display:none!important;
}

.contact-panel{
  min-height:100%;
}

.contact-panel h3{
  margin:0 0 14px;
  font-family:'Lora',serif;
  font-size:36px;
  font-style:italic;
  font-weight:500;
  line-height:1.05;
  color:#111;
}

.contact-intro{
  margin:0 0 24px;
  font-family:'Montserrat',sans-serif;
  font-size:14px;
  line-height:1.65;
  color:#444;
}

.contact-price-box{
  margin-bottom:24px;
  padding:18px;
  border:1px solid rgba(43,32,27,.14);
  border-radius:16px;
  background:#fafafa;
}

.contact-price-box span{
  display:block;
  margin-bottom:7px;
  font-family:'Montserrat',sans-serif;
  font-size:10px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:#8b8178;
}

.contact-price-box strong{
  display:block;
  font-family:'Montserrat',sans-serif;
  font-size:15px;
  font-weight:600;
  color:#111;
}

.cf7-holder input,
.cf7-holder textarea,
.cf7-holder select{
  width:100%!important;
  box-sizing:border-box!important;
  margin-bottom:10px!important;
  padding:13px 14px!important;
  border:1px solid rgba(43,32,27,.16)!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#111!important;
  font-family:'Montserrat',sans-serif!important;
  font-size:13px!important;
}

.cf7-holder textarea{
  min-height:135px!important;
  resize:vertical;
}

.cf7-holder input[type='submit'],
.cf7-holder button[type='submit']{
  width:100%!important;
  min-height:52px!important;
  padding:14px 22px!important;
  border:0!important;
  border-radius:999px!important;
  background:#2b201b!important;
  color:#fff!important;
  cursor:pointer!important;
  font-weight:600!important;
}

.cf7-holder label,
.cf7-holder p{
  font-family:'Montserrat',sans-serif!important;
  color:#333!important;
  font-size:13px!important;
}

body.service-modal-open{overflow:hidden;}
@media (max-width:900px){.service-modal_box{grid-template-columns:1fr;max-height:92vh;margin:4vh auto;}.service-modal_left,.service-modal_right{max-height:none;overflow:visible;padding:42px 28px;}.service-modal_box{overflow:auto;}.service-modal_right{border-left:0;border-top:1px solid rgba(43,32,27,.12);}.service-content ul{grid-template-columns:1fr;}}
@media (max-width:767px){.offer-section{padding:75px 10px 90px;}.offer-carousel{height:470px;}.offer-card{width:275px;margin-left:-137.5px;min-height:410px;padding:28px 24px;}.offer-card h3{font-size:28px;}.offer-card.next{transform:translateX(160px) translateZ(-90px) rotateY(-42deg) scale(.9);}.offer-card.prev{transform:translateX(-160px) translateZ(-90px) rotateY(42deg) scale(.9);}.offer-card.next2,.offer-card.prev2{opacity:0;}.offer-nav{display:none;}.service-modal_box{width:94vw;border-radius:22px;}.service-modal_left h2{font-size:42px;}.service-modal_right h3{font-size:30px;}.booking-details{grid-template-columns:1fr;}}
.jkpgss-wrapper .booking-button.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:auto}

.offer-card:focus-visible{outline:3px solid rgba(43,32,27,.42);outline-offset:5px;}
