:root { --ink:#11100e; --ink-soft:#22201d; --ivory:#f4efe7; --paper:#fbf8f3; --gold:#c6a15b; --gold-dark:#7a5a21; --taupe:#746858; --line-light:rgba(17,16,14,.14); --serif:'Italiana',Georgia,serif; --sans:'DM Sans',Arial,sans-serif; --gap:1.5rem; --control:48px; }
* { box-sizing:border-box; }
body { margin:0; background:var(--ivory); color:var(--ink); font-family:var(--sans); line-height:1.6; }
a { color:inherit; text-underline-offset:.3em; }
button,input,textarea { font:inherit; }
button,input,textarea,a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--gold-dark); outline-offset:4px; }
.site-header { display:flex; justify-content:space-between; align-items:center; gap:var(--gap); max-width:1180px; margin:auto; padding:2rem var(--gap); border-bottom:1px solid var(--line-light); }
.brand { font-family:var(--serif); font-size:1.6rem; line-height:1.15; text-decoration:none; }
.brand span { display:block; font-family:var(--sans); font-size:.6rem; letter-spacing:.4em; margin-top:.5rem; }
.back-link { display:inline-flex; align-items:center; min-height:var(--control); font-size:.85rem; }
main { max-width:1180px; margin:auto; padding:4rem var(--gap); display:grid; grid-template-columns:1fr 1.1fr; gap:4rem; align-items:start; }
.eyebrow { color:var(--gold-dark); font-size:.7rem; font-weight:600; letter-spacing:.16em; }
h1,h2 { font-family:var(--serif); font-weight:400; line-height:1.08; }
h1 { font-size:clamp(2.8rem,5vw,4.8rem); margin:var(--gap) 0; }
h1 em { font-style:normal; color:var(--gold-dark); }
h2 { font-size:2rem; margin:0 0 2rem; }
.intro>p:not(.eyebrow) { max-width:38ch; color:var(--taupe); }
.privacy-note { padding-top:var(--gap); margin-top:2rem; border-top:1px solid var(--line-light); font-size:.9rem; }
.review-card { min-width:0; padding:2rem; background:var(--paper); border:1px solid var(--line-light); }
fieldset { border:0; padding:0; margin:0 0 var(--gap); min-width:0; }
legend,.field { font-size:.9rem; font-weight:500; }
.rating-options { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.5rem; margin-top:1rem; }
.rating-options label { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:72px; border:1px solid var(--line-light); cursor:pointer; color:var(--taupe); }
.rating-options label>span[aria-hidden] { font-size:1.5rem; line-height:1.2; }
.rating-options label:has(:checked) { border-color:var(--gold-dark); background:var(--gold); color:var(--ink); }
.rating-options label:hover { border-color:var(--gold-dark); }
.rating-options label:has(:focus-visible) { outline:3px solid var(--gold-dark); outline-offset:3px; }
.rating-options input,.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.rating-scale { display:flex; justify-content:space-between; font-size:.75rem; color:var(--taupe); margin-top:.5rem; }
.field { display:block; margin-top:var(--gap); }
.optional,.helper { color:var(--taupe); font-size:.8rem; font-weight:400; }
input:not([type=radio]):not([type=checkbox]),textarea { display:block; width:100%; min-height:var(--control); border:1px solid var(--line-light); background:var(--paper); color:var(--ink); padding:.75rem; margin-top:.5rem; border-radius:0; }
textarea { resize:vertical; }
.helper { margin:.5rem 0 0; }
.consent { display:flex; gap:.75rem; align-items:flex-start; margin-top:var(--gap); font-size:.8rem; cursor:pointer; min-height:var(--control); }
.consent input { flex:none; width:20px; height:20px; accent-color:var(--gold-dark); margin:0; }
.honeypot { display:none; }
button { display:flex; justify-content:space-between; align-items:center; width:100%; min-height:var(--control); border:1px solid var(--ink); background:var(--ink); color:var(--paper); padding:.75rem 1rem; cursor:pointer; }
button:hover { background:var(--ink-soft); }
button:disabled { opacity:.7; cursor:wait; }
#review-status { font-size:.9rem; min-height:1.6em; overflow-wrap:anywhere; }
#review-status[data-error=true] { color:var(--gold-dark); font-weight:500; }
[hidden] { display:none !important; }
footer { max-width:1180px; margin:auto; padding:var(--gap); border-top:1px solid var(--line-light); display:flex; justify-content:space-between; gap:var(--gap); color:var(--taupe); font-size:.8rem; }
@media(max-width:760px) { main { grid-template-columns:1fr; gap:2rem; padding:2rem var(--gap); } .review-card { padding:var(--gap); } .intro>p:not(.eyebrow) { max-width:none; } .site-header { padding:var(--gap); } footer { flex-direction:column; padding-bottom:calc(var(--gap) + env(safe-area-inset-bottom)); } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; } }
@media(max-width:380px) { main { padding-inline:1rem; } .review-card,.site-header { padding:1rem; } .site-header { gap:1rem; } .brand { font-size:1.3rem; } }
