/* Schengen 90/180 day calculator: /tools/schengen-calculator
   Reuses the calculator family's tokens and generic card, tile, tab, callout
   and support patterns from country-tools.css. Everything here is namespaced
   to this page, so no tax calculator style is touched. */

.schengen-calculator-page{background:var(--color-surface)}
.schengen-calculator-page .marketing-shell.country-breadcrumbs{padding-top:18px}
.schengen-calculator-page .country-breadcrumbs ol{font-size:14px}

/* The shared .calc-* classes set an explicit display, which overrides the
   user-agent rule for [hidden]. Without this, a hidden section would still
   occupy its grid column as an empty card. */
.schengen-calculator-page [hidden]{display:none!important}

/* Hero ------------------------------------------------------------------------ */
.schengen-hero{position:relative;overflow:hidden;padding-block:12px 40px;background:radial-gradient(circle at 83% 30%,rgba(219,242,227,.72),transparent 38%),var(--color-surface)}
.schengen-hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(340px,.94fr);gap:42px;align-items:center}
.schengen-hero .site-section-eyebrow{margin:0 0 14px}
.schengen-hero__title{max-width:36ch;margin:0;font-family:var(--font-display);font-size:clamp(38px,4.1vw,52px);line-height:1.06;letter-spacing:-.045em}
.schengen-hero__lede{max-width:60ch;margin:16px 0 0;color:var(--color-text-muted);font-size:16px;line-height:1.6}

.schengen-page svg{display:block}
.schengen-page svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.schengen-hero .calc-chips i svg{width:15px;height:15px}
.schengen-form .calc-card__icon svg,.schengen-results .calc-card__icon svg{width:21px;height:21px}
.schengen-form .calc-form__secure svg{width:16px;height:16px}
.schengen-results .calc-results__pdf svg{width:16px;height:16px}
.schengen-results .calc-callout i svg{width:20px;height:20px}
.schengen-results .calc-row dt i svg{width:18px;height:18px}
.schengen-results .calc-estimate-note i svg{width:17px;height:17px}
.schengen-status i svg{width:17px;height:17px}

