/* ===== Application page ===== */
.apply{background:var(--paper);padding-bottom:80px}
.apply-form{max-width:900px;padding-top:48px}
.apply h1{font-size:clamp(2.2rem,4.6vw,3.4rem);outline:none}
.apply .lead{max-width:none}


/* trail */
.trail-wrap{
position:sticky;top:var(--head-h);z-index:5;background:var(--cream);border-bottom:1px solid var(--line)}
.trail{list-style:none;display:flex;gap:6px;margin:0 auto;padding:12px 0;overflow-x:auto;max-width:1100px;scrollbar-width:none}
.trail li{flex:1 0 auto;display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted);white-space:nowrap;position:relative}
.trail li:not(:last-child)::after{content:"";flex:1;min-width:10px;border-top:2px dotted var(--line)}
.trail span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid var(--line);font-weight:700;color:var(--muted)}
.trail li.done span{background:var(--teal);border-color:var(--teal);color:#fff}
.trail li.now span{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.trail li.now em{color:var(--navy);font-weight:700}
.trail em{font-style:normal}
@media (max-width:760px){.trail em{display:none}.trail li.now em{display:inline}}

/* choose */
.choose{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:30px}
.choose-card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:30px;border-radius:var(--radius);background:#fff;border:2px solid var(--line);transition:transform .15s,border-color .15s,box-shadow .15s}
.choose-card:hover,.choose-card:focus-visible{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 14px 30px rgba(14,34,54,.12)}
.choose-ico{font-size:2.6rem;line-height:1}
.choose-card b{font-family:"Playfair Display",Georgia,serif;font-size:1.8rem;color:var(--navy)}
.choose-card span{color:var(--muted)}
.choose-card em{font-style:normal;font-weight:700;color:var(--gold-deep);margin-top:auto}
@media (max-width:700px){.choose{grid-template-columns:1fr}}

/* fields */
.apply label{display:block;font-weight:700;margin:18px 0 0;color:var(--navy)}
.apply label i,.apply legend small,.apply label small{font-weight:400;font-style:normal;color:var(--muted);font-size:.85rem}
.apply input:not([type=radio]):not([type=checkbox]),.apply select,.apply textarea{
  display:block;width:100%;margin-top:6px;padding:13px 15px;font:inherit;font-weight:400;font-size:1.05rem;color:var(--ink);
  background:#fff;border:2px solid var(--line);border-radius:12px}
.apply input:focus,.apply select:focus,.apply textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(227,171,60,.2)}
.apply .invalid{border-color:var(--rust)!important}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.grid2 .span2{grid-column:1/-1}
@media (max-width:700px){.grid2{grid-template-columns:1fr}}
.apply label.short .inline{display:flex;align-items:center;gap:10px;font-weight:400}
.apply label.short input{width:120px;display:inline-block}
.link-field{background:var(--cream);padding:14px 16px;border-radius:12px}

/* pills, chips, months */
.apply fieldset{border:0;padding:0;margin:24px 0 0}
.apply legend{font-weight:700;color:var(--navy);margin-bottom:10px;padding:0}
.pills,.chips,.months{display:flex;flex-wrap:wrap;gap:10px}
.pills legend,.chips legend,.months legend{width:100%}
.pills label,.chips label,.months label{margin:0;font-weight:400}
.pills input,.chips input,.months input{position:absolute;opacity:0;pointer-events:none}
.pills span,.chips span,.months span{display:inline-block;padding:10px 18px;border-radius:999px;background:#fff;border:2px solid var(--line);cursor:pointer;transition:all .15s;color:var(--ink)}
.pills input:checked+span,.chips input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.chips input:checked+span::before{content:"✓ ";color:var(--gold)}
.months span{min-width:64px;text-align:center}
.months input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--navy);font-weight:700}
.months.avoid input:checked+span{background:var(--rust);border-color:var(--rust);color:#fff}
.pills input:focus-visible+span,.chips input:focus-visible+span,.months input:focus-visible+span{box-shadow:0 0 0 4px rgba(227,171,60,.35)}

/* pillar heading */
.pstep h1{display:flex;align-items:center;gap:14px}
.p-ico{font-size:.9em;width:1.6em;height:1.6em;display:grid;place-items:center;background:var(--cream);border-radius:50%}
.three{display:grid;gap:12px;margin-top:10px}
.three label{display:flex;align-items:center;gap:14px;margin:0}
.three b{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:var(--navy);font-family:"Playfair Display",Georgia,serif}
.three input{margin-top:0!important}

/* postcard */
.postcard-wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:26px;align-items:start;margin-top:10px}
.postcard{background:#fffdf7;border:1px solid var(--line);border-radius:6px;box-shadow:0 18px 36px rgba(14,34,54,.14);display:grid;grid-template-columns:1.3fr 1fr;min-height:230px;transform:rotate(-1.5deg);margin-top:24px;
  background-image:repeating-linear-gradient(135deg,transparent 0 10px,rgba(180,80,42,.08) 10px 20px);background-size:100% 8px;background-repeat:no-repeat;background-position:top}
.pc-msg{padding:28px 22px;font-family:"Playfair Display",Georgia,serif;font-style:italic;font-size:1.2rem;line-height:1.45;color:var(--navy);border-right:1px dashed var(--line)}
.pc-msg.placeholder{color:#b9ad99}
.pc-side{padding:18px;display:flex;flex-direction:column;justify-content:space-between}
.pc-stamp{align-self:flex-end;width:78px;height:92px;border:3px dotted var(--gold);padding:6px;background:var(--cream);display:grid;place-items:center}
.pc-to{font-size:.85rem;color:var(--muted);border-top:1px solid var(--line);padding-top:8px}
@media (max-width:760px){.postcard-wrap{grid-template-columns:1fr}.postcard{transform:none}}

/* payment */
.paychoice{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px}
.pay-card{margin:0!important;cursor:pointer}
.pay-card input{position:absolute;opacity:0}
.pay-body{display:flex;flex-direction:column;gap:8px;height:100%;padding:26px;border-radius:var(--radius);background:#fff;border:2px solid var(--line);font-weight:400;color:var(--ink);transition:all .15s}
.pay-body b{font-family:"Playfair Display",Georgia,serif;font-size:1.7rem;color:var(--navy)}
.pay-tag{align-self:flex-start;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--gold);color:var(--navy);padding:4px 12px;border-radius:999px}
.pay-tag.plain{background:var(--cream)}
.pay-card input:checked+.pay-body{border-color:var(--navy);box-shadow:0 0 0 3px var(--gold)}
.pay-card input:focus-visible+.pay-body{box-shadow:0 0 0 4px rgba(227,171,60,.4)}
@media (max-width:700px){.paychoice{grid-template-columns:1fr}}
.small-note{color:var(--muted);font-size:.95rem;margin-top:18px}
.apply label.agree{display:flex;gap:12px;align-items:flex-start;font-weight:400;color:var(--ink)}
.agree input{width:22px;height:22px;margin-top:4px;flex:none}

.nav-row{display:flex;justify-content:space-between;gap:14px;margin-top:36px;flex-wrap:wrap}
.nav-row .btn-ghost{color:var(--navy)}
.done-head .btn-ghost{color:var(--navy)}
.form-error{color:var(--rust);font-weight:700}

/* invoice */
.invoice{background:#fff;border:1px solid var(--line);border-radius:12px;padding:40px;margin-top:36px;font-size:.95rem;box-shadow:0 10px 30px rgba(14,34,54,.08)}
.inv-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-bottom:3px solid var(--gold);padding-bottom:20px}
.inv-brand{display:flex;gap:12px;align-items:center}
.inv-brand img{width:64px}
.inv-brand b{display:block;font-family:"Playfair Display",Georgia,serif;font-size:1.3rem;color:var(--navy)}
.inv-brand span{color:var(--muted)}
.inv-title h2{margin:0 0 6px;font-size:2rem;color:var(--navy);text-align:right}
.inv-title dl{display:grid;grid-template-columns:auto auto;gap:2px 14px;margin:0}
.inv-title dt{color:var(--muted)}.inv-title dd{margin:0;font-weight:700}
.inv-parties{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0}
.inv-parties h3,.inv-pay h3{font-family:"Atkinson Hyperlegible",sans-serif;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-deep);margin:0 0 6px}
.inv-parties p{margin:0}
.inv-lines{width:100%;border-collapse:collapse}
.inv-lines th{text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--line);padding:8px}
.inv-lines td{padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.inv-lines td span{color:var(--muted);font-size:.9rem}
.inv-lines th:nth-child(n+2),.inv-lines td:nth-child(n+2){text-align:right;white-space:nowrap}
.inv-lines tfoot td{font-weight:700;font-size:1.15rem;color:var(--navy);border-bottom:3px double var(--navy)}
.inv-pay{margin-top:22px;background:var(--cream);padding:16px 18px;border-radius:10px}
.inv-pay p{margin:0}
.inv-foot{margin-top:24px;color:var(--muted);font-size:.85rem;text-align:center}
@media (max-width:640px){.invoice{padding:22px}.inv-parties{grid-template-columns:1fr}.inv-title h2{text-align:left}}

@media print{
  .site-head,.site-foot,.trail-wrap,.no-print,.step-pane:not([data-step=done]){display:none!important}
  body,.apply{background:#fff}
  .apply-form{padding:0;max-width:none}
  .invoice{border:0;box-shadow:none;margin:0;padding:0}
}
.apply [hidden]{display:none!important}
/* country combobox */
.combo-field{margin-top:18px}
.combo-field>label{margin:0!important}
.combo-field small{color:var(--muted);font-size:.85rem}
.combo{position:relative}
.combo-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);max-height:280px;overflow:auto;margin:0;padding:6px;list-style:none;background:#fff;border:2px solid var(--gold);border-radius:12px;box-shadow:0 14px 30px rgba(14,34,54,.16)}
.combo-list li{padding:9px 12px;border-radius:8px;cursor:pointer;font-size:1.02rem}
.combo-list li b{color:var(--navy)}
.combo-list li[aria-selected="true"],.combo-list li:hover{background:var(--cream)}
.combo-list li.none{color:var(--muted);cursor:default;background:none}
/* required / optional tags */
.req-tag{display:inline-block;margin-left:8px;padding:1px 9px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;background:var(--navy);color:var(--gold)}
.req-tag.opt{background:transparent;color:var(--muted);border:1px solid var(--line)}
.group-label{font-weight:700;color:var(--navy);margin:24px 0 10px}
.invalid-group legend{color:var(--rust)}
.invalid-group legend::after{content:" Please choose at least one.";font-weight:400;font-size:.9rem}
.apply legend .req-tag{padding:1px 9px!important;border-radius:999px!important;background:var(--navy)!important;color:var(--gold)!important;border:0!important;min-width:0!important;cursor:default}
.apply legend .req-tag.opt{background:transparent!important;color:var(--muted)!important;border:1px solid var(--line)!important}
.chips .none-opt span{border-style:dashed}
.apply legend small{margin-left:8px}
.apply div.link-field{margin-top:26px;padding:4px 16px 16px}
/* arrivals */
.arrivals{display:grid;gap:10px}
.arr-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:10px 12px;border-radius:14px;background:#fff;border:2px solid var(--line)}
.arr-row:has(input:checked){border-color:var(--navy)}
.apply .arr-pick{margin:0;min-width:150px}
.arr-pick input{position:absolute;opacity:0;pointer-events:none}
.arr-pick span{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border-radius:999px;border:2px solid var(--line);cursor:pointer;font-weight:700;color:var(--navy)}
.arr-pick i{font-style:normal}
.arr-pick input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.arr-pick input:checked+span::after{content:"✓";color:var(--gold)}
.arr-pick input:focus-visible+span{box-shadow:0 0 0 4px rgba(227,171,60,.35)}
.arr-detail{display:flex;flex-wrap:wrap;gap:12px 18px;flex:1;align-items:flex-end}
.apply .arr-detail label{margin:0;font-size:.9rem}
.apply .arr-detail select{min-width:260px;margin-top:4px;padding:9px 12px}
.apply .arr-detail .inline{display:flex;align-items:center;gap:8px;font-weight:400}
.apply .arr-detail input[type=number]{width:96px;margin-top:4px;padding:9px 12px}
@media (max-width:640px){.apply .arr-detail select{min-width:0}.arr-detail label{flex:1 1 100%}}
.apply .arr-detail select[name$="_min"]{min-width:200px}
.cur-pick span{padding:7px 14px!important;font-size:.92rem}
.trail button{all:unset;display:flex;align-items:center;gap:8px;cursor:pointer;border-radius:999px;padding:2px 6px 2px 2px}
.trail button:hover em{color:var(--navy);text-decoration:underline}
.trail button:focus-visible{outline:3px solid var(--gold)}
.max-note{width:100%;margin:6px 0 0;color:var(--rust);font-size:.92rem}
/* photo upload */
.photo-field{margin-top:22px}
.drop{position:relative;display:block!important;margin:0!important;padding:22px;border:2px dashed var(--gold);border-radius:14px;background:#fff;text-align:center;cursor:pointer;font-weight:400!important}
.drop.over{background:var(--cream)}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.drop-txt b{color:var(--navy)}
.drop-txt small{display:block;margin-top:4px}
.photo-ok{display:flex;gap:14px;align-items:center;padding:10px 14px;background:var(--cream);border-radius:10px;font-weight:700;color:var(--teal)}
.link-btn{all:unset;cursor:pointer;color:var(--rust);text-decoration:underline;font-weight:400}
.photo-rights{margin-top:12px!important;font-size:.95rem}
.pc-photo{grid-column:1/-1;height:170px;background:center/cover no-repeat;border-bottom:1px solid var(--line)}
.price{font-style:normal;color:var(--gold-deep);margin-left:8px}
.notes{margin-top:24px;padding:16px 20px;border-left:4px solid var(--gold);background:var(--cream);border-radius:0 12px 12px 0}
.notes h3{font-family:"Atkinson Hyperlegible",sans-serif;font-size:1rem;text-transform:uppercase;letter-spacing:.08em;color:var(--navy);margin:0 0 6px}
.notes ul{margin:0;padding-left:20px}
.notes li{font-weight:700;color:var(--navy);margin:4px 0}
