:root{--font-display:'Source Serif 4',Georgia,serif;--font-body:'Montserrat',system-ui,sans-serif;}
* { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
  body {
    font-family: var(--font-body, 'Mulish', system-ui, sans-serif);
    font-weight: 400; font-size: 15px; line-height: 1.7; color: #5f6557;
    min-height: 100vh;
    background: #ffffff;
  }
  a { color: inherit; text-decoration: none; }
  ::selection { background: #6f7a5f; color: #f3f4ec; }
  *:focus { outline: none; }
  *:focus-visible { outline: 2px solid #6f7a5f; outline-offset: 3px; border-radius: 3px; }
  summary { list-style: none; cursor: pointer; }
  summary::-webkit-details-marker { display: none; }
  @media (max-width: 600px) {
    main { max-width: 100% !important; padding: 0 0 24px !important; }
    .wrap { max-width: 100% !important; }
    .card { border-radius: 0 !important; }
    .card-inner { padding: 28px 20px !important; }
    .herophoto { height: min(720px, 92vh) !important; }
    .doc-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .vside { display: none !important; }
  }

/* hover states (converted from builder style-hover) */
.hv1:hover{background:#6a5e5a}
.hv2:hover{background:#6a5e5a}
.hv3:hover{background:#6a5e5a}
.hv4:hover{background:#6a5e5a}
.hv5:hover{background:#6a5e5a}
.hv6:hover{background:#6a5e5a}
.hv7:hover{background:#887974;color:#f3f4ec}
.hv8:hover{background:#36392f;color:#ffffff}
.hv9:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv10:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv11:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv12:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv13:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv14:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv15:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv16:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv17:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv18:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv19:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv20:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv21:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}
.hv22:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(0,0,0,0.3);border-color:#6f7a5f}

#thumb-carousel{scrollbar-width:none;-ms-overflow-style:none;display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:2px 2px 4px;}
#thumb-carousel::-webkit-scrollbar{display:none;height:0;}
#thumb-carousel a:hover{border-color:#887974;}

/* ===== layout shell ===== */
.noise-overlay{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:0.04;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.page-main{position:relative;max-width:1080px;margin:0 auto;padding:44px 28px 24px;}
.wrap{display:flex;flex-direction:column;gap:0;max-width:600px;margin:0 auto;}
.card{position:relative;background:#ffffff;border-radius:18px;overflow:hidden;box-shadow:0 0 60px -34px rgba(45,48,38,0.45);}
.card-inner{position:relative;padding:34px 32px;scroll-margin-top:20px;}

/* ===== hero ===== */
.hero-wrap{margin:-34px -32px 26px;}
.site-nav{background:#ffffff;padding:22px 26px 18px;border-bottom:1px solid rgba(54,57,47,0.25);display:flex;justify-content:space-around;align-items:center;gap:10px;}
.nav-link{font-family:'Geist',Arial,sans-serif;font-weight:500;font-size:12px;letter-spacing:0.07em;text-transform:uppercase;color:#3a3a3a;text-decoration:none;}
.nav-cta{background:#887974;color:#f3f4ec;padding:10px 22px;border-radius:8px;font-weight:600;font-size:11px;letter-spacing:0.09em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background .25s;}
.hero-header{background:#ffffff;text-align:center;padding:44px 20px 40px;}
.hero-name{font-family:'Lora',Georgia,serif;font-weight:400;font-size:36px;letter-spacing:0.04em;text-transform:uppercase;color:#333333;line-height:1.08;margin:0;}
.hero-tagline{font-family:var(--font-body,'Montserrat',system-ui,sans-serif);font-weight:400;font-size:16px;letter-spacing:0.01em;color:#5c5b54;line-height:1.75;margin:22px auto 0;}
.hero-tagline em{font-style:italic;}
.hero-divider{display:block;width:54px;height:1px;background:#887974;margin:28px auto 0;}
.herophoto{width:100%;height:720px;overflow:hidden;background:#ffffff;border-bottom:1px solid rgba(54,57,47,0.13);position:relative;}
.hero-img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block;}

/* ===== section titles (shared by every major H2) ===== */
.section-title{text-align:center;font-family:'Lora',Georgia,serif;font-weight:400;font-size:36px;color:#36392f;}
.section-title--spaced{line-height:1.2;margin-top:80px;margin-bottom:40px;}
.section-title--anchor{scroll-margin-top:20px;}
.section-title--pricing{padding:32px 30px 6px;border-top:1px solid rgba(54,57,47,0.13);scroll-margin-top:20px;text-align: center;}
.section-title--contact{line-height:1.25;margin-bottom:6px;}

/* ===== "Запити" accordion ===== */
.req-accordion-list{display:flex;flex-direction:column;gap:24px;margin-bottom:36px;}
.req-summary{list-style:none;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(54,57,47,0.12);padding-bottom:9px;cursor:pointer;}
.req-summary--gap{margin-bottom:12px;}
.req-summary::-webkit-details-marker{display:none;}
.req-summary::marker{content:none;}
.req-acc[open] .req-chevron{transform:rotate(180deg);}
.req-number{font-family:'Geist',Arial,sans-serif;font-weight:600;font-size:12px;letter-spacing:0.08em;color:#887974;}
.req-title{font-family:'Source Serif 4',Georgia,serif;font-weight:normal;font-size:16px;text-transform:uppercase;letter-spacing:0.05em;color:#333333;margin:0;flex:1;}
.req-chevron{width:16px;height:16px;color:#8e8f95;flex-shrink:0;transition:transform .25s;}
.req-list{list-style:none;margin:0;display:flex;flex-direction:column;gap:8px;}
.req-item{display:flex;gap:10px;font-size:16px;font-weight:normal;line-height:1.5;color:#5f6557;}
.req-dash{flex-shrink:0;color:#887974;}

/* ===== "Метод" / "Освіта" text blocks ===== */
.text-block{display:flex;flex-direction:column;gap:21px;margin-bottom:36px;}
.text-block p{font-size:16px;line-height:1.7;color:#5f6557;}
.method-lead{text-transform:uppercase;letter-spacing:0.9px;}
.text-link{color:#887974;text-decoration:underline;text-underline-offset:2px;}
.method-photo{margin:0 -32px 36px;height:400px;overflow:hidden;background:#ffffff;}
.method-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block;}

/* ===== document carousel ===== */
.carousel-wrap{position:relative;}
.carousel-thumb{flex:0 0 108px;scroll-snap-align:start;display:block;border-radius:8px;overflow:hidden;border:1px solid rgba(54,57,47,0.14);background:#fff;text-decoration:none;}
.carousel-thumb-frame{display:block;width:108px;height:80px;overflow:hidden;position:relative;background:#f4f2ee;}
.carousel-thumb-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#969c8b;font-size:20px;}
.carousel-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,0.92);border:1px solid rgba(54,57,47,0.18);color:#333333;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px -4px rgba(0,0,0,0.25);}
.carousel-nav-btn--prev{left:2px;}
.carousel-nav-btn--next{right:2px;}
.thumb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.icon-14{width:14px;height:14px;}
.icon-16{width:16px;height:16px;}
.icon-22{width:22px;height:22px;}

/* ===== "Формат роботи" ===== */
#format{padding:0 30px 49px;scroll-margin-top:20px;}
.format-intro{font-size:16px;line-height:1.75;color:#565c4e;margin-bottom:22px;}
.format-list{display:flex;flex-direction:column;gap:16px;}
.format-item-title{font-family:'Geist',Arial,sans-serif;font-weight:600;font-size:14px;color:#333333;flex:1;}
.format-item-text{font-size:16px;line-height:1.75;color:#565c4e;margin-top:12px;}

/* ===== "Вартість" pricing cards ===== */
.price-card{padding:34px 30px;text-align:center;}
.price-card--divider{border-top:1px solid rgba(54,57,47,0.13);}
.price-step-num{width:34px;height:34px;border-radius:50%;border:1px solid #c9c9c9;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-family:var(--font-display,'Cormorant Garamond',serif);font-size:18px;color:#828c70;}
.price-step-title{font-family:var(--font-display,'Cormorant Garamond',serif);font-weight:500;font-size:24px;color:#36392f;margin-bottom:14px;}
.price-text{font-size:16px;line-height:1.6;color:#5f6557;margin-bottom:14px;max-width:330px;margin-left:auto;margin-right:auto;}
.price-text--mb10{margin-bottom:10px;}
.price-text--mb26{margin-bottom:26px;}
.price-meta{font-size:12.5px;color:#969c8b;margin-bottom:18px;}
.price-label{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:#969c8b;margin-bottom:4px;}
.price-value{font-family:var(--font-display,'Cormorant Garamond',serif);font-weight:500;font-size:30px;color:#36392f;}
.price-value--spaced{margin-bottom:22px;}
.price-split{display:flex;gap:0;max-width:440px;margin:0 auto 26px;}
.price-split-col{flex:1;padding:4px 20px;}
.price-split-col--divider{border-left:1px solid rgba(54,57,47,0.13);}
@media (max-width: 400px){
  .price-split{flex-direction:column;gap:22px;}
  .price-split-col--divider{border-left:none;border-top:1px solid rgba(54,57,47,0.13);padding-top:22px;}
}
.btn-primary{display:inline-block;background:#887974;color:#f3f4ec;padding:13px 40px;border-radius:10px;font-size:12px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;transition:background .25s;}

/* ===== contacts / footer ===== */
#contacts{padding:32px 30px;text-align:center;border-top:1px solid rgba(54,57,47,0.13);scroll-margin-top:20px;}
.contact-icons{display:flex;justify-content:center;gap:22px;}
.contact-icon-btn{width:52px;height:52px;border-radius:50%;border:1px solid #887974;color:#887974;display:flex;align-items:center;justify-content:center;transition:background .25s,color .25s;}
.contact-icon-btn svg{width:22px;height:22px;}
.contact-icon-btn:hover{background:#887974;color:#f3f4ec;}

/* ===== docs modal ===== */
.modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(45,38,32,0.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;}
.modal-panel{background:#ffffff;max-width:1000px;width:100%;border-radius:14px;padding:36px 40px 44px;box-shadow:0 40px 80px -20px rgba(0,0,0,0.5);}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;border-bottom:1px solid rgba(54,57,47,0.14);padding-bottom:20px;margin-bottom:24px;}
.modal-eyebrow{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:#969c8b;margin-bottom:6px;}
.modal-title{font-family:var(--font-display,'Cormorant Garamond',serif);font-weight:500;font-size:clamp(22px,2.6vw,28px);color:#36392f;}
.modal-close{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:transparent;border:1px solid rgba(54,57,47,0.18);color:#36392f;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;}
.doc-group{margin-bottom:28px;}
.doc-group-title{font-family:var(--font-display,'Cormorant Garamond',serif);font-size:16px;color:#828c70;margin-bottom:14px;display:flex;align-items:center;gap:12px;}
.doc-group-rule{flex:1;height:1px;background:rgba(54,57,47,0.14);}
.doc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.doc-card{display:block;background:#fff;border:1px solid rgba(54,57,47,0.14);border-radius:6px;overflow:hidden;text-decoration:none;color:inherit;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s;}
.doc-card-frame{display:block;position:relative;width:100%;aspect-ratio:4/3;background:#ffffff;overflow:hidden;border-bottom:1px solid rgba(54,57,47,0.14);}
.doc-card-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#969c8b;font-size:26px;}
.doc-card-caption{display:flex;flex-direction:column;gap:3px;padding:10px 12px 12px;}
.doc-card-title{font-family:var(--font-display,'Cormorant Garamond',serif);font-size:15px;font-weight:500;color:#36392f;line-height:1.3;}
.doc-card-subtitle{font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:#969c8b;}

/* ===== lightbox =====
   #docs-modal / #lightbox keep `display:none` inline in the HTML on purpose
   — app.js reads `docs.style.display === 'none'` as a string comparison to
   decide whether to release the body scroll lock, so that one property
   can't move into a stylesheet rule without breaking the open/close logic. */
.lightbox-overlay{position:fixed;inset:0;z-index:300;background:rgba(30,24,19,0.94);flex-direction:column;align-items:center;justify-content:center;padding:32px;}
.lb-close{position:absolute;top:24px;right:24px;width:44px;height:44px;border-radius:50%;background:transparent;border:1px solid rgba(255,255,255,0.25);color:rgba(255,255,255,0.85);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.lb-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;background:rgba(0,0,0,0.35);border:1px solid rgba(255,255,255,0.35);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;}
.lb-nav-btn--prev{left:16px;}
.lb-nav-btn--next{right:16px;}
.lb-stage{flex:1;display:flex;align-items:center;justify-content:center;width:100%;max-width:1000px;margin-bottom:24px;}
#lb-img{max-width:100%;max-height:calc(100vh - 200px);object-fit:contain;background:#ffffff;box-shadow:0 30px 60px -20px rgba(0,0,0,0.6);}
.lb-caption{text-align:center;color:rgba(255,255,255,0.85);display:flex;flex-direction:column;align-items:center;gap:8px;}
#lb-title{font-family:var(--font-display,'Cormorant Garamond',serif);font-weight:500;font-size:19px;color:#fff;}
#lb-meta{font-size:10px;letter-spacing:0.24em;text-transform:uppercase;color:rgba(255,255,255,0.55);}
.lb-footer{margin-top:14px;display:flex;gap:28px;align-items:center;}
#lb-counter{font-family:var(--font-display,'Cormorant Garamond',serif);color:rgba(255,255,255,0.7);font-size:14px;}
#lb-download{color:#fff;text-decoration:none;font-size:11px;letter-spacing:0.22em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,0.4);padding-bottom:4px;}

/* ===== booking choice modal ===== */
.booking-overlay{position:fixed;inset:0;z-index:250;background:rgba(45,38,32,0.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;animation:bookingFade .2s ease;}
.booking-sheet{position:relative;background:#ffffff;width:100%;max-width:360px;border-radius:16px;padding:38px 30px 30px;box-shadow:0 40px 80px -20px rgba(0,0,0,0.5);text-align:center;animation:bookingRise .28s ease;}
.booking-close{position:absolute;top:13px;right:13px;width:34px;height:34px;border-radius:50%;background:transparent;border:none;color:#969c8b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s;}
.booking-close:hover{color:#36392f;}
.booking-title{font-family:'Lora',Georgia,serif;font-weight:500;font-size:25px;color:#36392f;margin-bottom:8px;}
.booking-subtitle{font-size:14px;line-height:1.55;color:#7c8172;margin-bottom:24px;max-width:280px;margin-left:auto;margin-right:auto;}
.booking-options{display:flex;flex-direction:column;gap:12px;}
.booking-btn{display:flex;align-items:center;justify-content:center;gap:12px;padding:15px;border-radius:11px;border:1px solid rgba(54,57,47,0.18);font-family:'Geist',Arial,sans-serif;font-weight:600;font-size:13px;letter-spacing:0.08em;text-transform:uppercase;color:#36392f;background:#fff;transition:background .2s,border-color .2s,color .2s;}
.booking-btn svg{width:22px;height:22px;flex-shrink:0;}
.booking-btn:hover{background:#887974;border-color:#887974;color:#f3f4ec;}
@keyframes bookingFade{from{opacity:0}to{opacity:1}}
@keyframes bookingRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
