.offer-hero, .offer-enquire { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,80px); align-items:center; }
.offer-hero { padding-block:clamp(40px,7vw,96px); }
.offer-hero h1 { font-size:clamp(2.6rem,5vw,5rem); max-width:14ch; }
.offer-hero figure { margin:0; border-radius:20px; overflow:hidden; background:#242039; color:white; }
.offer-hero figcaption { padding:12px 18px; }
.offer-grid,.offer-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space); margin-block:24px; }
.offer-service,.offer-project div,.offer-steps li,.offer-form { padding:clamp(16px,2vw,28px); }
.offer-service { display:flex; flex-direction:column; color:var(--ink); }
.offer-service strong { margin-top:auto; color:var(--brand); }
.offer-project { overflow:hidden; padding:0; }
.offer-project img { width:100%; }
.offer-steps { padding-left:1.5rem; }
.offer-steps li::marker { color:var(--brand); font-weight:700; }
.offer-enquire { align-items:start; }
.offer-page [id] { scroll-margin-top:calc(var(--head-bottom) + 16px); }
.offer-form fieldset { margin:0; padding:0; border:0; min-width:0; }
.offer-form legend { font-size:1.25rem; font-weight:700; margin-bottom:1rem; }
.offer-form label { display:grid; gap:4px; margin-bottom:16px; }
.offer-form :is(input,select,textarea) { width:100%; padding:10px; border:1px solid var(--line); border-radius:8px; background:white; }
.offer-form [data-preview] { white-space:pre-line; overflow-wrap:anywhere; }
.offer-page details { padding:14px 0; border-bottom:1px solid var(--line); }
.offer-page summary { cursor:pointer; font-weight:600; }
.offer-page details p { margin:12px 0 0; }
@media(max-width:760px) {
  .offer-hero,.offer-enquire,.offer-steps,.offer-grid { grid-template-columns:minmax(0,1fr); }
  .offer-steps { gap:0; }
}

.offer-dialog { width:min(520px,calc(100% - 24px)); max-height:calc(100dvh - 24px); margin:auto; padding:clamp(18px,4vw,32px); overflow:auto; overscroll-behavior:contain; border:1px solid var(--line); border-radius:20px; color:var(--ink); box-shadow:0 20px 70px #15102840; }
.offer-dialog::backdrop { background:rgb(22 15 39 / .65); }
body:has(.offer-dialog[open]) { overflow:hidden; }
.offer-dialog header { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.offer-dialog header p { margin:0; }
.offer-dialog h2 { margin-block:12px 4px; }
.offer-dialog .offer-form { padding:0; }
.offer-ticket { position:relative; display:grid; place-content:center; text-align:center; min-height:108px; margin:16px 0; overflow:hidden; border-radius:14px; background:linear-gradient(120deg,#fbebb7,#f4d295); color:#493414; }
.offer-ticket b { font-size:1.6rem; }
.offer-ticket canvas { position:absolute; inset:0; width:100%; height:100%; touch-action:none; cursor:crosshair; }
.offer-dialog [hidden] { display:none; }
.offer-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr)); gap:12px; align-items:stretch; }
.offer-actions .btn { min-width:0; white-space:normal; text-align:center; justify-content:center; }
.offer-signin { grid-column:1 / -1; justify-self:start; padding-block:4px; }
.offer-dialog { overflow-wrap:anywhere; }
.offer-dialog [data-close] { flex:none; }
.offer-dialog [data-status]:not(:empty) { margin:12px 0 0; }
.offer-confetti { position:absolute; left:50%; top:50%; width:5px; height:9px; border-radius:2px; pointer-events:none; animation:offer-burst .85s ease-out both; }
.offer-ticket.celebrating b { position:relative; z-index:1; animation:offer-prize .55s ease-out both; }
@keyframes offer-burst {
  from { opacity:0; transform:scale(.25); }
  15% { opacity:1; }
  to { opacity:0; transform:translate(var(--dx),var(--dy)) rotate(190deg); }
}
@keyframes offer-prize {
  from { opacity:.35; transform:scale(.84); }
  60% { transform:scale(1.08); }
  to { opacity:1; transform:scale(1); }
}
@media (prefers-reduced-motion:reduce) {
  .offer-confetti { display:none; }
  .offer-ticket.celebrating b { animation:none; }
}