.schengen-hero__card{position:relative;display:grid;gap:13px;overflow:hidden;padding:23px 26px;border:1px solid #dce9df;border-radius:22px;background:linear-gradient(145deg,#fff 9%,#eef7f0 100%);box-shadow:0 20px 50px rgba(24,63,48,.075)}
.schengen-hero__card::before{position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,#275f46,#80b882);content:""}
.schengen-hero__card h2{margin:0;font-family:var(--font-display);font-size:19px;letter-spacing:-.02em}
.schengen-hero__formula{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:0;padding-bottom:16px;border-bottom:1px solid #dfe9e2}
.schengen-hero__formula b{font-family:var(--font-display);font-size:clamp(34px,3.4vw,42px);line-height:1;letter-spacing:-.04em;color:var(--color-action)}
.schengen-hero__formula span{color:var(--color-text-muted);font-size:14px}
.schengen-hero__rules{display:grid;gap:9px;margin:0;padding:0;list-style:none;font-size:14px;line-height:1.55}
.schengen-hero__rules li{display:flex;gap:10px}
.schengen-hero__rules li::before{flex:0 0 6px;width:6px;height:6px;margin-top:7px;border-radius:50%;background:var(--color-action);content:""}
.schengen-hero__scope{margin:0;padding-top:14px;border-top:1px solid #dfe9e2;color:var(--color-text-muted);font-size:13px;line-height:1.6}
.schengen-hero__source{display:block;margin-top:8px;color:var(--color-action);font-size:13px;font-weight:700;text-decoration:none}
.schengen-hero__source:hover{text-decoration:underline}
.schengen-hero__checked{margin:0;color:var(--color-text-muted);font-size:12px}

/* Workbench ------------------------------------------------------------------- */
.schengen-workbench{padding-block:38px 76px;background:radial-gradient(circle at 94% 2%,rgba(215,239,223,.68),transparent 34%),linear-gradient(135deg,#f8faf8,#f3f8f4)}
.schengen-workbench__grid{display:grid;grid-template-columns:minmax(0,500px) minmax(0,1fr);gap:24px;align-items:start}
.schengen-form{position:relative;display:grid;gap:22px;align-content:start;overflow:hidden;border-radius:22px;box-shadow:0 22px 58px rgba(24,63,48,.075)}
.schengen-form::before{position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,#265d46,#8aba88);content:""}
.schengen-form .ui-input,.schengen-form .ui-select{min-height:50px;border-color:#d5dfd8;background:#fff}
.schengen-form .ui-input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.schengen-form .calc-card__icon,.schengen-results .calc-card__icon{width:44px;height:44px;border-radius:13px;background:#eaf4ec;color:#245f45}
.schengen-form .calc-card__title,.schengen-results .calc-card__title{font-size:22px}
.schengen-form .ui-button--ghost{min-height:40px;padding-inline:14px;font-size:13.5px;text-decoration:underline;text-underline-offset:3px}

/* Mode switch */
.schengen-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;border:0}
.schengen-mode__option{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:start;min-height:106px;padding:15px 13px;border:1px solid #dbe5de;border-radius:14px;background:var(--color-surface);cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.schengen-mode__option:hover{border-color:var(--color-action)}
.schengen-mode__option input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--color-action)}
.schengen-mode__option b{display:block;font-size:14px}
.schengen-mode__option small{display:block;margin-top:3px;color:var(--color-text-muted);font-size:12.5px;line-height:1.45}
.schengen-mode__option:has(input:checked){border-color:#3c795b;background:#eff8f1;box-shadow:inset 0 0 0 1px #3c795b,0 6px 16px rgba(0,102,74,.07)}
.schengen-mode__option:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}

.schengen-datelabel{display:grid;gap:8px;font-size:13.5px;font-weight:700}
.schengen-datelabel>span{color:var(--color-text)}
.schengen-hint{margin:0;color:var(--color-text-muted);font-size:12.5px;font-weight:400;line-height:1.5}

/* Trip rows */
.schengen-trips{display:grid;gap:12px;padding-top:15px;border-top:1px solid #e5ece7}
.schengen-trips__title{margin:0;font-size:16px}
.schengen-trips__rows{display:grid;gap:12px}
.schengen-trip{display:grid;gap:12px;padding:17px;border:1px solid #dce7df;border-radius:14px;background:#fbfdfc;box-shadow:0 4px 16px rgba(24,63,48,.035)}
.schengen-trip__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.schengen-trip__ongoing{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600}
.schengen-trip__ongoing input{width:18px;height:18px;accent-color:var(--color-action)}
.schengen-trip__error{margin:0;padding:9px 11px;border:1px solid #e3b7b7;border-radius:8px;background:#fdf3f3;color:#8a2530;font-size:12.5px;font-weight:600;line-height:1.45}
.schengen-trip:has(.schengen-trip__error:not([hidden])){border:1px solid #e3b7b7;border-style:solid;background:#fdf7f7}
.schengen-trip__remove{justify-self:start}

.schengen-form__actions{display:grid;gap:8px}
.schengen-form__submit{display:inline-flex;min-height:54px;align-items:center;justify-content:center;gap:10px;border-radius:11px;font-size:15.5px;box-shadow:0 9px 20px rgba(25,100,67,.16)}
.schengen-form__add{justify-self:start}
.schengen-form__status{margin:0;padding:11px 13px;border:1px solid #d8e5de;border-radius:10px;background:#f2f8f4;color:#1f4a38;font-size:13px;line-height:1.5}

/* Results --------------------------------------------------------------------- */
.schengen-results{display:grid;gap:20px;align-content:start;border-radius:22px;box-shadow:0 22px 58px rgba(24,63,48,.075)}
.schengen-results .calc-results__pdf{display:inline-flex;align-items:center;gap:8px;min-height:42px;font-size:14px;white-space:nowrap}
.schengen-results .calc-tiles{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:12px}
.schengen-results .calc-tile{align-content:start;min-height:145px;padding:21px;border-radius:15px}
.schengen-results .calc-tile:first-child{border-color:#bedbc6;background:linear-gradient(135deg,#e7f4ea,#f7fcf8)}
.schengen-results .calc-tile:first-child strong{color:#165d3f;font-size:clamp(36px,3.3vw,48px);line-height:1.1}
.schengen-results .calc-tile:nth-child(2) strong{font-size:clamp(28px,2.4vw,34px);line-height:1.2}
.schengen-results .calc-tile__state{min-height:23px;height:auto;padding:2px 9px}

/* Idle result preview gives the empty desktop column a clear purpose. */
.schengen-preview{position:relative;display:grid;gap:28px;overflow:hidden;min-height:490px;padding:32px;border:1px solid #dce7df;border-radius:22px;background:radial-gradient(circle at 85% 5%,#e3f2e6,transparent 38%),#fff;box-shadow:0 22px 58px rgba(24,63,48,.06)}
.schengen-workbench__grid:has(.schengen-results:not([hidden])) .schengen-preview{display:none}
.schengen-preview__top{display:flex;align-items:center;justify-content:space-between;color:#2d7051}
.schengen-preview__top span{padding:7px 12px;border:1px solid #cfe5d4;border-radius:99px;background:#f0f8f1;font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.08em}
.schengen-preview__top i{display:grid;width:48px;height:48px;place-items:center;border:1px solid #d7e9da;border-radius:15px;background:#eff8f0}
.schengen-preview__top svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.schengen-preview__copy{max-width:47ch}
.schengen-preview__copy h2{margin:0;font-family:var(--font-display);font-size:clamp(25px,2.4vw,32px);line-height:1.15;letter-spacing:-.035em}
.schengen-preview__copy p{margin:10px 0 0;color:var(--color-text-muted);font-size:15px;line-height:1.65}
.schengen-preview__sample{display:grid;gap:15px;align-content:start;padding:24px;border:1px solid #e5ece7;border-radius:16px;background:linear-gradient(145deg,#fbfdfb,#f4f8f5)}
.schengen-preview__sample-head,.schengen-preview__sample-figure,.schengen-preview__sample-lines{display:flex;gap:12px}
.schengen-preview__sample span,.schengen-preview__sample-rule{display:block;border-radius:99px;background:#e3ebe5}
.schengen-preview__sample-head span:first-child{width:34%;height:12px}.schengen-preview__sample-head span:last-child{width:19%;height:12px}
.schengen-preview__sample-figure{align-items:end;margin:6px 0 0}.schengen-preview__sample-figure span:first-child{width:37%;height:50px;background:#cbe5d2}.schengen-preview__sample-figure span:last-child{width:24%;height:30px}
.schengen-preview__sample-rule{height:1px;border-radius:0}.schengen-preview__sample-lines{display:grid;gap:9px}.schengen-preview__sample-lines span{height:10px}.schengen-preview__sample-lines span:nth-child(2){width:85%}.schengen-preview__sample-lines span:nth-child(3){width:63%}

.schengen-status{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 14px;align-items:start;padding:16px 18px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface-soft)}
.schengen-status i{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--color-surface)}
.schengen-status svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.schengen-status strong{display:block;font-size:14.5px}
.schengen-status p{margin:4px 0 0;color:var(--color-text-muted);font-size:13.5px;line-height:1.6}
.schengen-status.is-ok{border-color:#cfe6d7;background:linear-gradient(110deg,#f0f9f3,#e9f5ee)}
.schengen-status.is-ok i,.schengen-status.is-ok svg{color:var(--color-action)}
.schengen-status.is-full{border-color:#f0dcb4;background:#fdf7e9}
.schengen-status.is-full i,.schengen-status.is-full svg{color:#96650c}
.schengen-status.is-over,.schengen-status.is-blocked{border-color:#e8c3c3;background:#fdf4f4}
.schengen-status.is-over i,.schengen-status.is-over svg,.schengen-status.is-blocked i,.schengen-status.is-blocked svg{color:#98303a}

/* Timeline strip */
.schengen-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px}
.schengen-strip__day{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;align-items:center;padding:9px 10px;border:1px solid #dfe9e2;border-radius:9px;background:var(--color-surface);font-size:12px}
.schengen-strip__day b{grid-row:1/3;font-size:13px;line-height:1;color:var(--neutral-400)}
.schengen-strip__day span{color:var(--color-text-muted);overflow-wrap:anywhere}
.schengen-strip__day em{font-style:normal;font-weight:700}
.schengen-strip__day.is-schengen{border-color:#bcdccb;background:#f2faf5}
.schengen-strip__day.is-schengen b{color:var(--color-action)}
.schengen-strip__day.is-over{border-color:#e8c3c3;background:#fdf4f4}
.schengen-strip__day.is-over b{color:#98303a}

.schengen-table{width:100%;border-collapse:collapse;font-size:13px}
.schengen-table caption{text-align:left}
.schengen-table th,.schengen-table td{padding:11px 12px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}
.schengen-table thead th{background:var(--color-surface-soft);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.schengen-table tbody th{font-weight:600}
.schengen-table tbody tr:last-child th,.schengen-table tbody tr:last-child td{border-bottom:0}
.schengen-table tr.is-over th,.schengen-table tr.is-over td{color:#98303a;font-weight:700}

.schengen-panel-note{margin:0 0 16px;color:var(--color-text-muted);font-size:13.5px;line-height:1.6}
.schengen-copy-note{margin:0;color:var(--color-text-muted);font-size:12.5px;line-height:1.55}
.schengen-copy-note:not([hidden])+.schengen-copy-note{margin-top:6px}
.schengen-actions{flex-wrap:wrap}

.schengen-steps{display:grid;gap:10px;margin:0;padding-left:22px;font-size:14px;line-height:1.65}
.schengen-limits{display:grid;gap:11px;margin:0;padding:0;list-style:none;font-size:14px;line-height:1.65}
.schengen-limits li{display:flex;gap:11px;padding-bottom:11px;border-bottom:1px solid var(--color-border)}
.schengen-limits li:last-child{padding-bottom:0;border-bottom:0}
.schengen-limits li::before{flex:0 0 6px;width:6px;height:6px;margin-top:8px;border-radius:50%;background:#96650c;content:""}

/* Responsive ------------------------------------------------------------------ */
@media(max-width:1180px){
  .schengen-workbench__grid{grid-template-columns:1fr}
  .schengen-preview{display:none}
}
@media(max-width:1020px){
  .schengen-hero__grid{grid-template-columns:1fr;gap:28px}
}
@media(max-width:700px){
  .schengen-hero{padding-block:12px 32px}
  .schengen-hero__title{font-size:36px}
  .schengen-hero__card{padding:20px}
  .schengen-workbench{padding-block:28px 52px}
  .schengen-form,.schengen-results{padding:20px;border-radius:16px}
  .schengen-mode{grid-template-columns:1fr}
  .schengen-mode__option{min-height:0}
  .schengen-trip__fields{grid-template-columns:1fr}
  .schengen-results .calc-results__head{grid-template-columns:auto minmax(0,1fr);row-gap:14px}
  .schengen-results .calc-results__pdf{grid-column:1/-1;justify-self:start}
  .schengen-results .calc-tiles{grid-template-columns:1fr}
}

/* Print: one continuous document, every panel included ------------------------ */
@media print{
  .schengen-calculator-page .site-header,.schengen-calculator-page .site-footer,.schengen-calculator-page .schengen-hero,.schengen-calculator-page .schengen-form,.schengen-calculator-page .schengen-preview,.schengen-calculator-page .calc-tabs,.schengen-calculator-page .calc-actions,.schengen-calculator-page .calc-support,.schengen-calculator-page [data-schengen-print]{display:none!important}
  .schengen-calculator-page .schengen-workbench{padding:0;background:none}
  .schengen-calculator-page .schengen-workbench__grid{display:block}
  .schengen-calculator-page .calc-results{box-shadow:none}
  .schengen-calculator-page [role="tabpanel"]{display:grid!important;break-inside:avoid-page}
  .schengen-calculator-page [data-print-visible]{display:grid!important}
  .schengen-calculator-page .schengen-strip__day{break-inside:avoid}
}

@media(prefers-reduced-motion:reduce){
  .schengen-mode__option{transition:none}
}
