.listing-section[hidden], #ad-summary[hidden], #ad-order-form[hidden] { display:none; }
.listing-section h2 { margin-bottom:24px; }
.listing-top-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); gap:24px; }
.listing-top-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
#listing-top { padding:24px 0; }
#listing-top h2 { font-size:.8rem; text-transform:uppercase; letter-spacing:.12em; margin-bottom:12px; }
.listing-card--text { padding:22px; display:flex; flex-direction:column; gap:14px; }
.listing-card--text .listing-copy { white-space:pre-wrap; overflow-wrap:anywhere; font-size:1rem; margin:0; }
.listing-card--text .listing-contact { border-top:1px solid var(--line); padding-top:12px; margin-top:auto; font-weight:600; white-space:pre-wrap; overflow-wrap:anywhere; }
#listing-top .listing-card img { width:90px; height:90px; float:left; margin:0 18px 8px 0; }
#listing-top .listing-card img { width:100%; height:150px; float:none; margin:0 0 12px; }
.region-listing-grid { grid-auto-flow:row; grid-template-rows:none; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); overflow:visible; }
.region-listing-grid .listing-card { aspect-ratio:auto; min-height:260px; }
#listing-top .listing-card h3 { font-size:1.1rem; }
body.order-open { overflow:hidden; }
#order-dialog { width:min(820px,calc(100% - 24px)); max-height:90dvh; padding:32px; border:0; border-radius:20px; color:var(--ink); box-shadow:0 24px 100px #001b3d40; }
#order-dialog::backdrop { background:#091d38b8; backdrop-filter:blur(4px); }
#order-dialog .order-heading { display:flex; justify-content:space-between; align-items:start; gap:16px; }
#order-dialog .order-demo { margin:16px 0; padding:12px 15px; border-left:4px solid var(--blue); border-radius:8px; background:#eaf3fc; color:var(--navy); font-weight:600; }
#order-dialog > .button { margin-top:18px; }
#order-dialog h2 { font-size:clamp(1.5rem,4vw,2rem); margin:8px 0 12px; }
#order-close { border:0; background:var(--cream); border-radius:50%; width:42px; height:42px; flex-shrink:0; font-size:26px; cursor:pointer; }
#order-dialog fieldset { border:1px solid var(--line); border-radius:12px; padding:18px; min-width:0; margin:20px 0; }
#order-dialog legend { font-weight:700; padding:0 6px; }
.order-options { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.order-format-options,.order-date-inputs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.order-format-options .order-choice { margin-bottom:0!important; }
.order-banner-language { border-top:1px solid var(--line); padding-top:14px; margin-top:14px; }
.order-banner-language:first-child { border-top:0; padding-top:0; margin-top:0; }
.order-language-heading { display:block; margin-bottom:12px; }
#order-image-name { color:var(--muted); overflow-wrap:anywhere; }
#order-dialog label { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; font-weight:600; }
#order-dialog input:not([type=radio]):not([type=checkbox]),#order-dialog textarea { font:inherit; border:1px solid var(--line); border-radius:8px; padding:12px; width:100%; min-width:0; box-sizing:border-box; }
#order-dialog small,.order-note { font-weight:400; color:var(--muted); font-size:.85rem; }
#order-dialog .order-choice { flex-direction:row; align-items:start; font-size:.94rem; }
.order-choice input { margin-top:5px; accent-color:var(--red); width:18px; height:18px; flex-shrink:0; }
.order-month { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:16px 0; }
.order-month button,.order-back,.chosen-day { border:1px solid var(--line); padding:8px 14px; border-radius:8px; background:white; cursor:pointer; }
#order-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
#order-calendar button { min-height:44px; border:1px solid var(--line); border-radius:8px; background:white; font:inherit; cursor:pointer; }
#order-calendar button[aria-pressed=true] { background:var(--navy); color:white; border-color:var(--navy); }
#order-calendar button.is-range-start,#order-calendar button.is-range-end { outline:3px solid var(--red); outline-offset:1px; }
#order-calendar button:disabled { background:#f0f2f5; color:#969ca5; text-decoration:line-through; cursor:not-allowed; }
.calendar-weekday { text-align:center; font-size:.8rem; color:var(--muted); }
#chosen-days { display:flex; flex-wrap:wrap; gap:5px; margin-top:10px; }
.order-total { display:flex; justify-content:space-between; padding:20px 0; font-size:1.4rem; border-top:1px solid var(--line); }
#order-message { color:#ad2929; white-space:pre-wrap; }
#order-confirm p { white-space:pre-wrap; overflow-wrap:anywhere; margin:16px 0; }
#order-confirm button { margin-right:12px; }
#order-dialog [hidden] { display:none!important; }
@media(max-width:600px) { #order-dialog { padding:20px; } .order-options,.order-date-inputs { grid-template-columns:1fr; gap:0; } .order-options fieldset { margin-bottom:0!important; } .listing-top-grid { grid-template-columns:1fr; } }
.listing-card { min-width:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:white; }
.listing-card a { display:block; height:100%; text-decoration:none; padding:16px; overflow-wrap:anywhere; }
.listing-card img { width:100%; height:130px; object-fit:contain; background:var(--cream); border-radius:10px; margin-bottom:12px; }
.listing-card h3 { font-size:1.05rem; margin:8px 0; }
.listing-card p { font-size:.86rem; }
.listing-card small { color:var(--muted); }
.listing-top-grid .listing-card { border-top:4px solid var(--blue); box-shadow:var(--shadow); }
.listing-top-grid img { height:220px; }
.listing-top-grid h3 { font-size:1.5rem; }
.ad-controls { display:flex; gap:10px; justify-content:flex-end; margin-bottom:12px; }
.ad-controls button,.ad-calendar-heading button,#ad-back { padding:10px 18px; border:1px solid var(--line); border-radius:10px; background:white; cursor:pointer; color:var(--navy); }
.listing-standard-grid { display:grid; grid-auto-flow:column; grid-template-rows:auto; grid-auto-columns:calc((100% - 64px)/5); gap:16px; overflow-x:auto; overflow-anchor:none; padding-bottom:12px; }
.listing-standard-grid .listing-card { scroll-snap-align:start; }
.listing-standard-grid .listing-card { width:100%; aspect-ratio:1; min-height:270px; padding:18px; gap:10px; }
.listing-card--text .listing-copy { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; font-size:.88rem; line-height:1.5; }
.listing-card--text .listing-contact { font-size:.78rem; line-height:1.4; max-height:3.8em; overflow:hidden; }
.listing-more { border:0; background:none; padding:0; color:var(--blue); text-align:left; font:inherit; font-size:.82rem; font-weight:700; cursor:pointer; }
.listing-detail { width:min(620px,calc(100% - 32px)); max-height:85dvh; overflow:auto; border:0; border-radius:18px; padding:28px; color:var(--ink); }
.listing-detail::backdrop { background:#091d38b8; backdrop-filter:blur(4px); }
.listing-detail p { white-space:pre-wrap; overflow-wrap:anywhere; margin:20px 0; }
.hero { display:block; min-height:0; padding-bottom:36px; }
.hero__content { padding:64px 0 36px; }
.hero h1 { font-size:clamp(2.6rem,5vw,4.5rem); }
.hero #listing-top { padding:0; background:transparent; }
.hero #listing-top h2 { color:#fff; }
.hero .listing-card { background:rgba(255,255,255,.96); color:var(--ink); box-shadow:none; border-top:3px solid #ff8985; padding:18px 22px; gap:10px; }
.hero .listing-card p { color:var(--ink); margin:0; max-width:none; }
.hero .listing-copy { -webkit-line-clamp:3; font-size:.9rem; }
.hero .listing-contact { font-size:.8rem; margin-top:auto; }
#order-calendar button { padding:5px 2px; min-height:60px; }
#order-calendar .calendar-slots { display:block; font-size:.66rem; line-height:1.3; color:inherit; font-weight:500; text-decoration:none; }
#order-calendar button:disabled { text-decoration:none; }
@media(max-width:650px) { .hero__content { padding:40px 0 28px; } .hero .listing-card { padding:16px; } .listing-standard-grid .listing-card { min-height:280px; } }
.ad-order { max-width:900px; }
.ad-order h1,.ad-order p,.ad-order h2 { margin-bottom:20px; }
.ad-order fieldset { border:0; padding:0; min-width:0; }
.ad-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:24px 0; }
.ad-order label { display:flex; flex-direction:column; gap:7px; min-width:0; font-weight:600; }
.ad-order input,.ad-order select,.ad-order textarea { width:100%; min-width:0; padding:12px; border:1px solid var(--line); border-radius:8px; font:inherit; background:white; color:var(--ink); }
.ad-wide { grid-column:1/-1; }
.ad-order .ad-consent { flex-direction:row; align-items:flex-start; margin:24px 0; font-weight:400; }
.ad-consent input { width:20px; flex-shrink:0; margin-top:6px; }
.ad-calendar-heading { display:flex; align-items:end; justify-content:space-between; gap:12px; margin:24px 0 12px; }
.ad-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; margin:20px 0; }
.ad-calendar small { text-align:center; }
.ad-day { padding:12px 2px; border:1px solid #a2c8b9; border-radius:8px; background:#e4f3eb; color:#174d36; cursor:pointer; font:inherit; font-size:.9rem; }
.ad-day-low { background:#fff1c9; border-color:#d7b767; color:#684900; }
.ad-day:disabled { background:#eceef0; color:#70777d; border-color:#d6d9dd; cursor:not-allowed; }
.ad-day-selected { outline:3px solid var(--blue); outline-offset:-3px; }
.ad-price { padding:20px; border-radius:12px; background:var(--cream); font-weight:700; }
.ad-price:empty { display:none; }
.ad-order .ad-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.ad-order button:disabled { opacity:.55; cursor:not-allowed; }
#ad-summary-content { overflow-wrap:anywhere; }
#ad-summary-content .listing-card { margin:20px 0; max-width:480px; }
#ad-message { overflow-wrap:anywhere; color:var(--blue-dark); }
@media(max-width:1050px) { .listing-standard-grid { grid-auto-columns:calc((100% - 32px)/3); } }
@media(max-width:650px) { .listing-standard-grid { grid-auto-columns:80%; } .ad-form-grid { grid-template-columns:1fr; } .ad-day { font-size:.75rem; } .ad-calendar-heading { gap:6px; } .ad-calendar-heading button { padding:10px; } }
