/* opiece.pl 1.4.4: shared page shell, compact forms and original cards. */

/* Keep the footer at the viewport edge on short pages, below long content. */
body { min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; }
body > #main.op-main { flex:1 0 auto; min-height:0; width:100%; }
body > #header, body > #footer { flex-shrink:0; width:100%; }
body > #footer { margin-top:auto; }

/* Both cookie decisions have the same visual prominence. */
.consent-bar .actions .op-btn {
  flex:1 1 auto;
  background:#0b2b63;
  color:#fff;
  border:1px solid #0b2b63;
  min-height:44px;
}
.consent-bar .actions .op-btn:hover { background:#16417d; }
.consent-bar .actions .op-btn:focus-visible { outline:3px solid #55a9ff; outline-offset:3px; }

/* Real white space below the final cards, before the navy contact section. */
#dlaczego.section.why { padding-bottom:56px; background:#fff; }
#dlaczego.section.why::after { content:none; }

/* The same field rhythm on the home page and every personal form. */
#kontakt .form-card { padding:22px; }
#kontakt .form-card .head {
  margin:-22px -22px 12px;
  padding:14px 22px;
}
.public-page #kontakt .form-card .head h1,
.public-page #kontakt .form-card .head h2 {
  margin:0;
  color:#eaf3ff;
  font-size:clamp(25px,2.2vw,30px);
  line-height:1.18;
}
#kontakt .form-card .head .sub {
  margin:4px 0 0;
  font-size:13px;
  line-height:1.5;
  color:#cfe2ff;
}
#booking-form { display:grid; gap:10px; margin:0; }
#kontakt .public-field { min-width:0; }
#kontakt .contact-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
#kontakt .public-field label,
#kontakt .booking-choice > label {
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 5px;
  font-size:14px;
  font-weight:600;
  line-height:1.4;
  color:#eaf3ff;
}
.field-icon { width:18px; height:18px; flex:0 0 18px; color:#7fe9df; }
#kontakt .optional { font-size:12px; }
#kontakt .control {
  display:block;
  width:100%;
  height:44px;
  min-height:44px;
  padding:9px 12px;
  font-size:16px;
  line-height:1.4;
}
#kontakt .control.select { padding-right:34px; }
#kontakt textarea.control { height:64px; min-height:64px; resize:vertical; }
#kontakt .booking-choice { border:0; border-radius:0; background:none; margin:0; overflow:visible; }
#kontakt .calendar-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  gap:10px;
  margin:0;
}
#kontakt .calendar-row .control,
#kontakt .calendar-button { height:44px; min-height:44px; box-sizing:border-box; }
#kontakt .calendar-row input { min-width:0; width:100%; }
#kontakt .calendar-button {
  display:flex;
  align-items:center;
  justify-content:center;
  max-width:none;
  padding:9px 16px;
  font-size:13px;
  line-height:1.2;
  border-radius:12px;
  white-space:nowrap;
}
#kontakt .slots { margin-top:8px; gap:7px; max-height:240px; overflow-y:auto; padding:3px; scrollbar-gutter:stable; }
#kontakt .slots:empty { display:none; }
#kontakt .slot { min-height:40px; min-width:65px; padding:8px 11px; }
#kontakt .slot-help { margin:6px 0 0; font-size:12px; line-height:1.5; }
#kontakt .form-disclosure { margin:0; font-size:11.5px; line-height:1.5; }
#kontakt .btn.submit { min-height:44px; padding:11px 20px; margin:0; justify-content:center; font-size:15px; }
#booking-result:empty { display:none; }
#kontakt .form-notice { margin:0; }

/* Top-layer dialogs never take space from the form, including offline errors. */
#kontakt .booking-dialog {
  width:min(460px,calc(100vw - 32px));
  max-height:calc(100dvh - 40px);
  margin:auto;
  padding:22px;
  overflow-y:auto;
  border:1px solid #9ac8e86b;
  border-radius:18px;
  background:linear-gradient(145deg,#163761,#0b2550);
  color:#eaf3ff;
  box-shadow:0 24px 70px #02152c66;
}
#kontakt .booking-dialog::backdrop { background:#071a3f8f; backdrop-filter:blur(3px); }
#kontakt .booking-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:16px; }
#kontakt .booking-dialog-head h2 { margin:0; font-size:22px; line-height:1.3; color:#eaf3ff; }
#kontakt .booking-dialog-close { width:44px; height:44px; flex:0 0 44px; padding:0; border:1px solid #ffffff40; border-radius:12px; background:#ffffff0a; color:#cfe2ff; font-size:18px; }
#kontakt .booking-dialog-close:hover { background:#ffffff1c; }
#kontakt .booking-dialog-sub { color:#a9e8e2; font-size:13px; margin:8px 0 16px; }
#kontakt .booking-dialog .slot { min-height:44px; }
#kontakt .booking-dialog .slot-help { margin:0; font-size:13px; }
#kontakt .booking-dialog #slot-info { margin-top:14px; }
#kontakt .booking-dialog #booking-result { margin-top:14px; }
#kontakt .calendar-button.has-slot { color:#c3fff3; border-color:#7fe9df; background:#7fe9df14; }

