:root{--wine:#820b1d;--wine-dark:#5d0715;--gold:#ac8924;--white:#fff;--ink:#171717;--muted:#6b6b6b;--line:#e7e4df}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#fff;font-family:Montserrat,Arial,sans-serif;color:var(--ink);touch-action:manipulation}button,input,label,textarea{font:inherit}[hidden]{display:none!important}.survey{min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;position:relative;overflow:hidden}.survey::after{content:"";position:fixed;width:440px;height:440px;border:1px solid #ac892433;border-radius:50%;right:-245px;bottom:-210px;pointer-events:none}
.survey-header{height:112px;padding:18px clamp(24px,5vw,80px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.survey-header img{width:190px;height:76px;object-fit:contain}.survey-header>span{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--wine);font-weight:600}
form{display:grid}.step{display:none;width:min(1180px,100%);margin:auto;padding:clamp(42px,7vh,80px) 30px}.step.active{display:block}.step-copy{display:flex;align-items:flex-start;gap:22px;margin-bottom:clamp(35px,6vh,65px)}.step-number{font-size:58px;color:var(--gold);font-weight:800;line-height:.9}.step-copy p{font-size:12px;color:var(--wine);font-weight:700;letter-spacing:.14em;margin:0 0 9px}.step-copy h1,.thanks h1{font-size:clamp(34px,4.5vw,62px);letter-spacing:-.05em;line-height:1.05;margin:0;max-width:850px}
.rating-grid{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.rating{min-height:300px;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:28px 20px;cursor:pointer;transition:.2s;background:#fff;user-select:none;-webkit-tap-highlight-color:transparent}.rating input,.reason-grid input{position:absolute;opacity:0;pointer-events:none}.face{width:126px;height:126px;margin-bottom:18px}.face svg{width:100%;height:100%;fill:none;stroke:var(--wine);stroke-width:5;stroke-linecap:round}.face svg circle:not(:first-child){fill:var(--wine);stroke:none}.rating strong{font-size:23px;color:var(--wine)}.rating small{font-size:14px;color:var(--muted);margin-top:5px;text-align:center}.rating:hover,.rating:focus-within{border-color:var(--gold);transform:translateY(-4px)}.rating:has(input:checked){background:var(--wine);border-color:var(--wine);color:#fff}.rating:has(input:checked) .face svg{stroke:#fff}.rating:has(input:checked) .face svg circle:not(:first-child){fill:#fff}.rating:has(input:checked) strong,.rating:has(input:checked) small{color:#fff}
.back{border:0;background:none;color:var(--wine);font-size:12px;font-weight:700;letter-spacing:.1em;padding:15px 0;margin-bottom:25px;cursor:pointer}.reason-grid{border:0;padding:0;margin:0 0 35px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.reason-grid label{min-height:72px;display:grid;place-items:center;text-align:center;border:2px solid var(--line);font-weight:600;color:var(--wine);cursor:pointer;user-select:none}.reason-grid label:has(input:checked){background:var(--wine);color:#fff;border-color:var(--wine)}.submit,.thanks button{min-height:64px;border:0;background:var(--wine);color:#fff;padding:0 28px;font-size:13px;font-weight:700;letter-spacing:.08em;margin-top:22px;cursor:pointer}.submit:disabled{opacity:.55;cursor:wait}.submit span{font-size:20px;margin-left:22px}.send-status{min-height:24px;margin:12px 0 0;color:var(--wine);font-size:14px;font-weight:600}
.thanks{align-self:center;text-align:center;width:min(850px,100%);margin:auto;padding:35px 28px}.thanks-icon{width:80px;height:100px;margin:0 auto 12px}.thanks-icon img{width:100%;height:100%;object-fit:contain}.thanks>p{color:var(--gold);font-size:13px;font-weight:700;letter-spacing:.17em}.thanks h1{color:var(--wine);margin:auto}.thanks>span{display:block;color:var(--muted);font-size:14px;margin-top:16px}.thanks button{background:#fff;color:var(--wine);border:2px solid var(--wine)}.review-qr{display:flex;align-items:center;justify-content:center;gap:28px;text-align:left;margin:25px auto 5px;padding:15px;border:1px solid var(--line);width:min(560px,100%)}.review-qr img{width:135px;height:135px}.review-qr strong,.review-qr span{display:block}.review-qr strong{color:var(--wine);font-size:18px}.review-qr span{color:var(--muted);font-size:14px;margin-top:7px;line-height:1.45}
.survey>footer{min-height:64px;border-top:1px solid var(--line);padding:18px clamp(24px,5vw,80px);display:flex;justify-content:space-between;align-items:center;color:var(--wine);font-size:11px;font-weight:700;letter-spacing:.12em}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){.survey-header{height:90px}.survey-header img{width:145px;height:60px}.survey-header>span{display:none}.step{padding:35px 18px}.step-number{font-size:42px}.rating-grid{grid-template-columns:1fr;gap:12px}.rating{min-height:145px;display:grid;grid-template-columns:95px 1fr;grid-template-rows:auto auto;column-gap:18px;text-align:left}.face{width:82px;height:82px;grid-row:1/3;margin:0}.rating small{text-align:left}.reason-grid{grid-template-columns:1fr 1fr}.step-copy{margin-bottom:30px}.thanks h1{font-size:36px}}
@media(orientation:landscape) and (max-height:700px){.survey-header{height:78px}.step{padding-top:25px;padding-bottom:25px}.step-copy{margin-bottom:25px}.rating{min-height:230px}.face{width:96px;height:96px}.step-copy h1{font-size:40px}.reason-grid label{min-height:56px}.reason-grid{margin-bottom:20px}.survey>footer{min-height:50px}}
@media(max-width:560px){.review-qr{gap:14px;padding:12px}.review-qr img{width:105px;height:105px}.review-qr strong{font-size:15px}.review-qr span{font-size:12px}}
@media(orientation:landscape) and (min-width:1000px){
  html,body{width:100%;height:100%;overflow:hidden}
  .survey{width:100vw;height:100vh;height:100dvh;min-height:0;grid-template-rows:96px minmax(0,1fr) 54px}
  .survey-header{height:96px;padding-block:12px}
  .survey-header img{height:68px}
  form{height:100%;min-height:0;overflow:hidden}
  .step{height:100%;min-height:0;padding:30px 64px;overflow:hidden}
  .step.active{display:flex;flex-direction:column;justify-content:center}
  .step-copy{margin-bottom:34px}
  .rating{min-height:280px}
  .reason-grid{margin-bottom:24px}
  .reason-grid label{min-height:70px}
  .submit{margin-top:10px}
  .thanks{max-height:100%;padding:20px 28px;overflow:hidden}
  .thanks-icon{height:82px;width:68px;margin-bottom:8px}
  .review-qr{margin-top:18px}
  .thanks button{margin-top:16px}
  .survey>footer{min-height:54px;padding-block:12px}
}
@media(prefers-reduced-motion:reduce){.rating{transition:none}}
