/* Premium control layer — framework-free, editorial, keyboard accessible. */
.field{position:relative}
.field>input:not([type="checkbox"]):not([type="date"]){height:56px;border-radius:8px;border:1px solid #cbc7bd;background:#faf9f5;padding:0 15px;font-size:15px;font-weight:560;letter-spacing:-.01em;box-shadow:none;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}
.field>input:not([type="checkbox"]):not([type="date"]):hover{border-color:#a8a398;background:#fff}
.field>input:not([type="checkbox"]):not([type="date"]):focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px rgba(36,71,255,.10)}
.native-control-hidden{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;padding:0!important;border:0!important;margin:0!important}
.premium-control{position:relative;width:100%}
.premium-trigger{width:100%;height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #cbc7bd;border-radius:8px;background:#faf9f5;padding:0 10px 0 15px;color:var(--ink);font-size:15px;font-weight:580;letter-spacing:-.01em;text-align:left;box-shadow:none;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}
.premium-trigger:hover{border-color:#a8a398;background:#fff}
.premium-trigger:focus-visible,.premium-control.is-open>.premium-trigger{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px rgba(36,71,255,.10)}
.premium-trigger-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.premium-trigger-icon{width:32px;height:32px;display:grid;place-items:center;flex:none;border-left:1px solid var(--line);color:#706d66;transition:color .14s ease,transform .14s ease}
.premium-trigger-icon svg{width:17px;height:17px}
.premium-control.is-open>.premium-trigger .premium-trigger-icon{color:var(--accent)}
.premium-select.is-open>.premium-trigger .premium-trigger-icon{transform:rotate(180deg)}
.premium-date.is-empty .premium-trigger-value{color:#8a877f;font-weight:500}
.premium-select-menu,.premium-calendar{position:absolute;top:calc(100% + 7px);left:0;z-index:70;width:100%;min-width:230px;background:#fffefb;border:1px solid #c9c4b9;border-radius:10px;box-shadow:0 20px 55px rgba(29,27,23,.15);opacity:0;visibility:hidden;transform:translateY(-3px);transform-origin:top;transition:opacity .12s ease,transform .12s ease,visibility .12s ease;overflow:hidden}
.premium-control.is-open>.premium-select-menu,.premium-control.is-open>.premium-calendar{opacity:1;visibility:visible;transform:translateY(0)}
.premium-select-menu{padding:5px}
.premium-option{width:100%;min-height:42px;border:0;background:transparent;border-radius:4px;padding:9px 10px;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#3e3b36;font-size:13px;font-weight:600;text-align:left}
.premium-option:hover,.premium-option:focus-visible{outline:none;background:#eeece5;color:var(--ink)}
.premium-option.is-selected{background:var(--ink);color:#fff}
.premium-option-check{opacity:0;color:inherit;font-size:12px;font-weight:900}
.premium-option.is-selected .premium-option-check{opacity:1}

/* Calendar — direct, live, and visually explicit. */
.premium-calendar{width:390px;max-width:calc(100vw - 32px);padding:14px;overflow:visible}
.calendar-head{display:grid;grid-template-columns:42px minmax(135px,1fr) 92px 42px;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.calendar-nav{height:42px;width:42px;border:1px solid #d2cec4;border-radius:8px;background:#faf9f5;color:#5f5c56;font-size:18px;display:grid;place-items:center;transition:border-color .14s ease,background .14s ease,color .14s ease,transform .08s ease}
.calendar-nav:hover,.calendar-nav:focus-visible{outline:none;border-color:#a8a398;background:#fff;color:var(--ink)}
.calendar-nav:active{transform:scale(.96)}
.calendar-month-button{height:42px;border:1px solid #d2cec4;border-radius:8px;background:#faf9f5;padding:0 11px 0 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink);font-family:var(--display,var(--sans));font-size:15px;font-weight:700;letter-spacing:-.02em;text-align:left;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}
.calendar-month-button:hover,.calendar-month-button:focus-visible{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 2px rgba(36,71,255,.08)}
.calendar-month-button svg{width:15px;height:15px;flex:none;color:#747068;transition:transform .12s ease}
.premium-date.is-month-open .calendar-month-button svg{transform:rotate(180deg)}
.calendar-year-direct{height:42px!important;margin:0!important;position:relative;display:block!important}
.calendar-year-direct>span{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.calendar-year-input{width:100%!important;height:42px!important;border:1px solid #d2cec4!important;border-radius:8px!important;background:#faf9f5!important;color:var(--ink)!important;padding:0 10px!important;text-align:center;font-family:var(--display,var(--sans))!important;font-size:17px!important;font-weight:760!important;font-variant-numeric:tabular-nums;letter-spacing:-.018em!important;outline:none!important;box-shadow:none!important;appearance:textfield;-moz-appearance:textfield;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}
.calendar-year-input:hover{border-color:#aaa59b!important;background:#fff!important}
.calendar-year-input:focus{border-color:var(--accent)!important;background:#fff!important;box-shadow:0 0 0 2px rgba(36,71,255,.08)!important}
.calendar-year-input::-webkit-outer-spin-button,.calendar-year-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.calendar-year-jumps{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 0 2px;margin-left:auto;width:192px}
.calendar-year-jumps>span{display:none}
.calendar-year-step{height:34px;border:1px solid #dedad1;border-radius:7px;background:transparent;padding:0 8px;color:#68655f;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.025em;text-transform:uppercase;transition:border-color .14s ease,background .14s ease,color .14s ease,transform .08s ease}
.calendar-year-step:hover,.calendar-year-step:focus-visible{outline:none;border-color:#b9b4aa;background:#f4f2ec;color:var(--ink)}
.calendar-year-step:active{transform:scale(.97)}
.calendar-month-menu{display:none;grid-template-columns:repeat(4,1fr);gap:5px;padding:9px 0 10px;border-bottom:1px solid var(--line);margin-bottom:5px}
.premium-date.is-month-open .calendar-month-menu{display:grid}
.calendar-month-option{height:40px;border:1px solid transparent;border-radius:6px;background:transparent;color:#514e48;font-size:12px;font-weight:680;cursor:pointer;touch-action:manipulation}
.calendar-month-option:hover,.calendar-month-option:focus-visible{outline:none;background:#eeece5;color:var(--ink)}
.calendar-month-option.is-selected{background:var(--ink);color:#fff}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.calendar-weekdays{padding:10px 0 4px}
.calendar-weekdays span{height:24px;display:grid;place-items:center;color:#8f8b83;font-family:var(--mono);font-size:9px;font-weight:700;text-transform:uppercase}
.calendar-day{position:relative;aspect-ratio:1;border:0;border-radius:7px;background:transparent;color:#35322e;font-size:14px;font-weight:620;display:grid;place-items:center;transition:background .1s ease,color .1s ease,transform .08s ease;cursor:pointer;touch-action:manipulation}
.calendar-day:hover,.calendar-day:focus-visible{outline:none;background:#eeece5;color:var(--ink)}
.calendar-day:active{transform:scale(.94)}
.calendar-day.is-outside{color:#b7b3ab;font-weight:500}
.calendar-day.is-today:not(.is-selected){box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}
.calendar-day.is-selected{background:var(--ink);color:#fff}
.calendar-day.is-selected:hover{background:#2d2d2a}
.calendar-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:9px;padding:9px 1px 0}
.calendar-footer button{height:32px;border:0;background:transparent;padding:0 7px;border-radius:6px;color:#67645e;font-family:var(--mono);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.calendar-footer button:hover,.calendar-footer button:focus-visible{outline:none;background:#f1efe9;color:var(--accent)}

.checkbox-row input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:18px!important;height:18px!important;min-width:18px;border:1px solid #bdb8ae!important;border-radius:3px;background:#fff!important;margin:1px 9px 0 0!important;display:grid;place-items:center;cursor:pointer;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}
.checkbox-row input[type="checkbox"]::after{content:"";width:7px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px);opacity:0}
.checkbox-row input[type="checkbox"]:checked{background:var(--accent)!important;border-color:var(--accent)!important}
.checkbox-row input[type="checkbox"]:checked::after{opacity:1}
.checkbox-row input[type="checkbox"]:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(36,71,255,.10)}

/* Legal pages */
.legal-shell{padding:58px 0 92px}
.legal-hero{display:grid;grid-template-columns:2fr 7fr 3fr;gap:22px;align-items:start;margin-bottom:42px;border-top:1px solid var(--ink);padding-top:20px}
.legal-kicker{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);padding-top:8px}
.legal-title{grid-column:2;font-family:var(--display,var(--sans));font-size:clamp(54px,6vw,82px);font-weight:760;line-height:.92;letter-spacing:-.055em;margin:0}
.legal-intro{grid-column:2;font-size:16px;line-height:1.7;color:var(--muted);margin:5px 0 0;max-width:720px}
.legal-updated{grid-column:3;grid-row:1/4;font-family:var(--mono);font-size:9px;line-height:1.5;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding-top:8px;text-align:right}
.legal-card{max-width:900px;margin-left:calc((100% / 12) * 2);background:transparent;border:0;border-top:1px solid var(--ink);border-radius:0;padding:0;box-shadow:none}
.legal-card h2{font-family:var(--display,var(--sans));font-size:25px;font-weight:680;letter-spacing:-.03em;margin:0;padding:24px 0 8px;border-top:1px solid var(--line)}
.legal-card h2:first-child{border-top:0}
.legal-card p,.legal-card li{color:#55524c;font-size:14px;line-height:1.75}
.legal-card p{margin:0 0 14px}
.legal-card ul{margin:8px 0 17px;padding-left:20px}
.legal-card li+li{margin-top:6px}
.legal-card a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.legal-note{margin:24px 0!important;padding:16px 0;border-top:1px solid var(--accent);border-bottom:1px solid var(--accent);color:#434d83!important}

/* Tablet controls: slightly larger targets, restrained popovers. */
@media(max-width:900px) and (min-width:721px){
  .premium-trigger,.field>input:not([type="checkbox"]):not([type="date"]){height:54px}
  .premium-calendar{width:390px;padding:13px;border-radius:12px}
  .calendar-head{grid-template-columns:40px minmax(130px,1fr) 92px 40px;gap:8px}
  .calendar-nav{width:40px;height:44px}.calendar-month-button,.calendar-year-direct,.calendar-year-input{height:44px!important}
  .calendar-year-jumps{padding-top:9px}.calendar-year-step{height:36px}
  .calendar-day{font-size:14px;min-height:39px}
  .legal-shell{padding:48px 0 76px}.legal-hero{grid-template-columns:1fr 4fr;gap:18px}.legal-title,.legal-intro{grid-column:2}.legal-updated{grid-column:2;grid-row:auto;text-align:left;padding-top:5px}.legal-card{margin-left:20%;max-width:80%}
}

/* Phone controls: bottom-sheet calendar and true touch-sized actions. */
@media(max-width:720px){
  .premium-trigger,.field>input:not([type="checkbox"]):not([type="date"]){height:50px}
  .premium-trigger{padding-left:12px;font-size:14px}.premium-trigger-icon{width:30px;height:30px}
  .premium-select-menu{min-width:0;width:100%;border-radius:9px}.premium-option{min-height:44px;font-size:13px}
  .premium-calendar{position:fixed;left:10px;right:10px;top:auto;bottom:max(10px,env(safe-area-inset-bottom));width:auto;max-width:none;border-radius:14px;padding:14px;transform:translateY(8px);box-shadow:0 24px 70px rgba(25,23,20,.24)}
  .premium-control.is-open>.premium-calendar{transform:translateY(0)}
  .calendar-head{grid-template-columns:42px minmax(0,1fr) 88px 42px;gap:7px;padding-bottom:11px}
  .calendar-nav{width:42px;height:46px;font-size:18px}
  .calendar-month-button,.calendar-year-direct,.calendar-year-input{height:46px!important}
  .calendar-month-button{padding-left:12px;font-size:15px}.calendar-year-input{font-size:16px!important}
  .calendar-year-jumps{width:100%;grid-template-columns:1fr 1fr;gap:8px;padding:9px 0 10px}
  .calendar-year-step{height:38px;font-size:9px;background:#f8f7f2}
  .calendar-month-menu{grid-template-columns:repeat(3,1fr);gap:6px;padding:9px 0 10px}
  .calendar-month-option{height:42px;font-size:12px}
  .calendar-weekdays{padding:7px 0 4px}.calendar-weekdays span{height:28px}
  .calendar-grid{gap:3px}.calendar-day{font-size:14px;min-height:40px}
  .calendar-footer{margin-top:10px;padding-top:9px}.calendar-footer button{min-height:38px;padding:0 9px}
  .checkbox-row input[type="checkbox"]{width:20px!important;height:20px!important;min-width:20px;margin-right:10px!important}
  .legal-shell{padding:34px 0 58px}.legal-hero{display:block;margin-bottom:30px;padding-top:16px}.legal-kicker{margin-bottom:10px}.legal-title{font-size:clamp(42px,13vw,54px);line-height:.98}.legal-intro{font-size:14.5px;line-height:1.65;margin-top:14px}.legal-updated{text-align:left;margin-top:14px}.legal-card{margin-left:0;max-width:none}.legal-card h2{font-size:22px;padding-top:20px}.legal-card p,.legal-card li{font-size:13.5px;line-height:1.7}
}

@media(max-width:390px){
  .premium-calendar{left:6px;right:6px;bottom:max(6px,env(safe-area-inset-bottom));padding:11px}
  .calendar-head{grid-template-columns:38px minmax(0,1fr) 80px 38px;gap:5px}
  .calendar-nav{width:38px;height:44px}.calendar-month-button,.calendar-year-direct,.calendar-year-input{height:44px!important}
  .calendar-month-button{font-size:14px;padding:0 9px}.calendar-year-input{font-size:15px!important;padding:0 7px!important}
  .calendar-day{min-height:36px;font-size:13px}.calendar-year-step{height:36px;font-size:8.5px}
}
