/* Shared by the 3D home and the content pages: cookie banner, forms (call booking, message), primary buttons.
   Expects the palette variables (--cyan, --orange, --line, --f-logo, --f-pix, --pc…) from style.css or site.css. */
.save__btn { font-family: var(--f-logo); font-size: 1.5rem; text-decoration: none; padding: .7em 1.2em .6em; border-radius: 16px; background: linear-gradient(180deg, #ffb057, var(--orange) 50%, #e0430f); color: #fff; text-shadow: 0 2px 0 #7a2400; box-shadow: 0 6px 0 #7a2400, 0 0 30px rgba(255,138,31,.45); transition: transform .15s, box-shadow .15s; }
.save__btn:hover { transform: translateY(-3px); box-shadow: 0 9px 0 #7a2400, 0 0 40px rgba(255,138,31,.6); }
.save__btn:active { transform: translateY(4px); box-shadow: 0 2px 0 #7a2400; }
.save__btn--2 { background: linear-gradient(180deg, #4f9bff, var(--blue) 55%, #0b3fb3); text-shadow: 0 2px 0 #061440; box-shadow: 0 6px 0 #061440, 0 0 30px rgba(29,107,255,.45); font-size: 1.2rem; }

.lnk { font: inherit; color: inherit; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.title__foot a, .title__foot .lnk { color: var(--muted); text-decoration: underline; text-underline-offset: 2px; }
.title__foot a:hover, .title__foot .lnk:hover { color: #fff; }
.pn__note a, .pn__note .lnk { color: var(--muted); }
.t-only { display: none; }
@media (hover: none) { .t-only { display: block; } .hud__hint p:nth-child(2) { display: none; } }

/* cookie consent */
.consent { position: fixed; z-index: 60; left: 50%; bottom: clamp(12px, 3vh, 28px); width: min(620px, calc(100vw - 24px)); transform: translate(-50%, 24px); opacity: 0; transition: opacity .3s, transform .3s;
  padding: 1.2rem 1.3rem 1.1rem; border-radius: 18px; background: rgba(2,10,34,.96); border: 2px solid var(--cyan); box-shadow: 0 0 34px rgba(94,231,255,.3), 0 6px 0 #061440; max-height: calc(100svh - 24px); overflow-y: auto; }
.consent.is-on { opacity: 1; transform: translate(-50%, 0); }
.consent__x { position: absolute; right: 10px; top: 8px; width: 40px; height: 40px; border-radius: 50%; color: var(--muted); font-size: 1rem; }
.consent__x:hover { color: #fff; background: rgba(255,255,255,.06); }
.consent__k { font-family: var(--f-pix); font-size: .55rem; color: var(--cyan); }
.consent__t { font-family: var(--f-logo); font-weight: 400; font-size: 1.7rem; margin: .5rem 0 .5rem; }
.consent__d { font-size: .95rem; line-height: 1.5; color: #cfe0ff; padding-right: 1.4rem; }
.consent__d a { color: var(--cyan); }
.consent__opts { display: grid; gap: .6rem; margin-top: 1rem; }
.tog { display: grid; grid-template-columns: auto 1fr; gap: .8rem; align-items: start; padding: .8rem .9rem; border-radius: 12px; border: 1px solid var(--line); background: rgba(94,231,255,.05); font-size: .88rem; color: #cfe0ff; line-height: 1.45; cursor: pointer; }
.tog b { display: block; color: #fff; margin-bottom: .15rem; }
.tog input { width: 22px; height: 22px; accent-color: var(--cyan); margin-top: .1rem; }
.consent__btns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin-top: 1rem; }
.consent__btns button { font-family: var(--f-logo); font-size: 1.05rem; padding: .75em .5em .65em; border-radius: 12px; background: #11307a; color: #fff; border: 2px solid var(--cyan); box-shadow: 0 4px 0 #061440; }
.consent__btns button:hover { background: #1a46a8; }
.consent__btns button:active { transform: translateY(3px); box-shadow: 0 1px 0 #061440; }
@media (max-width: 480px) { .consent__btns { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .consent__btns [data-ck="custom"] { grid-column: 1 / -1; grid-row: 2; } }

/* forms */
.seg { display: inline-flex; gap: .3rem; padding: .3rem; margin-top: 1.8rem; border-radius: 999px; border: 1px solid var(--line); background: rgba(4,16,46,.7); }
.seg button { font-family: var(--f-logo); font-size: 1.1rem; padding: .55em 1.1em .45em; border-radius: 999px; color: var(--muted); }
.seg button.is-on { background: var(--orange); color: #2a0e00; box-shadow: 0 3px 0 #7a2400; }
.gform { margin-top: 1.4rem; display: grid; gap: 1.2rem; max-width: 900px; }
.gform fieldset { border: 2px solid color-mix(in srgb, var(--pc) 45%, transparent); border-radius: 18px; padding: 1.1rem 1.1rem 1.2rem; background: rgba(4,16,46,.55); min-width: 0; }
.gform legend { font-family: var(--f-logo); font-size: 1.25rem; padding: 0 .5rem; color: #fff; }
.gform legend small { font-family: var(--f-pix); font-size: .45rem; color: var(--muted); margin-left: .5rem; vertical-align: middle; }
.grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1rem; }
.f { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.f--wide { margin-top: .9rem; }
.f span { font-size: .85rem; color: #cfe0ff; }
.f input, .f select, .f textarea { font: inherit; font-size: 16px; color: #fff; background: rgba(1,6,22,.8); border: 1.5px solid #2a4580; border-radius: 12px; padding: .75em .85em; width: 100%; min-width: 0; transition: border-color .2s, box-shadow .2s; }
.f textarea { resize: vertical; min-height: 92px; line-height: 1.45; }
.f select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--cyan) 50%), linear-gradient(135deg, var(--cyan) 50%, transparent 50%); background-position: calc(100% - 18px) 55%, calc(100% - 12px) 55%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 2.2em; }
.f select option { background: #061440; }
.f input:focus, .f select:focus, .f textarea:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(94,231,255,.22); }
.f [aria-invalid="true"] { border-color: var(--red); }
.err { font-style: normal; font-size: .8rem; color: #ff9b9b; min-height: 0; }
.err:empty { display: none; }
.hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.chk { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; font-size: .9rem; color: #cfe0ff; line-height: 1.45; cursor: pointer; }
.chk input { width: 22px; height: 22px; margin-top: .05rem; accent-color: var(--orange); }
.chk a { color: var(--cyan); }
.gform__msg { font-size: .95rem; color: #ffb4b4; }
.gform__msg:empty { display: none; }
.gform__go { justify-self: start; border: 0; cursor: pointer; }
.gform__go:disabled { filter: grayscale(.6); opacity: .7; cursor: wait; }
.slots__days { display: flex; gap: .5rem; overflow-x: auto; padding: .2rem .1rem .7rem; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.day { flex: 0 0 auto; scroll-snap-align: start; width: 68px; padding: .55rem 0 .5rem; border-radius: 14px; border: 2px solid #2a4580; background: rgba(1,6,22,.7); display: flex; flex-direction: column; align-items: center; gap: .1rem; color: #cfe0ff; }
.day b { font-family: var(--f-logo); font-weight: 400; font-size: 1.6rem; line-height: 1; color: #fff; }
.day small { font-family: var(--f-pix); font-size: .42rem; text-transform: uppercase; }
.day.is-on { border-color: var(--orange); background: rgba(255,138,31,.16); box-shadow: 0 0 16px rgba(255,138,31,.35); }
.slots__day { width: 100%; font-size: .85rem; color: var(--muted); margin-bottom: .2rem; }
.slots__day::first-letter { text-transform: uppercase; }
.slots__times { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .3rem; }
.tm { font-family: var(--f-pix); font-size: .62rem; padding: 1em 1.1em; border-radius: 12px; border: 2px solid #2a4580; background: rgba(1,6,22,.7); color: #fff; min-width: 76px; }
.tm:hover { border-color: var(--cyan); }
.tm.is-on { background: var(--orange); border-color: #ffd0a1; color: #2a0e00; box-shadow: 0 3px 0 #7a2400; }
.slots__load { font-size: .9rem; color: var(--muted); padding: .6rem 0; }
.slots__empty { font-size: .95rem; color: #ffd9a3; margin-top: .4rem; }
.gdone { margin-top: 1.6rem; max-width: 760px; padding: 1.6rem 1.4rem; border-radius: 20px; border: 2px solid var(--yellow); background: linear-gradient(180deg, rgba(19,66,181,.55), rgba(4,16,46,.85)); box-shadow: 0 0 40px rgba(255,210,63,.25), 0 8px 0 #061440; outline: none; animation: pnIn .6s cubic-bezier(.2,1.6,.4,1); }
.gdone__k { font-family: var(--f-pix); font-size: .62rem; color: var(--yellow); }
.gdone__t { font-family: var(--f-logo); font-weight: 400; font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.05; margin: .7rem 0; }
.gdone__p { color: #d6e4ff; line-height: 1.55; }
.gdone__ref { font-family: var(--f-pix); font-size: .55rem; color: var(--cyan); margin-top: .8rem; }
.gdone__ref:empty { display: none; }
.gdone__btns { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.3rem; }
.gdone__btns .save__btn { border: 0; cursor: pointer; font-size: 1.2rem; }
@media (max-width: 640px) {
  .grid2 { grid-template-columns: minmax(0, 1fr); }
  .seg { display: flex; width: 100%; } .seg button { flex: 1; font-size: 1rem; padding-inline: .4em; }
  .gform fieldset { padding: .9rem .8rem 1rem; }
  .gform__go { width: 100%; justify-self: stretch; text-align: center; }
  .save__btn { font-size: 1.25rem; }
}

@media (min-width: 900px) { .consent { left: 24px; transform: translateY(24px); width: min(520px, calc(100vw - 48px)); } .consent.is-on { transform: none; } }
