/* Property search — extends wealthwithinwalls.com's own stylesheet
   (/css/style.css loads first: --black, --white, --hair, --display,
   --body, --max, --pad, .btn, .field, .contact all come from there).
   Black and white only; the photographs are the colour. Flat: no card
   borders, no shadows, no radius. See reference/docs/idx-design.md. */

:root { --ash:#6a6a6a; --smoke:#b8b8b8; --graphite:#3f3f3f; --haze:#ededed; }

.ix-wrap { max-width:var(--max); margin-inline:auto; padding-inline:var(--pad); }
/* Hidden means hidden: .btn and friends set display, which would otherwise
   show a passkey button on a browser that cannot use one. */
[hidden] { display:none !important; }
.ix-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---- the black search band ------------------------------------------- */
.ix-hero { background:var(--black); color:var(--white); padding:clamp(2.2rem,5vw,4.2rem) 0 clamp(1.6rem,3.5vw,2.6rem); }
.ix-hero h1 { color:var(--white); font-size:clamp(2rem,1.25rem + 2.6vw,3.6rem); letter-spacing:-.045em;
  line-height:1.04; max-width:24ch; margin:0 0 clamp(1.4rem,3vw,2.2rem); text-wrap:balance; }
.ix-hero :focus-visible { outline-color:var(--white); }

.ix-searchrow { display:flex; align-items:stretch; max-width:58rem; border-bottom:1px solid var(--smoke); }
.ix-q { flex:1; min-width:0; background:transparent; border:0; color:var(--white); border-radius:0;
  font:300 clamp(1.15rem,1rem + .7vw,1.55rem)/1.3 var(--body); padding:.75rem 0; min-height:58px; }
.ix-q::placeholder { color:var(--smoke); opacity:1; }
.ix-q:focus { outline:none; }
.ix-searchrow:focus-within { border-bottom-color:var(--white); box-shadow:0 1px 0 var(--white); }
.ix-go { flex:none; background:var(--white); color:var(--black); border:0; border-radius:0; cursor:pointer;
  font:400 1rem/1 var(--body); letter-spacing:.02em; padding:0 clamp(1.1rem,2.5vw,2rem); min-height:58px; }
.ix-go:hover { background:var(--haze); }

.ix-quick { display:flex; flex-wrap:wrap; align-items:flex-end; gap:1rem clamp(1.25rem,3vw,2.5rem); margin-top:1.6rem; }
.ix-sel { display:grid; gap:.3rem; }
.ix-sel > span { font-size:.85rem; color:var(--smoke); }
.ix-sel select, .ix-sel input {
  appearance:none; -webkit-appearance:none; border-radius:0; background-color:transparent; color:var(--white);
  border:0; border-bottom:1px solid #8c8c8c; min-height:44px; padding:.4rem 1.7rem .4rem 0;
  font:400 1rem/1.3 var(--body); min-width:8.5rem; }
.ix-sel select { cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.3'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .15rem center; }
.ix-sel input { padding-right:0; width:9rem; }
.ix-sel select:hover, .ix-sel input:hover { border-bottom-color:var(--white); }
.ix-sel option { color:var(--black); background:var(--white); }

/* Phones: the filters fold behind one button (a name-less checkbox,
   so it works without JavaScript and is never sent with the search). */
.ix-ftoggle { position:absolute; opacity:0; width:1px; height:1px; pointer-events:none; }
.ix-fbtn { display:none; }
@media (max-width:719px) {
  .ix-fbtn { display:inline-flex; align-items:center; gap:.6rem; min-height:48px; margin-top:1rem; cursor:pointer;
    font:400 1.02rem/1 var(--body); color:var(--white); border-bottom:1px solid var(--smoke); }
  .ix-fbtn::after { content:""; width:9px; height:9px; border-right:1.3px solid currentColor; border-bottom:1.3px solid currentColor;
    transform:translateY(-3px) rotate(45deg); }
  .ix-ftoggle:checked + .ix-fbtn::after { transform:translateY(2px) rotate(-135deg); }
  .ix-ftoggle:focus-visible + .ix-fbtn { outline:2px solid var(--white); outline-offset:3px; }
  .ix-quick { display:none; }
  .ix-ftoggle:checked ~ .ix-quick { display:flex; }
  .ix-quick .ix-sel { flex:1 1 9rem; }
  .ix-quick .ix-sel select { width:100%; }
}

/* "Advanced search" — a disclosure, so it works without JavaScript. */
.ix-more { flex-basis:100%; }
.ix-more > summary { display:inline-flex; align-items:center; gap:.6rem; min-height:44px; cursor:pointer;
  list-style:none; font:400 1rem/1 var(--body); color:var(--white); border-bottom:1px solid transparent; }
.ix-more > summary::-webkit-details-marker { display:none; }
.ix-more > summary::after { content:""; width:9px; height:9px; border-right:1.3px solid currentColor;
  border-bottom:1.3px solid currentColor; transform:translateY(-3px) rotate(45deg); transition:transform .15s; }
.ix-more[open] > summary::after { transform:translateY(2px) rotate(-135deg); }
.ix-more > summary:hover { border-bottom-color:var(--white); }
.ix-panel { display:grid; gap:1.5rem clamp(1.5rem,3vw,3rem); grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
  padding-top:1.6rem; margin-top:1rem; border-top:1px solid #2e2e2e; }
.ix-panel fieldset { border:0; padding:0; margin:0; min-width:0; display:grid; gap:.9rem; align-content:start; }
.ix-panel legend { font-family:var(--display); font-size:1.25rem; letter-spacing:-.02em; padding:0; margin-bottom:.4rem; }
/* Inside the panel every box fills its column, so the lines align. */
.ix-panel .ix-sel input, .ix-panel .ix-sel select { width:100%; min-width:0; }
.ix-pair { display:flex; gap:1rem; }
.ix-pair .ix-sel input, .ix-pair .ix-sel select { width:100%; min-width:0; }
.ix-check { display:flex; align-items:center; gap:.7rem; min-height:44px; cursor:pointer; }
.ix-check input { flex:none; width:20px; height:20px; accent-color:var(--white); margin:0; }
.ix-check__t { flex:1; }
/* How many of the current results have it — what ticking it would leave. */
.ix-n { color:var(--smoke); font-size:.9rem; font-variant-numeric:tabular-nums; padding-left:.5rem; }
.ix-check.is-off { color:#8c8c8c; cursor:default; }
.ix-check.is-off .ix-n { color:#8c8c8c; }
.ix-checks { display:grid; column-gap:1.5rem; }
@media (min-width:1000px) {
  .ix-panel .ix-wide { grid-column:span 2; }
  .ix-wide .ix-checks { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
/* The button stays in reach while a long panel scrolls past. */
.ix-actions { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:1rem 1.5rem; align-items:center;
  position:sticky; bottom:0; z-index:2; background:var(--black); padding:1rem 0; border-top:1px solid #2e2e2e; }
.ix-apply { background:var(--white); color:var(--black); border:0; border-radius:0; cursor:pointer; min-height:52px;
  padding:0 2rem; font:400 1rem/1 var(--body); }
.ix-apply:hover { background:var(--haze); }
.ix-clear { color:var(--smoke); font-size:.98rem; }
.ix-clear:hover { color:var(--white); }

/* ---- results ----------------------------------------------------------- */
.ix-results { padding:clamp(1.8rem,3.5vw,2.8rem) 0 clamp(3rem,6vw,5rem); }
.ix-bar { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1rem 2rem;
  margin-bottom:clamp(1.6rem,3vw,2.4rem); }
.ix-total { font-family:var(--display); font-size:clamp(1.5rem,1.25rem + .9vw,2rem); letter-spacing:-.035em; margin:0; }
.ix-sort { display:flex; align-items:center; gap:.7rem; font-size:.95rem; }
.ix-sort select { appearance:none; -webkit-appearance:none; border:0; border-bottom:1px solid #767676; border-radius:0;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000000' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right .15rem center;
  font:400 1rem/1.3 var(--body); min-height:44px; padding:.35rem 1.7rem .35rem 0; cursor:pointer; color:var(--black); }

.ix-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr;
  gap:clamp(2.4rem,4vw,3.6rem) clamp(1.25rem,2.6vw,2.6rem); }
@media (min-width:720px) { .ix-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1800px) { .ix-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }

.ix-card { min-width:0; }
.ix-card__link { display:block; color:inherit; text-decoration:none; }
.ix-card__media { position:relative; aspect-ratio:3 / 2; background:var(--haze); overflow:hidden; }
@media (max-width:719px) { .ix-card__media { margin-inline:calc(var(--pad) * -1); } }
.ix-card__media img { width:100%; height:100%; object-fit:cover; }
.ix-noimg { display:grid; place-items:center; width:100%; height:100%; color:var(--ash); font-size:.95rem; }
.ix-tag { position:absolute; left:0; top:0; background:var(--black); color:var(--white);
  font:400 .85rem/1 var(--body); letter-spacing:.01em; padding:.6rem .85rem; }
.ix-card__price { font-family:var(--display); font-size:clamp(1.65rem,1.35rem + .8vw,2rem); letter-spacing:-.035em;
  line-height:1.1; margin:1.05rem 0 .3rem; }
.ix-was { font-family:var(--body); font-size:1.05rem; color:var(--ash); margin-left:.7rem; letter-spacing:0; }
.ix-was s { text-decoration-thickness:1px; }
.ix-card__addr { font-size:1.05rem; line-height:1.45; margin:0 0 .45rem; }
.ix-card__link:hover .ix-card__addr { text-decoration:underline; text-underline-offset:.2em; }
.ix-facts { display:flex; flex-wrap:wrap; gap:.15rem 1.15rem; font:400 1.05rem/1.45 var(--body); margin:0 0 .55rem; }
/* §16.3.2: the listing firm is shown in type no smaller than the listing
   data around it — 1.05rem, the same as the address and the facts; on the
   listing page 1.1rem, the size of the description. */
.ix-attrib { font:300 1.05rem/1.45 var(--body); color:var(--ash); margin:0; }
.ix-nowrap { white-space:nowrap; }
.ix-attrib--detail { font-size:1.1rem; line-height:1.55; }
.ix-attrib--detail:first-of-type { margin-top:1.8rem; }
/* §16.2.7: the brokerage, named on every page of the search. */
.ix-presenter { font:300 1rem/1.4 var(--body); color:var(--smoke); margin:0 0 1.4rem; }
.ix-band .ix-presenter { margin:1.3rem 0 0; color:#dcdcdc; }

/* The filters in use, above the results: each one tap from gone. */
.ix-chips { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1.2rem;
  margin:calc(clamp(1.6rem,3vw,2.4rem) * -.45) 0 clamp(1.6rem,3vw,2.2rem); }
.ix-chips ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.ix-chips li a { display:inline-flex; align-items:center; gap:.6rem; min-height:44px; padding:0 .8rem 0 1rem;
  border:1px solid var(--black); color:var(--black); text-decoration:none; font:400 .98rem/1.2 var(--body); }
.ix-chips li a:hover { background:var(--black); color:var(--white); }
.ix-x { font-size:1.3rem; line-height:1; }
.ix-clearall { display:inline-flex; align-items:center; min-height:44px; color:var(--black); font-size:.98rem;
  text-decoration:underline; text-underline-offset:.2em; }

.ix-empty { max-width:44rem; padding:2rem 0 1rem; }
.ix-empty h2 { font-size:clamp(1.6rem,1.3rem + .9vw,2.1rem); }
.ix-empty ul { list-style:none; padding:0; margin:1.2rem 0 0; display:flex; flex-wrap:wrap; gap:.8rem 1.5rem; }

.ix-pages { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.4rem; margin-top:clamp(2.6rem,5vw,4rem); }
.ix-pages a, .ix-pages span { display:inline-grid; place-items:center; min-width:44px; min-height:44px; padding:0 .6rem;
  text-decoration:none; font-size:1rem; }
.ix-pages a:hover { text-decoration:underline; text-underline-offset:.2em; }
.ix-pages [aria-current] { background:var(--black); color:var(--white); }
.ix-pages .ix-step { padding:0 1rem; }

.ix-legal { margin-top:clamp(3rem,6vw,4.5rem); padding-top:1.6rem; border-top:1px solid var(--hair);
  font-size:.98rem; line-height:1.6; color:#444; }
.ix-legal p { max-width:84ch; margin:0 0 .7em; }

/* ---- the listing page ---------------------------------------------------- */
.ix-gallery { display:grid; gap:4px; background:var(--black); grid-template-columns:1fr; }
.ix-gallery a { position:relative; display:block; overflow:hidden; background:#111; }
.ix-gallery img { width:100%; height:100%; object-fit:cover; }
.ix-gallery a:first-child { aspect-ratio:3 / 2; }
.ix-gallery a:not(:first-child) { display:none; }
@media (min-width:900px) {
  .ix-gallery { grid-template-columns:minmax(0,2fr) minmax(0,1fr); grid-template-rows:1fr 1fr; height:min(74vh,780px); }
  .ix-gallery a:first-child { grid-row:1 / span 2; aspect-ratio:auto; }
  .ix-gallery a:not(:first-child) { display:block; }
}
.ix-gallery a:focus-visible { outline:2px solid var(--white); outline-offset:-6px; }
.ix-allphotos { position:absolute; right:1rem; bottom:1rem; background:var(--white); color:var(--black);
  font:400 .95rem/1 var(--body); padding:.8rem 1.1rem; }
.ix-allphotos--wide { display:none; }
@media (min-width:900px) { .ix-allphotos--phone { display:none; } .ix-allphotos--wide { display:block; } }
/* Fewer than three photos: no empty black cells on wide screens. */
@media (min-width:900px) {
  .ix-gallery--1 { grid-template-columns:1fr; grid-template-rows:1fr; }
  .ix-gallery--1 a:first-child { grid-row:auto; }
  .ix-gallery--2 { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:1fr; }
  .ix-gallery--2 a:first-child { grid-row:auto; }
}

/* The one memorable thing: the price, large, set tight on black under the photographs. */
.ix-band { background:var(--black); color:var(--white); padding:clamp(2rem,4vw,3.4rem) 0; }
.ix-band .ix-wrap { display:grid; gap:1.6rem 3rem; grid-template-columns:1fr; }
@media (min-width:1000px) { .ix-band .ix-wrap { grid-template-columns:minmax(0,1fr) auto; align-items:end; } }
.ix-price { font-family:var(--display); font-size:clamp(2.7rem,1.7rem + 3.6vw,4.75rem); letter-spacing:-.05em;
  line-height:.98; margin:0 0 .55rem; }
.ix-band h1 { color:var(--white); font-size:clamp(1.25rem,1.05rem + .7vw,1.65rem); letter-spacing:-.02em; margin:0 0 1.2rem; }
.ix-bigfacts { display:flex; flex-wrap:wrap; gap:.5rem 2.2rem; margin:0; font:300 1.08rem/1.3 var(--body); color:#dcdcdc; }
.ix-bigfacts b { font:400 1.55rem/1 var(--display); color:var(--white); letter-spacing:-.02em; margin-right:.4rem; }
.ix-band__cta { display:flex; flex-wrap:wrap; gap:.8rem; }
.ix-btn { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 1.6rem;
  font:400 1rem/1 var(--body); letter-spacing:.01em; text-decoration:none; border:1px solid var(--white); }
.ix-btn--solid { background:var(--white); color:var(--black); }
.ix-btn--solid:hover { background:var(--haze); }
.ix-btn--line { color:var(--white); }
.ix-btn--line:hover { background:var(--white); color:var(--black); }
.ix-band .ix-tag { position:static; display:inline-block; background:var(--white); color:var(--black); margin-bottom:1.1rem; }

.ix-body { display:grid; gap:clamp(2.4rem,5vw,4rem); padding:clamp(2.4rem,5vw,4.2rem) 0; grid-template-columns:minmax(0,1fr); }
@media (min-width:1000px) { .ix-body { grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); } }
.ix-about h2, .ix-detail h2 { font-size:clamp(1.6rem,1.35rem + .8vw,2rem); margin-bottom:.8em; }
.ix-about p { font-size:1.1rem; line-height:1.72; max-width:68ch; white-space:pre-line; }
.ix-detail dl { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:.85rem 1.4rem; margin:0 0 2rem; }
.ix-detail dt { color:var(--ash); font-size:1rem; }
.ix-detail dd { margin:0; font-weight:400; font-size:1.05rem; }
.ix-detail h3 { font-family:var(--display); font-size:1.2rem; letter-spacing:-.02em; margin:0 0 1rem; }
.ix-maplink { display:inline-block; margin-top:.2rem; }

.ix-ask .contact__panel { display:flex; align-items:flex-end; padding:clamp(1.6rem,4vw,3rem) var(--pad); color:var(--white); }
.ix-ask .contact__panel p { font-family:var(--display); font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem); letter-spacing:-.03em;
  line-height:1.2; margin:0; max-width:14ch; }
.ix-ask h2 { margin-bottom:.4rem; }
.ix-ask .ix-lede { margin-bottom:1.6rem; max-width:38rem; }
.ix-consent { display:flex; gap:.75rem; align-items:flex-start; max-width:38rem; margin:0 0 1.4rem; font-size:.88rem; line-height:1.5; }
.ix-consent input { width:20px; height:20px; margin:.15rem 0 0; flex:none; accent-color:var(--black); }
.ix-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* Phones: the two actions stay in reach while reading the listing, and
   stop at its end — sticky, not fixed — so they never cover her footer. */
.ix-sticky { display:none; }
@media (max-width:759px) {
  .ix-band__cta { display:none; }
  .ix-sticky { display:flex; position:sticky; bottom:0; z-index:20; background:var(--black);
    padding:.6rem var(--pad) calc(.6rem + env(safe-area-inset-bottom)); gap:.6rem; }
  .ix-sticky .ix-btn { flex:1; min-height:48px; }
}

/* Full-screen photo viewer. */
.ix-lightbox { width:100vw; height:100vh; max-width:none; max-height:none; margin:0; padding:0; border:0;
  background:var(--black); color:var(--white); }
.ix-lightbox::backdrop { background:var(--black); }
.ix-lightbox[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.ix-lb-top { display:flex; justify-content:space-between; align-items:center; padding:1rem var(--pad); }
/* Absolutely placed: a percentage max-height does not resolve inside a
   grid cell, so the photo used to grow under the buttons on desktop. */
.ix-lb-stage { position:relative; min-height:0; overflow:hidden; }
.ix-lb-stage img { position:absolute; inset:0; margin:auto; max-width:calc(100% - 2 * var(--pad)); max-height:100%;
  width:auto; height:auto; object-fit:contain; }
.ix-lb-nav { display:flex; justify-content:center; gap:1rem; padding:1rem var(--pad) 1.4rem; }
.ix-lb-btn { background:transparent; color:var(--white); border:1px solid #5a5a5a; border-radius:0; min-width:52px; min-height:52px;
  padding:0 1.2rem; font:400 1rem/1 var(--body); cursor:pointer; }
.ix-lb-btn:hover { border-color:var(--white); }
.ix-lightbox :focus-visible { outline:2px solid var(--white); outline-offset:3px; }

.ix-photos { display:grid; gap:4px; padding:4px 0 3rem; background:var(--black); }
.ix-photos img { width:100%; }

/* ---- visitor accounts ------------------------------------------------------- */
/* The strip above every search page: the account, or the way to one. */
.ix-acct { background:var(--white); border-bottom:1px solid var(--hair); }
.ix-acct .ix-wrap { display:flex; justify-content:flex-end; align-items:center; gap:0 1.6rem; }
.ix-acct a { display:inline-flex; align-items:center; min-height:44px; font:400 .95rem/1 var(--body);
  color:var(--black); text-decoration:none; }
.ix-acct a:hover { text-decoration:underline; text-underline-offset:.2em; }
.ix-count { display:inline-grid; place-items:center; min-width:1.6em; height:1.6em; padding:0 .3em; margin-left:.4em;
  background:var(--black); color:var(--white); font-size:.8rem; }

/* Save: a heart over a card's photo; a labelled button on a listing. */
.ix-card { position:relative; }
.ix-heart { position:absolute; top:.6rem; right:.6rem; margin:0; z-index:2; }
@media (max-width:719px) { .ix-card > .ix-heart { right:calc(.6rem - var(--pad)); } }
.ix-heart button, .ix-save button { display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  border-radius:0; cursor:pointer; }
.ix-heart button { width:44px; height:44px; padding:0; background:var(--white); color:var(--black); border:0; }
.ix-heart button:hover { background:var(--haze); }
.ix-heart button:focus-visible { outline:2px solid var(--black); outline-offset:2px; }
.ix-heart svg, .ix-save svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.6; }
/* Saved: the heart turns red (Paul, 2026-10-20). */
.ix-heart [aria-pressed="true"] svg, .ix-save [aria-pressed="true"] svg { fill:#e0245e; stroke:#e0245e; }
.ix-save { margin:0; }
.ix-save button { min-height:52px; padding:0 1.4rem; background:transparent; color:var(--white);
  border:1px solid var(--white); font:400 1rem/1 var(--body); }
.ix-save button:hover { background:var(--white); color:var(--black); }
.ix-sticky .ix-heart { position:static; }
.ix-sticky .ix-heart button { width:48px; height:48px; background:transparent; color:var(--white); border:1px solid var(--white); }

/* Account pages: a slim black band and a narrow column. */
.ix-hero--slim { padding:clamp(1.8rem,4vw,3rem) 0 clamp(1.4rem,3vw,2.2rem); }
.ix-hero--slim h1 { margin-bottom:.6rem; }
.ix-acct-body { padding:clamp(2rem,4vw,3.4rem) 0 clamp(3rem,6vw,5rem); }
.ix-narrow { max-width:38rem; }
.ix-join { display:grid; gap:0; max-width:38rem; }
.ix-two { display:grid; grid-template-columns:1fr 1fr; gap:0 1rem; }
@media (max-width:479px) { .ix-two { grid-template-columns:1fr; } }
.ix-hint { font-size:.88rem; color:var(--ash); margin:.2rem 0 0; }
.ix-error { border-left:3px solid #b3261e; background:#fdf3f2; padding:.85rem 1rem; margin:0 0 1.3rem; }
.ix-ok { border-left:3px solid var(--black); background:var(--haze); padding:.85rem 1rem; margin:0 0 1.6rem; }
.ix-fine { font-size:.88rem; color:var(--ash); margin:1rem 0 0; }
.ix-switch { margin:1.8rem 0 0; }
.ix-linkbtn { background:none; border:0; padding:0; min-height:24px; font:inherit; color:inherit; cursor:pointer;
  text-decoration:underline; text-underline-offset:.2em; }
.ix-me { display:grid; grid-template-columns:minmax(0,9rem) minmax(0,1fr); gap:.8rem 1.4rem; margin:0 0 2.4rem; }
.ix-me dt { color:var(--ash); }
.ix-me dd { margin:0; }
.ix-h2 { font-size:clamp(1.35rem,1.2rem + .5vw,1.6rem); letter-spacing:-.02em; margin:2.2rem 0 1rem; }
.ix-h3 { font-size:1.15rem; letter-spacing:-.01em; margin:1.8rem 0 .7rem; }
.ix-signouts { display:flex; flex-wrap:wrap; gap:.4rem 2rem; margin-top:2.4rem; }
.ix-signouts .ix-signout { margin-top:0; }
.ix-signout { margin-top:2.4rem; }
/* A field that cannot change yet reads as plain text, not as a broken box. */
.ix-join input[readonly] { background:var(--haze); color:#444; }
.ix-gone { list-style:none; padding:0; margin:0 0 2rem; display:grid; gap:.4rem; }
.ix-gone li { display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; align-items:center; min-height:44px; }
.ix-gone form { margin:0; }
.ix-passkey { margin:0 0 1.6rem; max-width:38rem; }
.ix-passkey .ix-hint:empty { display:none; }
.ix-or { margin:1.4rem 0 0; color:var(--ash); font-size:.95rem; }
.ix-keys { list-style:none; padding:0; margin:0 0 1rem; display:grid; gap:.3rem; }
.ix-keys li { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 1.2rem; min-height:44px; }
.ix-keys form { margin:0; }
.ix-me-saved { margin:0 0 .4rem; }
.ix-consent-state { max-width:38rem; }

/* The wall: the listing's summary, then the sign-up form. */
.ix-wall__photo { height:min(48vh,520px); background:var(--black); overflow:hidden; }
.ix-wall__photo img { width:100%; height:100%; object-fit:cover; }
.ix-wall__join { padding:clamp(2.4rem,5vw,4.2rem) 0; }
.ix-wall__grid { display:grid; gap:2rem clamp(2rem,5vw,4.5rem); grid-template-columns:minmax(0,1fr); }
@media (min-width:900px) { .ix-wall__grid { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); align-items:start; } }
.ix-wall__why h2 { font-size:clamp(1.7rem,1.3rem + 1.4vw,2.6rem); letter-spacing:-.035em; line-height:1.08; margin:0 0 1rem; }
.ix-wall__why p { font-size:1.08rem; line-height:1.6; max-width:34rem; }

@media (prefers-reduced-motion:reduce) { .ix-more > summary::after { transition:none; } }
