.portal { padding-block: clamp(2.4rem,5vw,5.3rem); max-width: 1060px; }
.portal h1 { font-size: clamp(3rem,7vw,5.6rem); margin: 0 0 2rem; }
.portal h1 em {white-space: normal;}
.portal h2 {font-size: clamp(1.8rem,3.2vw,2.7rem);margin-bottom: .7rem;}
.portal h3 {margin-top: 1.3rem;}
.home-link {margin-left:auto;color:var(--wine);}
.portal #feedback:not(:empty), .portal .receipt {padding:1rem 1.2rem; background:#f2e7e5; margin-bottom:1rem; border-left:3px solid var(--rose);}
.portal section {margin-bottom:2rem;}
.portal .columns {display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);}
.portal .panel, .portal .order {border-top:1px solid var(--rule); padding-block:1.3rem;}
.portal p {max-width:65ch;margin-bottom:.75rem;}
.portal label {display:block;margin:.65rem 0;font-weight:550;}
.portal input:not([type=checkbox]), .portal select {width:100%;font:inherit;padding:.55rem .7rem;border:1px solid #aa9994;border-radius:3px;background:#fffdf8;color:var(--ink);}
.portal code, .portal .share-url {overflow-wrap:anywhere;user-select:all;}
.portal .actions {display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-block:1rem;}
.portal .button {font-size:1rem;min-height:44px;padding:.65rem .9rem;}
.portal .button:disabled {opacity:.65;}
.portal .products {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem 1rem;}
.portal .products label {display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:1rem;}
.portal .products input {width:5.3rem;}
.portal .meta {color:var(--muted);font-size:1rem;}
.portal .order summary {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;color:var(--wine);font-weight:650;}
.portal .order summary::after {content:'+';font-size:1.2rem;}
.portal .order[open] summary::after {content:'−';}
.portal .order .stage {margin-left:auto;}
.portal .order li {margin-bottom:.3rem;}
.portal .order video {max-width:100%;max-height:27rem;display:block;background:#272323;}
.portal .text-link {color:var(--wine);text-decoration:underline;}
.portal .share-url {display:block;}
@media(max-width:46.25em){.portal .columns,.portal .products {grid-template-columns:1fr;}.portal .columns{gap:1rem;}}
