/* The booking funnel. Phone first; loaded only on the booking pages, after gator.css. */
.fn{background:var(--yellow);padding:12px 16px 28px;min-height:calc(100vh - 70px);min-height:calc(100dvh - 70px)}
.site-nav .call{display:inline-flex;align-items:center;min-height:46px}
.site-nav .logo{display:inline-flex;align-items:center;min-height:46px}
.footer-links a{display:inline-flex;align-items:center;min-height:46px}
#funnel-root{max-width:520px;margin:0 auto}

.fn-static{font-size:34px;line-height:1;letter-spacing:-.03em;margin:12px 0}
.fn-static-text{font-size:17px;line-height:1.5;font-weight:500}
.fn-static-text a{text-decoration:underline}

.fn-card{background:#fff;border:3px solid var(--ink);border-radius:12px;padding:18px;animation:fn-in .22s ease-out}
@keyframes fn-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.fn-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-6px 0 6px;min-height:46px}
.fn-eyebrow{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:0}
.fn-back{background:none;border:0;color:var(--ink);font:inherit;font-size:14px;font-weight:700;min-height:46px;min-width:46px;padding:0 0 0 8px;margin-left:auto;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.fn-bar{height:5px;background:#e8e5da;border-radius:9px;margin-bottom:16px;overflow:hidden}
.fn-bar i{display:block;height:100%;background:var(--ink);border-radius:9px;transition:width .25s ease-out}

.fn-card h1{font-size:26px;line-height:1.08;letter-spacing:-.03em;font-weight:800;margin:0 0 14px}
.fn-card h1:focus{outline:none}
.fn-sub{font-size:16px;line-height:1.45;font-weight:500;margin:-6px 0 14px}
.fn-text{font-size:16px;line-height:1.45;margin:0 0 12px}
.fn-text strong{font-weight:800}

.fn-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fn-opt{display:block;width:100%;min-height:52px;padding:12px;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:8px;font:inherit;font-size:15px;font-weight:700;text-align:left;cursor:pointer;transition:background .12s,color .12s,transform .08s}
.fn-opt small{display:block;font-size:14px;font-weight:500;margin-top:3px;line-height:1.3}
@media (hover:hover){.fn-opt:hover{background:#fff6c2}.fn-opt[aria-pressed="true"]:hover{background:var(--ink)}.fn-upload:hover{background:#fff6c2}}
.fn-opt:active{transform:scale(.985)}
.fn-opt[aria-pressed="true"]{background:var(--ink);color:var(--yellow)}
.fn-stack{display:grid;gap:8px}
.fn-stack .fn-opt{padding:16px 14px;font-size:17px}

.fn-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;padding:12px 16px;margin-top:14px;background:var(--ink);color:var(--yellow);border:2px solid var(--ink);border-radius:8px;font:inherit;font-size:17px;font-weight:800;letter-spacing:-.01em;text-align:center;cursor:pointer;transition:transform .08s,opacity .12s}
.fn-btn:active{transform:scale(.985)}
.fn-btn[disabled]{opacity:.55;cursor:default}
.fn-btn.ghost{background:#fff;color:var(--ink)}
.fn-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:14px}
.fn-actions .fn-btn{margin-top:0}
.fn-quiet{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;margin-top:8px;background:none;border:0;color:var(--ink);font:inherit;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

.fn-field{display:block;margin-bottom:14px}
.fn-field>label{display:block;font-size:15px;font-weight:700;margin-bottom:6px}
.fn-input{display:block;width:100%;min-height:50px;padding:12px;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:8px;font:inherit;font-size:17px}
textarea.fn-input{min-height:128px;resize:vertical;line-height:1.4}
.fn-input[aria-invalid="true"]{border-color:#b3261e;box-shadow:0 0 0 1px #b3261e}
.fn-hint{font-size:14px;margin:6px 0 0}

.fn-stepper{display:grid;grid-template-columns:60px 1fr 60px;gap:8px;align-items:stretch}
.fn-stepper .fn-input{text-align:center;font-size:30px;font-weight:800;min-height:60px;padding:6px}
.fn-stepper .fn-opt{text-align:center;font-size:24px;padding:0}

.fn-check{display:flex;gap:12px;align-items:flex-start;min-height:46px;padding:10px 0;font-size:15px;line-height:1.35;font-weight:500;cursor:pointer}
.fn-check input{flex:none;width:24px;height:24px;margin:0;accent-color:var(--ink)}

.fn-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.fn-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

.fn-upload{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:10px 12px;border:2px dashed var(--ink);border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;text-align:center}
input[type=file]:focus-visible+.fn-upload{outline:3px solid var(--green);outline-offset:2px}
.fn-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.fn-thumb{position:relative}
.fn-thumb img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border:2px solid var(--ink);border-radius:8px}
.fn-thumb button{display:block;width:100%;min-height:46px;background:none;border:0;color:var(--ink);font:inherit;font-size:13px;font-weight:700;text-decoration:underline;cursor:pointer}

.fn-alert{background:#fff6c2;border:2px solid var(--ink);border-radius:8px;padding:10px 12px;margin:0 0 14px;font-size:15px;line-height:1.35;font-weight:700}
.fn-notice{font-size:15px;line-height:1.35;font-weight:700;background:var(--yellow);border-radius:8px;padding:10px 12px;margin:0 0 14px}
.fn-note{font-size:14px;line-height:1.35;margin:12px 0 0}

.fn-price{background:var(--yellow);border:3px solid var(--ink);border-radius:12px;padding:16px;margin:0 0 12px}
.fn-range{font-size:clamp(34px,10.5vw,44px);font-weight:800;letter-spacing:-.045em;line-height:1;margin:0 0 8px;white-space:nowrap}
.fn-price p:last-child{margin-bottom:0}
.fn-ai{font-size:14px;line-height:1.35;font-weight:700;margin:0 0 8px}
.fn-min{font-size:14px;line-height:1.35;font-weight:500;margin:0}
.fn-deposit{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid #e8e5da;padding:2px 0 12px;margin:0 0 12px}
.fn-deposit b{font-size:26px;font-weight:800;letter-spacing:-.03em}
.fn-deposit span{font-size:15px;font-weight:500;line-height:1.3}

.fn-rows{margin:0 0 14px;border:2px solid var(--ink);border-radius:8px;overflow:hidden}
.fn-rows div{display:grid;grid-template-columns:78px 1fr;gap:10px;padding:10px 12px;border-bottom:1px solid #e8e5da;font-size:15px;line-height:1.3}
.fn-rows div:last-child{border-bottom:0}
.fn-rows dt{font-weight:500}
.fn-rows dd{margin:0;font-weight:800;overflow-wrap:anywhere}
.fn-recap{font-size:14px;line-height:1.35;font-weight:500;background:#f6f3e6;border-radius:8px;padding:10px 12px;margin:0 0 14px}
.fn-recap b{font-weight:800}

.fn-fine{font-size:14px;line-height:1.4;margin:0 0 6px}
.fn-terms{display:inline-flex;align-items:center;min-height:46px;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px}

.fn-window{display:flex;justify-content:space-between;gap:12px;align-items:center}
.fn-window small{margin:0;font-size:15px;font-weight:700}
.fn-loading{display:grid;gap:8px}
.fn-skel{height:52px;border-radius:8px;background:#efece0;animation:fn-pulse 1.1s ease-in-out infinite alternate}
.fn-skel.tall{height:112px}
@keyframes fn-pulse{from{opacity:1}to{opacity:.45}}
.fn-wait{font-size:16px;font-weight:700;margin:0 0 12px}

.fn-gator{display:block;width:150px;height:auto;margin:10px -4px -8px auto}
.fn-gator.thumbs{width:132px}

.fn-help{max-width:520px;margin:14px auto 0;font-size:15px;font-weight:500;text-align:center}
.fn-help a{display:inline-flex;align-items:center;min-height:46px;font-weight:800;text-decoration:underline;text-underline-offset:3px}

.fn :focus-visible{outline:3px solid var(--green);outline-offset:2px}
.fn-card h1:focus-visible{outline:none}

@media (min-width:600px){
  .fn{padding-top:28px}
  .fn-card{padding:26px}
  .fn-card h1{font-size:32px}
}
@media (prefers-reduced-motion:reduce){
  .fn-card,.fn-skel{animation:none}
  .fn-bar i,.fn-opt,.fn-btn{transition:none}
  .fn-opt:active,.fn-btn:active{transform:none}
}