/* Complete adviser cards, with space reserved for a scrollbar when needed. */
#kontakt .advisors-card,
#kontakt .contacts-card { padding:20px; min-width:0; }
#kontakt .advisors-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
#kontakt .advisors-heading h3,
#kontakt .contacts-card h3 { margin:0; font-size:18px; line-height:1.3; }
#kontakt .advisor-count { display:inline-flex; align-items:center; justify-content:center; min-width:27px; height:27px; padding:0 8px; border-radius:99px; background:#7fe9df12; border:1px solid #7fe9df40; color:#9bf2e5; font-size:12px; font-weight:600; }
#kontakt .advisor-list { display:grid; grid-auto-rows:max-content; align-content:start; gap:14px; height:400px; max-height:400px; overflow-y:auto; scrollbar-gutter:stable; scroll-snap-type:y proximity; padding:4px; margin:-4px; }
#kontakt .advisor-list:focus-visible { outline:2px solid #7fe9df; outline-offset:6px; border-radius:6px; }
#kontakt .advisor-list .row { display:flex; align-items:flex-start; gap:12px; margin:0; scroll-snap-align:start; scroll-margin:4px; }
#kontakt .advisors-card .avatar { width:60px; height:60px; flex:0 0 60px; margin:0; }
#kontakt .advisor-copy { min-width:0; display:flex; flex-direction:column; gap:3px; }
#kontakt .advisor-copy b { margin:0; line-height:1.25; font-size:16px; overflow-wrap:anywhere; }
#kontakt .advisor-copy .title { margin:0; line-height:1.35; font-size:13px; }
#kontakt .advisor-copy .advisor-contact { display:block; margin:0; padding:0; font-size:12px; line-height:1.35; color:#cfe2ff; text-decoration:none; overflow-wrap:anywhere; }
#kontakt .advisor-copy .advisor-contact:hover { text-decoration:underline; }
#kontakt .advisor-copy .advisor-socials { margin:3px 0 0; }
#kontakt .contacts-card { margin-top:16px; }
#kontakt .contacts-card h3 { margin-bottom:10px; }
#kontakt .contacts-card p { margin:6px 0; font-size:13px; line-height:1.5; }
#kontakt .contacts-card .social-row { margin-top:8px; font-size:13px; }
.advisor-list,.slots,.login-people,.results-people,.selection-box { scrollbar-width:thin; scrollbar-color:#72bfcc #ffffff0a; }
.advisor-list::-webkit-scrollbar,.slots::-webkit-scrollbar,.login-people::-webkit-scrollbar,.results-people::-webkit-scrollbar { width:8px; height:8px; }
.advisor-list::-webkit-scrollbar-thumb,.slots::-webkit-scrollbar-thumb,.login-people::-webkit-scrollbar-thumb,.results-people::-webkit-scrollbar-thumb { background:#72bfcc; border-radius:99px; }
@media (min-width:1025px) {
  #kontakt .form-card { min-height:var(--contact-panel-height,668px); display:flex; flex-direction:column; }
  #kontakt .form-card .head { flex-shrink:0; }
  #booking-form { flex:1; grid-auto-rows:max-content; align-content:space-between; }
  #kontakt:not(.form-page-contact) { padding-top:44px; }
}

/* Both desktop columns contribute to the height; a larger team cannot be clipped. */
#kontakt.form-page-contact { display:grid; --form-stage-pad:clamp(16px,2vw,28px); }
.form-page-visual { grid-area:1 / 1; min-height:calc(100svh - var(--header-height,83px)); }
.form-page-info-layer { position:relative; inset:auto; grid-area:1 / 1; padding:var(--form-stage-pad) 0; }
.form-page-info-layer > .container { padding-top:0; }
@media (max-width:1024px) {
  #kontakt.form-page-contact { --form-stage-pad:24px; }
  .form-page-primary-grid,.form-page-info-grid { display:block; }
  .form-page-visual { min-height:0; padding-bottom:28px; }
  .form-page-info-layer { grid-area:2 / 1; position:relative; inset:auto; padding:0; margin:0; border-top:4px solid transparent; border-image:linear-gradient(90deg,#5ef0d5,#22d9d7,#3f7ed7) 1; background:linear-gradient(145deg,#081f47,#0b2b63); pointer-events:auto; }
  .form-page-info-layer > .container { padding-top:24px; padding-bottom:28px; }
  #kontakt .advisor-list { grid-template-columns:repeat(auto-fit,minmax(min(100%,275px),1fr)); gap:22px 20px; }
}
@media (max-width:640px) {
  #dlaczego.section.why { padding-bottom:32px; }
  #kontakt .form-card,#kontakt.form-page-contact .form-card { padding:20px; }
  #kontakt .form-card .head,#kontakt.form-page-contact .form-card .head { margin:-20px -20px 12px; padding:14px 20px; }
  #kontakt .contact-fields { grid-template-columns:minmax(0,1fr); gap:10px; }
  #kontakt .calendar-row { gap:8px; }
  #kontakt .calendar-button { padding:9px 10px; font-size:12px; }
  #kontakt .advisor-list { grid-template-columns:minmax(0,1fr); }
  #kontakt .advisors-card .avatar { width:58px; height:58px; flex-basis:58px; }
}

/* Privacy, RODO and cookies: original white cards, navy titles and gradient rule. */
.legal-document { color:#0b2b63; background:#fff; min-height:70vh; }
.legal-document .container { width:100%; max-width:1200px; padding-left:24px; padding-right:24px; }
.legal-document .legal-intro { padding:64px 0 0; }
.legal-document h1 { font-size:clamp(28px,4vw,40px); font-weight:800; line-height:1.2; margin:0 0 10px; color:#0b2b63; }
.legal-document .legal-intro > .container > .sub { font-size:16px; color:#667085; }
.legal-document .legal-summary { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:26px; gap:22px; }
.legal-document .legal-summary .card { padding:24px; }
.legal-document .legal-summary .ico { margin-bottom:16px; }
.legal-document .legal-summary h2 { font-size:19px; line-height:1.3; margin:0 0 8px; color:#0b2b63; }
.legal-document .legal-summary p { margin:0; font-size:14px; line-height:1.7; color:#667085; }
.legal-document .legal-content { padding:32px 0 64px; }
.legal-document .legal-sections { display:grid; gap:22px; }
.legal-document .legal-block { padding:28px; }
.legal-document .legal-block h2 { margin:0 0 12px; color:#0b2b63; font-size:22px; line-height:1.3; }
.legal-document .legal-block p,.legal-document .legal-block li { color:#667085; font-size:14px; line-height:1.8; }
.legal-document .legal-block p { margin:0 0 12px; }
.legal-document .legal-block p:last-child { margin-bottom:0; }
.legal-document a { color:#0057a3; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.legal-document .card { min-width:0; }
.legal-document .card:hover { transform:none; }
.legal-document .legal-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:11px 20px; background:linear-gradient(135deg,#0057a3,#003e7e); color:#fff; border:0; border-radius:99px; font:inherit; font-size:14px; font-weight:600; text-decoration:none; }
.legal-document .legal-version { font-size:12px; margin:22px 0 0; color:#667085; }
@media(max-width:760px) {
  .legal-document .container { padding-inline:20px; }
  .legal-document .legal-intro { padding-top:36px; }
  .legal-document .legal-summary { grid-template-columns:minmax(0,1fr); gap:16px; }
  .legal-document .legal-summary .card { padding:20px; }
  .legal-document .legal-summary .ico { float:left; margin:0 14px 8px 0; }
  .legal-document .legal-summary h2 { margin-top:0; }
  .legal-document .legal-summary p { clear:both; padding-top:6px; }
  .legal-document .legal-content { padding:22px 0 40px; }
  .legal-document .legal-block { padding:22px 20px; }
  .legal-document .legal-block h2 { font-size:20px; }
}

/* Panel: growing teams and long names/addresses stay within their cards. */
.panel-page .grid-ui > * { min-width:0; }
.panel-page .team-card h2,.panel-page .team-card p,.panel-page .person-row h3,
.panel-page .lead-card a,.panel-page .login-person strong { overflow-wrap:anywhere; }
.panel-page .team-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-bottom:20px; }
.panel-page .team-toolbar .field { margin:0; flex:1 1 250px; max-width:480px; }
.panel-page .team-card .team-emails { display:grid; gap:8px; margin:0; }
.panel-page .team-emails small { display:block; color:#b8cee8; font-size:11px; }
.panel-page .team-card .team-actions { display:grid; gap:8px; margin-top:auto; }
.panel-page .people-search { max-width:440px; margin:0 auto 16px; }
.panel-page .login-people { align-items:stretch; padding:4px; grid-auto-rows:max-content; }
.panel-page .login-people.is-many { max-height:410px; overflow-y:auto; scrollbar-gutter:stable; }
.panel-page .login-person { min-width:0; }
.panel-page .people-empty { text-align:center; padding:14px; color:#cfe2ff; font-size:13px; }
.panel-page .results-people { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); gap:14px; max-height:550px; overflow-y:auto; padding:3px; scrollbar-gutter:stable; }
.panel-page .results-people .person-row { margin:0; padding:14px; border:1px solid #ffffff26; border-radius:12px; gap:12px; min-width:0; }
.panel-page .person-row > div { min-width:0; }
.panel-page .results-people .portrait { width:44px; height:44px; }
.panel-page .selection-box .check span { min-width:0; overflow-wrap:anywhere; }
.panel-page .selection-box .check input { flex-shrink:0; }
.panel-page .integration-result { background:#ffffff0a; color:#eaf3ff; border:1px solid #ffffff26; }
.panel-page .mail-preview h1,.panel-page .mail-preview h2,.panel-page .mail-preview h3 { color:#0b2b63; }
.panel-page .mail-preview a { color:#075da8; }
@media(max-width:640px) {
  .panel-page .login-people.is-many { max-height:370px; }
  .panel-page .team-toolbar { align-items:stretch; }
  .panel-page .team-toolbar .field { max-width:none; flex-basis:100%; }
  .panel-page .results-people { max-height:none; overflow:visible; }
}
