:root { --paper:#faf8f5; --ink:#302c2c; --muted:#78716d; --line:#e5ded8; --accent:#9d686c; --blush:#f2e3df; --serif:'Libre Caslon Display',Georgia,serif; --sans:'DM Sans',Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:25px; }
body { margin:0; color:var(--ink); background:var(--paper); font:14px/1.5 var(--sans); }
button,input,select { font:inherit; color:inherit; }
button,a { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; border:0; }
a { color:inherit; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
input[type=checkbox],input[type=radio] { accent-color:var(--accent); }
h1,h2,h3,h4,p { margin-top:0; }
.preview-bar { background:#eee9e4; color:#756b66; text-align:center; padding:7px 15px; font-size:10px; letter-spacing:1px; }
.preview-bar span { padding:0 8px; }
.header { max-width:1440px; margin:auto; padding:23px 5%; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.brand { display:flex; gap:11px; align-items:center; text-decoration:none; font-size:18px; font-weight:550; letter-spacing:-.4px; line-height:1.2; }
.brand small { display:block; color:#958980; font-size:8px; font-weight:400; letter-spacing:1.3px; margin-top:6px; }
.brand-mark { width:30px; height:34px; color:var(--accent); }
.brand-mark svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.3; }
.header nav { display:flex; gap:28px; align-items:center; font-size:12px; }
.header nav a { text-decoration:none; }
.text-button { background:none; padding:0; }
.saved-button { display:flex; align-items:center; gap:8px; padding:10px 13px; border:1px solid var(--line); border-radius:5px; background:white; font-size:12px; }
.saved-button>span:first-child { font:22px/16px Arial,sans-serif; }
#saved-count { background:#f2e9e6; color:#8a5b60; min-width:22px; text-align:center; border-radius:50%; font-size:10px; padding:3px 5px; }
.hero { max-width:1440px; margin:auto; padding:45px 5% 39px; display:grid; grid-template-columns:1.5fr 1fr; gap:50px; align-items:center; }
.eyebrow { font-size:10px; letter-spacing:1.7px; font-weight:500; color:#8e6c6d; margin:0 0 18px; }
h1 { font:400 65px/1.04 var(--serif); letter-spacing:-.7px; margin-bottom:20px; }
h1 em { color:var(--accent); font-weight:400; }
.hero-description { color:#766f6b; font-size:14px; line-height:1.75; margin-bottom:23px; }
.primary-button { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; padding:13px 18px; border-radius:4px; background:var(--ink); color:white; font-size:12px; text-decoration:none; }
.primary-button:hover { background:#514343; }
.primary-button .link-chevron { width:14px; height:14px; color:currentColor; }
.hero-meta { font-size:11px; color:#8b8079; margin:16px 0 0; }
.hero-visual { max-width:360px; width:100%; justify-self:end; text-align:center; }
.hero-art { background:#f1e4df; border-radius:160px 160px 6px 6px; padding:24px 30px 17px; }
#hero-arch { height:235px; }
#hero-arch svg { height:100%; width:100%; }
.hero-art-caption { display:block; font-size:9px; letter-spacing:2.2px; color:#8d6b65; margin-top:4px; }
.hero-art-note { display:block; font-size:8px; color:#908078; margin-top:9px; }
.directory { max-width:1440px; margin:auto; padding:35px 5% 50px; border-top:1px solid var(--line); }
.directory-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.directory-heading h2 { font:400 36px/1.1 var(--serif); margin:0; }
.directory-heading>p { color:var(--muted); font-size:12px; margin:0; }
.search-row { display:flex; align-items:center; gap:20px; margin-bottom:28px; }
.search-box { display:flex; gap:12px; align-items:center; padding:13px 15px; background:#fff; border:1px solid var(--line); border-radius:5px; flex:1; }
.search-box svg { fill:none; stroke:#8e7c74; stroke-width:1.5; flex-shrink:0; }
.search-box input { border:0; background:none; outline:none; width:100%; font-size:13px; }
.sort-control { display:flex; align-items:center; gap:9px; font-size:11px; white-space:nowrap; }
.sort-control select { font-size:12px; padding:11px 9px; border:1px solid var(--line); border-radius:4px; background:transparent; min-width:151px; }
.mobile-filter-button { display:none; }
.directory-body { display:grid; grid-template-columns:215px 1fr; gap:32px; }
.filter-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:23px; }
.filter-heading h3 { font-size:15px; font-weight:500; margin:0; }
.reset { font-size:11px; text-decoration:underline; text-underline-offset:3px; color:var(--muted); }
.filters fieldset { margin:0 0 22px; border:0; border-bottom:1px solid var(--line); padding:0 0 19px; }
.filters legend,.filter-label { display:block; margin-bottom:11px; font-size:9px; letter-spacing:1.1px; font-weight:500; color:#6f625d; }
.category-choice { display:flex; gap:7px; align-items:center; font-size:11px; padding:7px 0; cursor:pointer; }
.category-choice input { margin:0; width:14px; height:14px; flex-shrink:0; }
.category-choice small { margin-left:auto; font-size:10px; color:#94867e; }
.filter-group { margin-bottom:23px; }
.filter-group select { width:100%; border:1px solid var(--line); border-radius:4px; background:white; padding:10px 9px; font-size:12px; }
.filter-help { font-size:10px; color:#8d8078; line-height:1.6; margin:7px 0 0; }
.shortlist-toggle { display:flex; gap:6px; align-items:center; font-size:11px; }
.results-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:12px; height:24px; margin-bottom:17px; }
.results-heading p { margin:0; }
.results-heading>span { font-size:10px; color:#93847b; }
.grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:23px 18px; }
.rental-card { position:relative; border:1px solid var(--line); border-radius:7px; overflow:hidden; background:white; transition:box-shadow .2s,transform .2s; }
.rental-card:hover { transform:translateY(-2px); box-shadow:0 8px 22px #372b2510; }
.card-art { height:180px; display:flex; align-items:center; justify-content:center; background:#f1ece6; position:relative; overflow:hidden; }
.card-art.wall { background:#eee7e3; }
.card-art svg { width:100%; height:98%; }
.art-caption { position:absolute; left:11px; bottom:8px; font-size:7px; color:#85786d; text-transform:uppercase; letter-spacing:.6px; }
.save-heart { position:absolute; z-index:1; top:9px; right:9px; width:34px; height:34px; display:grid; place-items:center; font:23px/1 Arial,sans-serif; background:#ffffffed; color:#6f5d58; border:1px solid #fff; border-radius:50%; }
.save-heart[aria-pressed=true] { background:#f8e9e5; color:#9d626c; }
.card-open { display:block; width:100%; background:none; text-align:left; padding:0; }
.card-info { padding:16px 15px 14px; }
.card-category { color:#907d73; font-size:8px; letter-spacing:.8px; text-transform:uppercase; margin:0 0 7px; }
.card-info h3 { font-size:15px; line-height:1.4; font-weight:500; margin:0 0 9px; min-height:42px; }
.card-supplier { font-size:11px; color:#786a62; margin:0 0 4px; }
.card-location { display:flex; align-items:center; gap:5px; font-size:10px; color:#95877d; margin:0 0 14px; }
.card-bottom { display:flex; justify-content:space-between; align-items:end; gap:5px; border-top:1px solid #ede7e1; padding-top:11px; }
.price { font-size:20px; font-weight:500; letter-spacing:-.5px; }
.price-small { font-size:13px; letter-spacing:0; }
.price-note { display:block; font-size:9px; font-weight:400; letter-spacing:0; color:#8d8076; margin-top:2px; }
.card-arrow { display:inline-flex; align-items:center; justify-content:center; width:27px; height:27px; flex-shrink:0; border:1px solid #e9dcd7; border-radius:50%; color:#9b6d75; background:#fcf8f6; }
.status-note { display:block; font-size:9px; line-height:1.5; background:#f6ede3; color:#90704b; border-radius:3px; padding:5px 7px; margin-top:10px; }
.active-filters { display:flex; gap:7px; flex-wrap:wrap; }
.active-filters:empty { display:none; }
.filter-chip { background:#f1e5e0; border-radius:4px; color:#805c59; padding:6px 9px; font-size:11px; margin-bottom:15px; }
.filter-chip span { margin-left:9px; }
.results-note { font-size:10px; line-height:1.7; color:#93867d; margin:24px 0 0; }
.empty { padding:45px 20px; text-align:center; background:#f1eae5; border-radius:5px; }
.empty>span { font-size:36px; color:#af7a80; }
.empty h3 { font:400 31px var(--serif); margin:6px 0; }
.empty p { font-size:12px; color:var(--muted); margin:10px 0 20px; }
.hidden { display:none!important; }
footer { max-width:1440px; margin:auto; padding:26px 5%; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:20px; }
.footer-brand { font-size:13px; font-weight:500; text-decoration:none; }
footer p { font-size:10px; color:#8e8179; margin:0; }
footer button { font-size:10px; text-decoration:underline; text-underline-offset:3px; }
dialog { border:1px solid var(--line); border-radius:8px; padding:0; width:calc(100% - 32px); max-width:850px; max-height:90vh; color:var(--ink); background:var(--paper); box-shadow:0 25px 100px #30242033; }
dialog::backdrop { background:#30272466; backdrop-filter:blur(3px); }
.close-button { position:absolute; right:13px; top:12px; width:36px; height:36px; background:#fffaf6; border:1px solid var(--line); border-radius:50%; font-size:24px; z-index:3; }
.detail-top { display:grid; grid-template-columns:38% 1fr; }
.detail-art { background:#f0e7e0; padding:25px 10px; display:flex; align-items:center; position:relative; }
.detail-art svg { width:100%; height:260px; }
.detail-head { padding:40px 33px 28px; }
.detail-head .eyebrow { font-size:9px; margin-bottom:12px; }
.detail-head h2 { font:400 40px/1.08 var(--serif); margin-bottom:14px; }
.detail-head .price { font-size:27px; margin-top:19px; }
.detail-head .price-note { font-size:10px; line-height:1.6; margin-top:4px; }
.detail-save { background:#fff; border:1px solid #d7c5bc; border-radius:4px; padding:9px 13px; margin-top:16px; font-size:12px; }
.detail-body { padding:25px 33px; border-top:1px solid var(--line); }
.detail-body>p { font-size:13px; line-height:1.7; margin-bottom:20px; }
.detail-facts { display:grid; grid-template-columns:1fr 1fr; gap:20px 30px; }
.detail-facts dt { color:#8c7468; font-size:9px; letter-spacing:.8px; text-transform:uppercase; margin-bottom:5px; }
.detail-facts dd { margin:0; font-size:12px; line-height:1.65; }
.detail-warning { padding:14px 16px; border-radius:4px; border:1px solid #e6d7c2; background:#f7eddf; font-size:12px; line-height:1.65; margin-bottom:22px; }
.detail-links { display:flex; gap:17px; align-items:center; margin-top:25px; }
.detail-links>a:not(.primary-button) { font-size:11px; text-underline-offset:3px; }
.detail-disclaimer { font-size:10px!important; color:#8d7e73; margin:18px 0 0!important; }
.info-content { padding:44px; max-width:690px; }
.info-content h2 { font:400 42px/1.1 var(--serif); margin-bottom:26px; }
.how-steps { padding-left:23px; margin:0; }
.how-steps li { padding:0 0 16px 8px; font-size:14px; }
.how-steps b { font-weight:500; }
.how-steps p { color:#807168; font-size:13px; margin:5px 0 0; }
.info-disclosure { padding:18px; margin-top:15px; font-size:12px; background:#f0e7e1; border-radius:4px; }
.info-disclosure p { margin:7px 0 0; line-height:1.7; color:#807168; }
.toast { position:fixed; bottom:24px; left:50%; transform:translate(-50%,20px); z-index:5; background:var(--ink); color:var(--paper); padding:12px 21px; border-radius:4px; font-size:12px; opacity:0; pointer-events:none; transition:all .2s; max-width:90%; text-align:center; }
.toast.show { opacity:1; transform:translate(-50%,0); }
@media(min-width:1450px) { .card-art { height:205px; } }
@media(max-width:1100px) {
  .hero { gap:30px; grid-template-columns:1.3fr 1fr; }
  h1 { font-size:57px; }
  .hero-art { padding:20px 22px 16px; }
  #hero-arch { height:215px; }
  .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .directory-body { grid-template-columns:200px 1fr; gap:25px; }
  .card-art { height:205px; }
  .results-heading>span { display:none; }
}
@media(max-width:720px) {
  .preview-bar { font-size:8px; padding:6px 10px; letter-spacing:.8px; }
  .header { padding:16px 5%; gap:14px; }
  .brand { font-size:14px; gap:8px; max-width:210px; letter-spacing:-.2px; }
  .brand-mark { width:24px; height:29px; flex-shrink:0; }
  .brand small { font-size:6px; margin-top:4px; }
  .header nav { gap:0; }
  .nav-browse,.header nav .text-button { display:none; }
  .saved-button { font-size:10px; padding:8px 9px; gap:5px; white-space:nowrap; }
  .saved-button>span:first-child { font-size:20px; }
  #saved-count { min-width:19px; font-size:9px; }
  .hero { display:block; padding:29px 6% 26px; }
  .hero .eyebrow { font-size:8px; letter-spacing:1.2px; margin-bottom:14px; }
  h1 { font-size:47px; line-height:1.03; letter-spacing:-.5px; margin-bottom:16px; }
  .hero-description { font-size:12px; line-height:1.75; margin-bottom:17px; }
  .primary-button { padding:12px 16px; font-size:11px; gap:24px; }
  .hero-meta { font-size:9px; margin-top:13px; }
  .hero-visual { display:none; }
  .directory { padding:25px 5% 32px; }
  .directory-heading { align-items:end; margin-bottom:18px; }
  .directory-heading h2 { font-size:29px; }
  .directory-heading>p { display:none; }
  .search-row { flex-wrap:wrap; gap:11px; margin-bottom:19px; }
  .search-box { flex-basis:100%; padding:11px 12px; }
  .search-box input { font-size:11px; }
  .mobile-filter-button { display:flex; gap:35px; align-items:center; justify-content:space-between; border:1px solid var(--line); border-radius:4px; background:#fff; padding:10px 12px; font-size:11px; }
  .mobile-filter-button span { color:var(--accent); font-size:16px; line-height:16px; }
  .sort-control { margin-left:auto; font-size:10px; gap:6px; }
  .sort-control select { font-size:11px; padding:10px 7px; min-width:135px; }
  .directory-body { display:block; }
  .filters { display:none; }
  .filters.is-open { display:grid; grid-template-columns:1fr 1fr; gap:18px 15px; background:#f1eae5; padding:18px; border-radius:5px; margin-bottom:22px; }
  .filter-heading { grid-column:1/-1; margin:0; }
  .filters fieldset { grid-column:1/-1; display:flex; gap:8px 14px; flex-wrap:wrap; border:0; padding:0; margin:0; }
  .filters legend { margin-bottom:6px; }
  .category-choice { font-size:10px; padding:5px 0; }
  .category-choice small { display:none; }
  .filter-group { margin:0; }
  .filter-label { font-size:8px; margin-bottom:6px; }
  .filter-group select { font-size:10px; padding:9px 6px; }
  .filter-help { font-size:9px; }
  .shortlist-toggle { font-size:10px; align-self:start; padding-top:22px; }
  .results-heading { font-size:11px; margin-bottom:12px; }
  .grid { gap:16px 12px; }
  .card-art { height:155px; }
  .card-info { padding:12px 11px; }
  .card-info h3 { font-size:13px; min-height:36px; line-height:1.4; margin-bottom:8px; }
  .card-category { font-size:6px; letter-spacing:.5px; }
  .card-supplier { font-size:9px; }
  .card-location { font-size:8px; margin-bottom:12px; }
  .price { font-size:18px; }
  .price-small { font-size:12px; }
  .price-note { font-size:7px; line-height:1.5; }
  .save-heart { width:32px; height:32px; top:7px; right:7px; }
  .art-caption { font-size:6px; left:8px; }
  .status-note { font-size:8px; }
  .results-note { font-size:9px; }
  footer { padding:23px 5%; flex-wrap:wrap; gap:13px; }
  footer p { order:3; flex-basis:100%; font-size:9px; }
  .footer-brand { font-size:12px; }
  .detail-top { grid-template-columns:1fr; }
  .detail-art { padding:10px; justify-content:center; }
  .detail-art svg { height:180px; width:230px; }
  .detail-head { padding:23px; }
  .detail-head h2 { font-size:34px; }
  .detail-head .price { margin-top:13px; }
  .detail-body { padding:23px; }
  .detail-facts { grid-template-columns:1fr; gap:18px; }
  .detail-links { flex-wrap:wrap; gap:15px; }
  .info-content { padding:34px 25px; }
  .info-content h2 { font-size:34px; }
}
@media(max-width:380px) { .brand { font-size:12px; gap:6px; } .saved-button { font-size:9px; padding:8px 7px; } h1 { font-size:42px; } .sort-control { gap:4px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
/* Search-friendly collections and owner-only ad placement examples. */
.preview-bar { display:flex; align-items:center; justify-content:center; gap:16px; }
.preview-bar>span { padding:0; }
#ad-preview-toggle { padding:4px 9px; font-size:10px; letter-spacing:0; border:1px solid #d4c7bf; border-radius:4px; background:#faf8f5; }
h1 { font-size:54px; }
.hero-description { max-width:590px; }
.card-open { text-decoration:none; }
.card-art img { width:100%; height:98%; object-fit:contain; }
.hero-photo .hero-art { padding:0; overflow:hidden; border-radius:120px 120px 6px 6px; background:#ece6df; }
.hero-photo #hero-arch { height:280px; }
.hero-photo .supplier-photo { width:100%; height:100%; object-fit:cover; }
.hero-photo .hero-art-note { font-size:10px; line-height:1.5; }
.hero-art-note a { color:inherit; text-underline-offset:3px; }
.card-art:has(.supplier-photo) { background:#f4f1ed; }
.card-art img.supplier-photo { width:100%; height:100%; object-fit:contain; }
.card-art .art-caption { background:#fffaf3ed; padding:4px 6px; border-radius:3px; color:#5c514a; }
.rental-card { display:flex; flex-direction:column; }
.card-open { flex:1; }
.google-rating { padding:11px 15px; border-top:1px solid var(--line); background:#fdfbf8; }
.google-rating a { display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; justify-content:space-between; text-decoration:none; }
.google-rating a:hover .rating-score { text-decoration:underline; text-underline-offset:3px; }
.rating-label { font-size:9px; color:#776b63; }
.rating-score { font-size:11px; font-weight:500; white-space:nowrap; }
.rating-star { color:#98703b; }
.rating-count { font-size:10px; font-weight:400; color:#786b62; }
.rating-detail { margin-top:15px; padding:10px 0; background:none; }
.rating-detail small { display:block; font-size:10px; line-height:1.6; color:#786b62; margin-top:7px; }
.detail-art:has(.supplier-photo) { padding:12px; justify-content:center; }
.detail-art .supplier-photo { width:100%; height:auto; max-height:400px; object-fit:contain; }
.detail-body .photo-credit { font-size:11px; color:#776b63; padding-bottom:15px; border-bottom:1px solid var(--line); }
.photo-credit a { text-underline-offset:3px; }
.maker-card .google-rating { margin:8px 0 15px; padding:10px 0; background:none; }
@media(max-width:700px) { .hero-photo #hero-arch { height:250px; } .google-rating { padding:10px 11px; } .detail-art .supplier-photo { max-height:280px; } }
.category-links { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
.category-links a { border:1px solid var(--line); border-radius:5px; padding:9px 13px; background:white; font-size:12px; text-decoration:none; }
.category-links a[aria-current=page] { color:#8b5e63; border-color:#d3b8b9; background:#f5eae6; }
.breadcrumbs { max-width:1440px; padding:22px 5% 0; margin:auto; display:flex; gap:10px; font-size:11px; color:#8d7a70; }
.breadcrumbs a { text-underline-offset:3px; }
body:not([data-category=all]) .category-fieldset { display:none; }
.no-js .save-heart,.no-js .search-row,.no-js .filter-column,.no-js .header nav button,.no-js .preview-bar button,.no-js #about-button { display:none!important; }
.no-js .directory-body { display:block; }
.ad-preview { color:#7c7772; font-family:var(--sans); text-align:center; }
.ad-label { text-align:center; font-size:9px; font-weight:400; letter-spacing:.8px; margin:0 0 10px; color:#918b85; }
.ad-placeholder { background:#f0efec; border:1px dashed #c9c5be; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:22px; min-width:0; }
.ad-position { font-size:8px; letter-spacing:1.1px; color:#928a83; }
.ad-placeholder strong { font-weight:400; font-size:20px; color:#918980; margin:13px 0 4px; }
.ad-placeholder p { font-size:10px; color:#9b928a; margin:0 0 15px; }
.ad-placeholder small { font-size:9px; color:#a19a93; }
.ad-inline { grid-column:1/-1; margin:25px 0 30px; padding:23px 0; border-top:1px solid #e8e3dd; border-bottom:1px solid #e8e3dd; }
.ad-inline .ad-placeholder { min-height:170px; }
.ad-sidebar { margin-top:85px; padding-top:22px; border-top:1px solid #e8e3dd; }
.ad-sidebar .ad-placeholder { min-height:300px; padding:22px 14px; }
.ad-sidebar .ad-placeholder strong { font-size:19px; }
.ad-sidebar .ad-placeholder p { line-height:1.6; }
.ad-guide { max-width:1100px; margin:0 auto 42px; padding:0 5%; }
.ad-guide .ad-placeholder { min-height:150px; }
body[data-ads=off] .ad-preview { display:none!important; }
.rental-guide { max-width:1440px; margin:auto; padding:42px 5% 38px; border-top:1px solid var(--line); }
.guide-heading { max-width:720px; }
.guide-heading .eyebrow { margin-bottom:11px; }
.guide-heading h2,.faq h2 { font:400 34px/1.15 var(--serif); margin:0 0 15px; }
.guide-heading>p:last-child { color:#807269; font-size:13px; line-height:1.8; }
.guide-tips { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin:28px 0 40px; }
.guide-tips article { border-top:1px solid var(--line); padding-top:18px; }
.tip-number { font-size:11px; color:#ab7c80; }
.guide-tips h3 { font-size:15px; font-weight:500; margin:10px 0; }
.guide-tips p { color:#807269; font-size:12px; line-height:1.8; margin:0; }
.faq { display:grid; grid-template-columns:1fr 2fr; gap:40px; padding:32px 0 15px; border-top:1px solid var(--line); }
.faq h2 { font-size:30px; }
.faq details { border-bottom:1px solid var(--line); padding:0 0 15px; margin:0 0 15px; }
.faq summary { cursor:pointer; font-size:13px; font-weight:500; line-height:1.7; }
.faq details p { font-size:12px; line-height:1.8; color:#807269; margin:13px 0 0; }
.guide-source-note { color:#99897e; font-size:10px; line-height:1.7; margin:18px 0 0; }
@media(max-width:1100px) { h1 { font-size:46px; } }
@media(max-width:720px) {
 .preview-bar { gap:9px; justify-content:space-between; padding:6px 5%; letter-spacing:.2px; }
 .preview-bar>span { font-size:7px; }
 #ad-preview-toggle { font-size:8px; padding:4px 7px; white-space:nowrap; }
 h1 { font-size:38px; line-height:1.08; }
 .category-links { gap:6px; margin-bottom:23px; }
 .category-links a { font-size:10px; padding:8px 10px; }
 .breadcrumbs { font-size:9px; padding-top:17px; }
 .ad-sidebar { display:none; }
 .ad-inline { margin:20px 0; padding:22px 0; }
 .ad-inline .ad-placeholder { min-height:250px; }
 .ad-placeholder { padding:20px 12px; }
 .ad-placeholder strong { font-size:18px; }
 .ad-placeholder p { font-size:9px; }
 .ad-placeholder small { font-size:8px; }
 .ad-guide { margin-bottom:30px; }
 .ad-guide .ad-placeholder { min-height:250px; }
 .rental-guide { padding:32px 6%; }
 .guide-heading h2 { font-size:29px; }
 .guide-heading>p:last-child { font-size:12px; }
 .guide-tips { grid-template-columns:1fr; gap:20px; margin:23px 0 30px; }
 .guide-tips article { padding-top:15px; }
 .guide-tips h3 { margin:8px 0; }
 .faq { grid-template-columns:1fr; gap:12px; padding-top:26px; }
 .faq h2 { font-size:28px; }
 .faq summary { font-size:12px; }
}

/* Supplier photos stay one click away when a listing uses an illustration. */
.supplier-photos-link { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0 15px 13px; font-size:11px; color:#775960; text-underline-offset:3px; }
.detail-art img:not(.supplier-photo) { width:100%; height:100%; max-height:290px; object-fit:contain; }
.hero-art-note { font-size:10px; line-height:1.5; }
.hero-photos-link { display:inline-flex; align-items:center; gap:9px; margin-left:18px; padding:13px 0; color:#775960; font-size:12px; text-underline-offset:4px; }
.hero-photos-link .link-chevron { transform:none; }
@media(max-width:720px) { .hero-photos-link { display:flex; width:max-content; margin:7px 0 0; padding:8px 0; } }

/* Fine, rounded chevrons for the wedding directory’s link details. */
.link-chevron { display:inline-block; width:11px; height:11px; flex-shrink:0; vertical-align:-1px; color:var(--accent); }
.link-chevron path { stroke:currentColor; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.link-chevron-down { transform:rotate(90deg); }
.card-arrow .link-chevron { width:12px; height:12px; }
.rating-score .link-chevron { width:9px; height:9px; margin-left:3px; }

/* Quiet, readable links to the business's own social pages. */
.social-links { display:flex; flex-wrap:wrap; align-items:center; gap:3px 13px; margin:0 15px 12px; padding-top:10px; border-top:1px solid var(--line); }
.social-links a { display:inline-flex; align-items:center; gap:5px; min-height:30px; color:#775960; font-size:10px; text-decoration:none; text-underline-offset:3px; }
.social-links a:hover { text-decoration:underline; }
.social-icon { width:14px; height:14px; flex:none; }
.social-links-detail { margin:0; gap:5px 17px; }
.social-links-detail a { min-height:36px; font-size:12px; }
.social-links-detail .social-icon { width:16px; height:16px; }
.detail-social { margin:25px 0 0; padding:19px 20px 12px; background:#f7f0ee; border-radius:8px; }
.detail-social h3 { margin:0 0 5px; font-family:inherit; font-size:14px; font-weight:500; }
.detail-social p { margin:0 0 10px; color:var(--muted); font-size:12px; line-height:1.6; }
.detail-social .social-links { border:0; padding-top:0; }
@media(max-width:720px) { .social-links:not(.social-links-detail) { margin-right:10px; margin-left:10px; gap:2px 10px; } .social-links a { min-height:36px; } }

/* Readable link alternatives, kept out of the primary browsing path. */
.link-help { margin:22px 0 8px; border-top:1px solid var(--line); padding-top:12px; }
.link-help summary { cursor:pointer; color:#775960; font-size:12px; line-height:1.6; padding:9px 0; }
.link-help>p { font-size:12px; line-height:1.7; color:var(--muted); }
.link-copy-row { display:flex; flex-wrap:wrap; align-items:end; gap:8px; margin:14px 0; }
.link-copy-row label { flex:1 1 180px; min-width:0; font-size:11px; }
.link-copy-row label span { display:block; margin:0 0 7px; }
.link-copy-row input { width:100%; min-width:0; height:44px; border:1px solid var(--line); border-radius:5px; padding:10px; background:#fff; color:var(--ink); font-size:14px; }
.copy-link { display:none; min-height:44px; padding:10px 15px; background:#f1e7e4; border:1px solid #d7c5bc; border-radius:5px; font-size:12px; color:var(--ink); }
.link-tools-ready .copy-link { display:block; }
.copy-status { flex-basis:100%; margin:0; font-size:12px; line-height:1.6; color:#775960; }
.copy-status:empty { display:none; }
.full-listing-link { display:inline-flex; align-items:center; gap:8px; margin:16px 0 0 15px; min-height:44px; font-size:12px; color:#775960; text-underline-offset:4px; }
.no-js .detail-save { display:none; }
.rental-page { max-width:1100px; margin:auto; padding:0 5% 50px; }
.rental-page .breadcrumbs { padding:26px 0; margin:0; flex-wrap:wrap; line-height:1.6; }
.rental-detail { border:1px solid var(--line); border-radius:10px; background:var(--paper); overflow:hidden; }
.rental-detail h1 { font:400 42px/1.12 var(--serif); letter-spacing:-.5px; margin-bottom:14px; }
.rental-detail .detail-body { padding:30px 34px; }
.rental-detail .detail-facts { gap:25px 35px; }
.listing-status { padding:0 34px; color:#775960; font-size:13px; }
.listing-status:empty { display:none; }
.related-rentals { margin:40px 0 25px; }
.related-rentals h2 { font:400 30px/1.2 var(--serif); }
.related-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:18px; }
.related-links a { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:18px; border:1px solid var(--line); border-radius:7px; text-decoration:none; font-size:14px; background:white; }
.related-links small { display:block; margin-top:8px; font-size:11px; color:var(--muted); }
.browse-back { display:inline-flex; gap:10px; align-items:center; min-height:44px; color:#775960; font-size:13px; text-underline-offset:4px; }
.skip-link { position:absolute; top:-100px; left:15px; z-index:100; padding:14px; background:var(--paper); border:2px solid var(--accent); }
.skip-link:focus { top:10px; }
:where(a,button,summary,input,select):focus-visible { outline:2px solid #936571; outline-offset:4px; }
.search-box:focus-within { outline:2px solid #936571; outline-offset:3px; }

@media(max-width:720px) {
  .search-box input,.filter-group select,.sort-control select,.link-copy-row input { font-size:16px; }
  .search-box,.sort-control select,.mobile-filter-button,.saved-button,.primary-button { min-height:44px; }
  .category-links a { display:flex; align-items:center; min-height:44px; font-size:12px; }
  .mobile-filter-button,.sort-control { font-size:12px; }
  .save-heart,.close-button { min-width:44px; min-height:44px; }
  .supplier-photos-link,.google-rating>a,.social-links a { min-height:44px; }
  .detail-body>p,.detail-facts dd { font-size:14px; }
  .detail-facts dt { font-size:11px; }
  .detail-save,.detail-links>a:not(.primary-button) { min-height:44px; font-size:13px; }
  .detail-links>a:not(.primary-button) { display:inline-flex; align-items:center; }
  .detail-body .primary-button { font-size:14px; }
  .full-listing-link { margin-left:0; display:flex; width:max-content; }
  .detail-social p,.detail-social .social-links a { font-size:13px; }
  .link-help summary { font-size:13px; min-height:44px; }
  .rental-detail h1 { font-size:34px; }
  .rental-detail .detail-body { padding:22px; }
  .related-links { grid-template-columns:1fr; }
  .rental-page .breadcrumbs { font-size:12px; }
  .filter-help,.results-note { font-size:11px; }
}
@media(max-width:540px) {
  .grid { grid-template-columns:minmax(0,1fr); gap:22px; }
  .card-art { height:210px; }
  .card-info { padding:18px 18px 12px; }
  .card-info h3 { font-size:19px; min-height:0; margin-bottom:9px; }
  .card-category { font-size:9px; letter-spacing:1px; }
  .card-supplier { font-size:13px; }
  .card-location { font-size:12px; margin:9px 0 17px; }
  .price { font-size:25px; }
  .price-small { font-size:17px; }
  .price-note { font-size:10px; }
  .art-caption { font-size:9px; left:14px; }
  .supplier-photos-link { margin:0 18px 6px; font-size:13px; }
  .social-links:not(.social-links-detail) { margin:0 18px 12px; gap:4px 18px; }
  .social-links a { font-size:12px; }
  .google-rating { margin-left:18px; margin-right:18px; }
  .google-rating .rating-label { font-size:10px; }
  .google-rating .rating-score { font-size:12px; }
  .status-note { font-size:11px; }
  .filters.is-open { grid-template-columns:1fr; }
  .shortlist-toggle { padding-top:0; min-height:44px; font-size:13px; }
  .category-choice { font-size:12px; min-height:40px; }
  .filter-label { font-size:10px; }
  .detail-links { align-items:stretch; }
  .detail-links .primary-button { width:100%; justify-content:space-between; }
}

/* Focused browsing: details on demand, comparison only when requested. */
[hidden] { display:none!important; }
.sr-only,.comparison-announcement { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hero-inspiration { max-width:330px; }
.hero-inspiration #hero-arch { height:325px; }
.hero-inspiration #hero-arch img { width:100%; height:100%; object-fit:cover; object-position:center 72%; display:block; }
.hero-inspiration .hero-art-note { font-size:10px; line-height:1.65; margin-top:12px; }
.card-info h3 { min-height:42px; margin-bottom:7px; }
.card-location { margin-bottom:9px; }
.card-spec { font-size:10px; color:#786a62; margin:6px 0 12px; line-height:1.6; }
.card-meta { padding:0 15px 10px; display:flex; gap:6px 12px; flex-wrap:wrap; align-items:center; justify-content:space-between; }
.card-rating { font-size:11px; text-decoration:none; padding:7px 0; }
.card-rating>span { color:#9d7850; }
.card-rating small { font-size:9px; color:var(--muted); }
.card-photo-link { font-size:10px; color:#775960; text-decoration:none; padding:7px 0; display:inline-flex; align-items:center; gap:6px; }
.card-actions { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:7px 14px; border-top:1px solid var(--line); background:#fdfbf9; }
.compare-toggle { display:none; align-items:center; gap:7px; background:transparent; color:#6c5358; font-size:11px; min-height:38px; padding:4px 0; text-align:left; }
.compare-ready .compare-toggle { display:inline-flex; }
.compare-check { width:14px; height:14px; border:1px solid #b5a49f; border-radius:3px; flex:none; display:grid; place-items:center; }
.compare-toggle[aria-pressed=true] .compare-check { background:#94666d; border-color:#94666d; }
.compare-toggle[aria-pressed=true] .compare-check:after { content:'✓'; color:white; font-size:10px; line-height:1; }
.card-detail-link { display:inline-flex; align-items:center; gap:7px; min-height:38px; font-size:11px; text-decoration:none; color:#775960; }
.card-detail-link:hover,.card-photo-link:hover,.card-rating:hover { text-decoration:underline; text-underline-offset:4px; }
.card-actions:not(:has(.compare-toggle[aria-pressed=true])) { border-top-color:#eee7e2; }
.rental-card:has(.compare-toggle[aria-pressed=true]) { border-color:#b28b90; box-shadow:0 0 0 1px #b28b90; }
.detail-image-label { position:absolute; bottom:12px; left:12px; right:12px; text-align:center; color:#807269; font-size:10px; }
.detail-head { padding-top:34px; }
.detail-head .price { margin-top:16px; }
.detail-contact { margin-top:18px; width:100%; font-size:12px; gap:16px; }
.detail-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px 19px; margin-top:12px; }
.detail-actions .detail-save { margin-top:0; }
.detail-actions .compare-toggle { min-height:40px; font-size:12px; }
.compare-feedback { font-size:11px; color:#775960; margin:10px 0 0; }
.compare-feedback:empty { display:none; }
.full-listing-link { margin:12px 0 0; min-height:34px; }
.detail-essential { margin:0 0 25px; }
.detail-essential dt { font-size:10px; }
.detail-essential dd { font-size:13px; }
.listing-disclosure { border-top:1px solid var(--line); }
.listing-disclosure>summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:57px; font-size:13px; font-weight:500; list-style:none; }
.listing-disclosure>summary::-webkit-details-marker { display:none; }
.listing-disclosure[open]>summary .link-chevron { transform:rotate(-90deg); }
.listing-disclosure .detail-facts { margin:0 0 20px; }
.listing-disclosure>p { font-size:13px; line-height:1.8; color:#786a62; }
.listing-disclosure .social-links { border:0; padding-bottom:14px; }
.policy-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:12px; color:#775960; margin-bottom:14px; text-underline-offset:4px; }
.detail-body .listing-reviewed { margin:20px 0 7px; font-size:11px; color:#7e6e67; }
.listing-reviewed a { text-underline-offset:3px; }
.detail-body .detail-disclaimer { margin:0!important; }
.detail-body .link-help { margin-top:18px; padding-top:6px; }
.compare-tray { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); z-index:8; width:calc(100% - 48px); max-width:1100px; display:flex; align-items:center; gap:18px; padding:15px 18px; background:#fffcf9; border:1px solid #dacbc5; border-radius:10px; box-shadow:0 6px 35px #30242022; }
.compare-tray-copy { flex-shrink:0; }
.compare-tray-copy strong { display:block; font-size:13px; font-weight:500; }
.compare-tray-copy span { display:block; color:var(--muted); font-size:10px; margin-top:4px; }
.compare-picks { display:flex; flex:1; gap:6px; overflow:hidden; }
.compare-pick { font-size:10px; color:#775960; background:#f2e8e4; padding:9px; border-radius:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:170px; min-height:38px; }
.compare-pick span { margin-left:8px; }
.compare-clear { background:transparent; color:#786a62; text-decoration:underline; text-underline-offset:3px; padding:10px 0; font-size:11px; }
.compare-tray .primary-button { min-height:44px; gap:20px; white-space:nowrap; }
.compare-tray .primary-button:disabled { background:#e9e2de; color:#8f8078; cursor:default; }
.has-comparison { padding-bottom:115px; }
.has-comparison .toast { bottom:120px; }
.compare-dialog { max-width:1150px; width:calc(100% - 40px); max-height:90dvh; }
.compare-dialog-heading { padding:30px 35px 20px; }
.compare-dialog-heading .eyebrow { margin-bottom:10px; }
.compare-dialog-heading h2 { font:400 39px/1.1 var(--serif); margin:0 0 10px; }
.compare-dialog-heading>p:last-of-type { color:var(--muted); font-size:12px; max-width:650px; margin:0; }
.comparison-content { padding:0 35px 22px; }
.comparison-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:6px; background:white; }
.comparison-table { width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; font-size:12px; line-height:1.7; }
.comparison-table th,.comparison-table td { padding:18px 20px; text-align:left; vertical-align:top; overflow-wrap:anywhere; border-bottom:1px solid var(--line); border-right:1px solid var(--line); }
.comparison-table th:first-child { width:150px; background:#f5f0ec; font-size:11px; font-weight:500; color:#77655d; }
.comparison-table thead th { background:#fbf7f3; font-weight:500; padding-top:23px; padding-bottom:23px; }
.comparison-table tr>*:last-child { border-right:0; }
.comparison-table tr:last-child>* { border-bottom:0; }
.comparison-table small { display:block; font-size:10px; color:#847269; margin-top:5px; }
.compare-item-title { display:block; font:400 25px/1.15 var(--serif); text-decoration:none; color:var(--ink); margin-bottom:9px; }
.compare-item-title:hover { text-decoration:underline; text-underline-offset:4px; }
.compare-item-supplier { display:block; font-size:10px; line-height:1.7; color:#85736a; font-weight:400; }
.comparison-price { font-size:21px; font-weight:500; }
.comparison-table td>a:not(.primary-button) { text-underline-offset:4px; color:#775960; }
.comparison-table .primary-button { font-size:11px; width:100%; gap:12px; }
.comparison-note { font-size:11px; color:var(--muted); line-height:1.7; margin:16px 0 0; }
.comparison-swipe { display:none; }
@media(max-width:1000px) {
 .compare-picks { display:none; }
 .compare-clear { margin-left:auto; }
 .comparison-table { min-width:800px; }
 .comparison-table th:first-child { width:125px; position:sticky; left:0; z-index:1; }
 .comparison-swipe { display:block; font-size:11px; color:#85736a; margin:0 0 12px; }
}
@media(max-width:720px) {
 .hero-inspiration { max-width:280px; }
 .hero-inspiration #hero-arch { height:240px; }
 .card-actions,.card-meta { padding-left:15px; padding-right:15px; }
 .card-actions .compare-toggle,.card-detail-link,.card-photo-link,.card-rating { min-height:44px; }
 .compare-toggle,.card-detail-link { font-size:12px; }
 .detail-contact { min-height:48px; font-size:13px; }
 .detail-essential dd,.listing-disclosure .detail-facts dd { font-size:14px; }
 .detail-essential dt { font-size:11px; }
 .listing-disclosure>summary { font-size:14px; min-height:62px; }
 .compare-tray { width:calc(100% - 24px); bottom:max(12px,env(safe-area-inset-bottom)); padding:12px; gap:10px; flex-wrap:wrap; }
 .compare-tray-copy { flex:1; }
 .compare-tray-copy strong { font-size:12px; }
 .compare-tray-copy span { font-size:10px; }
 .compare-tray .primary-button { font-size:12px; padding:10px 12px; gap:10px; }
 .compare-clear { margin-left:0; min-height:44px; }
 .compare-dialog { width:calc(100% - 16px); max-height:94dvh; }
 .compare-dialog-heading { padding:28px 22px 20px; }
 .compare-dialog-heading h2 { font-size:33px; padding-right:28px; }
 .compare-dialog-heading .eyebrow { font-size:8px; }
 .comparison-content { padding:0 12px 20px; }
 .comparison-table { font-size:13px; min-width:740px; }
 .comparison-table th,.comparison-table td { padding:16px 14px; }
 .comparison-table th:first-child { width:105px; font-size:11px; }
 .comparison-table small { font-size:11px; }
 .comparison-table .primary-button { min-height:44px; }
 .compare-item-title { font-size:25px; }
 .compare-item-supplier { font-size:11px; }
 .comparison-note { padding:0 9px; }
}
@media(max-width:540px) {
 .card-info h3 { min-height:0; }
 .card-spec { font-size:12px; margin:6px 0 15px; }
 .card-meta { padding:0 18px 8px; }
 .card-actions { padding:8px 18px; }
 .card-rating { font-size:13px; }
 .card-rating small { font-size:11px; }
 .card-photo-link { font-size:12px; }
 .hero-inspiration { max-width:100%; }
 .hero-inspiration .hero-art { border-radius:80px 80px 6px 6px; }
 .hero-inspiration #hero-arch { height:225px; }
 .hero-inspiration #hero-arch img { object-position:center 69%; }
 .detail-actions { gap:10px 18px; }
 .detail-actions .compare-toggle { font-size:12px; }
 .compare-check { width:16px; height:16px; }
}
.compare-remove { display:inline-flex; min-height:34px; align-items:center; padding:6px 0 0; background:transparent; color:#8a6f70; font-size:10px; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:720px) { .compare-remove { min-height:44px; font-size:12px; } }
@media(max-width:1000px) { .comparison-table { min-width:var(--comparison-width,765px); } }
@media(max-width:720px) { .hero-inspiration { display:block; max-width:100%; margin:28px auto 0; } .hero-inspiration #hero-arch { height:190px; } .hero-inspiration .hero-art { border-radius:65px 65px 6px 6px; } }

/* Quiet footer controls; the choice panel appears only after GA4 is configured. */
.privacy-links{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;font-size:12px}.privacy-links [hidden],.analytics-choice[hidden]{display:none!important}
.analytics-choice{position:fixed;z-index:180;bottom:18px;left:50%;transform:translateX(-50%);width:min(720px,calc(100% - 32px));padding:20px 22px;border:1px solid #d8cec7;border-radius:16px;background:#fffdfb;box-shadow:0 12px 45px #30221d26;color:#3d3430;display:flex;gap:20px;align-items:center}.analytics-choice strong{font-size:16px}.analytics-choice p{font-size:13px;line-height:1.55;margin:7px 0 0}.analytics-choice a{text-decoration:underline}.analytics-choice-buttons{display:flex;gap:8px;flex-shrink:0;flex-direction:column}.analytics-choice-buttons button{border:1px solid #897568;border-radius:8px;padding:10px 13px;background:#fffdfb;color:#3d3430;cursor:pointer;font:inherit;font-size:12px}.analytics-choice-buttons button:hover{background:#f3ece5}.analytics-choice-status:empty{display:none}.privacy-page{max-width:780px;padding:64px 24px 80px;margin:auto}.privacy-page h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(36px,7vw,56px)}.privacy-page h2{font-size:21px;margin-top:32px}.privacy-page p{font-size:15px;line-height:1.8;color:#62564f}.privacy-page a{text-decoration:underline}.privacy-page .privacy-date{font-size:12px}
@media(max-width:600px){.analytics-choice{flex-direction:column;align-items:stretch;gap:14px;bottom:10px;padding:17px}.analytics-choice-buttons{flex-direction:row}.analytics-choice-buttons button{flex:1}.privacy-page{padding-top:40px}}

/* Practical planning content lives below browsing and on its own guide page. */
.arch-cost-summary { margin:34px 0 38px; padding:30px; border:1px solid var(--line); background:#fffdfa; border-radius:10px; }
.arch-cost-summary h2 { font:400 34px/1.2 var(--serif); margin:10px 0; }
.arch-cost-summary>p:not(.eyebrow),.cost-footnote { color:#786a62; font-size:13px; line-height:1.8; max-width:780px; }
.cost-table-wrap { width:100%; margin:24px 0 12px; }
.cost-table { border-collapse:collapse; width:100%; text-align:left; table-layout:fixed; font-size:13px; }
.cost-table caption { text-align:left; color:#786a62; font-size:12px; line-height:1.6; padding-bottom:12px; }
.cost-table th,.cost-table td { padding:17px 15px; border-bottom:1px solid var(--line); vertical-align:top; font-weight:400; line-height:1.6; overflow-wrap:anywhere; }
.cost-table thead th { font-size:11px; letter-spacing:.35px; background:#f5eeea; }
.cost-table th:first-child { width:35%; padding-left:12px; }
.cost-table th:nth-child(2) { width:18%; }
.cost-table tbody td:nth-child(2) { font-weight:500; font-size:17px; white-space:nowrap; }
.cost-table a { color:#684952; text-underline-offset:4px; }
.cost-table span { display:block; font-size:11px; color:#786a62; margin-top:5px; }
.cost-table strong { font-weight:500; }
.cost-footnote { font-size:11px!important; }
.planning-link { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 0 0; text-decoration:none; color:#775960; }
.planning-link strong { font-size:14px; font-weight:500; }
.planning-link small { display:block; font-size:12px; color:#786a62; margin-top:7px; line-height:1.6; }
.planning-link:hover strong { text-decoration:underline; text-underline-offset:4px; }
.planning-link-compact { border:1px solid var(--line); padding:18px 20px; border-radius:7px; margin:26px 0; background:#fffcf9; }
.listing-overview { margin:0 0 24px!important; font-size:14px!important; line-height:1.8; color:#62564f; }
.planning-page { max-width:1060px; margin:auto; padding:0 5% 70px; }
.planning-page .breadcrumbs { padding:24px 0; margin:0; flex-wrap:wrap; line-height:1.7; }
.planning-intro { max-width:760px; padding:28px 0 32px; }
.planning-intro h1 { font:400 clamp(38px,5vw,60px)/1.08 var(--serif); letter-spacing:-1px; margin:18px 0 22px; }
.planning-page p { font-size:14px; line-height:1.9; color:#74665e; }
.planning-page .eyebrow { font-size:10px; letter-spacing:1.8px; }
.planning-page .planning-date { font-size:11px; margin-top:22px; }
.planning-page section { border-top:1px solid var(--line); padding:30px 0; }
.planning-page h2 { font:400 33px/1.2 var(--serif); margin:0 0 15px; }
.planning-page h3 { font-size:15px; font-weight:500; margin:0 0 9px; }
.planning-page section>p { max-width:800px; }
.quote-formula { padding:22px; background:#f3e9e5; border-radius:7px; color:#684952; font-size:15px; line-height:1.8; margin:22px 0; }
.planning-checks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-top:26px; }
.planning-checks p { font-size:13px; margin:0; }
.planning-page blockquote { margin:22px 0; padding:20px 26px; border-left:3px solid #c49ba3; background:#fffcf9; font:400 18px/1.8 var(--serif); color:#65544e; }
.planning-page .primary-button { margin-top:15px; gap:24px; }
.planning-sources { border-top:1px solid var(--line); padding-top:22px; }
.planning-sources summary { font-size:13px; cursor:pointer; min-height:44px; }
.planning-sources p,.planning-sources li { font-size:12px; line-height:1.9; }
.planning-sources a { color:#775960; text-underline-offset:4px; }
@media(max-width:720px) {
 .arch-cost-summary { margin:28px 0; padding:20px 16px; }
 .arch-cost-summary h2,.planning-page h2 { font-size:29px; }
 .planning-page { padding:0 6% 45px; }
 .planning-intro { padding-top:16px; }
 .planning-page .breadcrumbs { font-size:11px; }
 .planning-checks { grid-template-columns:1fr; gap:22px; }
 .cost-table thead { display:none; }
 .cost-table tbody,.cost-table tr,.cost-table th,.cost-table td { display:block; width:100%!important; }
 .cost-table tr { position:relative; padding:16px 0; border-top:1px solid var(--line); }
 .cost-table tr:last-child { border-bottom:1px solid var(--line); }
 .cost-table th,.cost-table td { border:0; padding:0; }
 .cost-table th:first-child { padding:0 95px 0 0; min-height:45px; }
 .cost-table tbody td:nth-child(2) { position:absolute; top:16px; right:0; width:auto!important; font-size:16px; }
 .cost-table td:last-child { margin-top:12px; }
 .cost-table span { font-size:12px; }
 .cost-table strong { font-size:13px; }
 .planning-link strong { font-size:13px; line-height:1.7; }
}
.area-navigation { display:flex; align-items:center; gap:6px; padding:0 5%; min-height:54px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fffcf9; }
.area-navigation>span { color:#786a62; font-size:11px; margin-right:14px; }
.area-navigation a { display:inline-flex; align-items:center; min-height:44px; padding:0 14px; color:#62564f; font-size:12px; text-decoration:none; }
.area-navigation a[aria-current="page"] { color:#77515e; box-shadow:inset 0 -2px #b58a98; }
.area-navigation a:hover { color:#77515e; background:#f7efeb; }
@media(max-width:480px) { .area-navigation { padding:0 5%; gap:0; flex-wrap:wrap; } .area-navigation>span { width:100%; padding-top:12px; margin:0; } .area-navigation a { padding:0 14px; } .area-navigation a:first-of-type { padding-left:0; } }

/* Quiet service-area note, shared by rental cards and details. */
.coverage-note { display:table; max-width:100%; margin:8px 0 10px; padding:4px 7px; border-radius:4px; background:#f6efec; color:#765962; font-size:11px; line-height:1.45; font-weight:400; }
.detail-head .coverage-note { margin:10px 0 15px; }
.collection-context { margin:-2px 0 22px; font-size:12px; line-height:1.7; color:#786a62; }
.collection-context a,.planning-entry a,.listing-company-link a { color:#775960; text-underline-offset:3px; }
.planning-entry { max-width:1296px; margin:0 auto; padding:0 5% 28px; display:flex; gap:12px 24px; flex-wrap:wrap; align-items:center; font-size:12px; }
.planning-entry>span { color:#786a62; }
.resource-footer { display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; }
.resource-footer a { min-height:28px; display:inline-flex; align-items:center; }
.guide-jump-links,.supplier-jump-links { display:flex; gap:8px 12px; flex-wrap:wrap; margin:0 0 30px; }
.guide-jump-links a,.supplier-jump-links a { display:inline-flex; align-items:center; min-height:42px; padding:7px 13px; border:1px solid var(--line); border-radius:5px; font-size:12px; text-decoration:none; background:#fffcf9; }
.resource-page a { text-underline-offset:4px; }
.resource-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:24px; }
.resource-cards article { padding:24px; border:1px solid var(--line); border-radius:7px; background:#fffcf9; }
.resource-cards article p { font-size:13px; }
.resource-cards article>a { color:#775960; font-size:12px; display:inline-flex; align-items:center; gap:8px; min-height:40px; }
.resource-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:22px 0; }
.resource-links a { padding:22px; border:1px solid var(--line); border-radius:7px; color:#775960; text-decoration:none; background:#fffcf9; }
.resource-links strong { display:block; font-size:14px; font-weight:500; }
.resource-links span { display:block; font-size:12px; line-height:1.8; color:#786a62; margin-top:9px; }
.supplier-profiles { display:grid; grid-template-columns:1fr; gap:22px; }
.supplier-profile { padding:30px; border:1px solid var(--line); border-radius:8px; background:#fffcf9; scroll-margin-top:20px; }
.supplier-profile-heading { display:flex; justify-content:space-between; gap:20px; align-items:start; }
.supplier-profile-heading h2 { font-size:29px; margin:0 0 6px; }
.supplier-profile-heading .supplier-base { margin:0 0 16px; font-size:12px; }
.supplier-item-count { padding:5px 9px; background:#f6efec; color:#765962; border-radius:4px; white-space:nowrap; font-size:11px; }
.supplier-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:18px 0; }
.supplier-facts dt { font-size:10px; text-transform:uppercase; letter-spacing:1px; color:#8e6c6d; margin:0 0 6px; }
.supplier-facts dd { margin:0; color:#62564f; font-size:12px; line-height:1.8; }
.supplier-profile .google-rating { max-width:360px; }
.supplier-profile-actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin:18px 0; }
.supplier-profile-actions .primary-button { margin:0; }
.supplier-profile-actions>a { font-size:12px; }
.supplier-more { border-top:1px solid var(--line); padding-top:15px; }
.supplier-more summary { min-height:36px; cursor:pointer; font-size:12px; color:#775960; }
.supplier-more p { font-size:12px; }
.supplier-more ul { padding-left:18px; }
.supplier-more li { font-size:12px; line-height:1.8; padding:5px 0; }
.supplier-more li span { color:#786a62; margin-left:10px; }
.supplier-jump-links a { font-size:11px; }
.supplier-directory-note { margin:0 0 24px; }
.method-list { padding-left:22px; color:#74665e; font-size:14px; line-height:1.9; }
.method-list li { padding:0 0 18px 7px; }
.method-list strong { color:#62564f; }
.listing-company-link { font-size:12px; margin-top:24px; line-height:1.7; }
@media(max-width:720px) { .resource-cards,.resource-links,.supplier-facts { grid-template-columns:1fr; gap:16px; } .resource-cards article { padding:20px; } .supplier-profile { padding:20px 17px; } .supplier-profile-heading { gap:10px; } .supplier-profile-heading h2 { font-size:25px; } .planning-entry { padding:0 6% 26px; gap:10px; } .planning-entry>span { width:100%; } .planning-entry a { min-height:35px; display:inline-flex; align-items:center; } .resource-footer { justify-content:center; } }

.contribution-footer{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;margin-top:14px}.contribution-footer a{text-underline-offset:4px}

/* Original item-specific vector illustrations. */
.card-art:not(:has(.supplier-photo)){height:216px;background:radial-gradient(ellipse at 45% 35%,#fffdf8 0%,#f4eee7 72%,#efe7df 100%)}
.card-art img:not(.supplier-photo){height:100%;padding:4px 5px 14px}
.detail-art:not(:has(.supplier-photo)){background:radial-gradient(ellipse at 45% 35%,#fffdf8,#efe7df)}
.illustration-context{font-size:12px;line-height:1.8;color:#786d65;padding:15px 18px;border:1px solid var(--line);border-radius:5px;background:#fbf8f4;margin:0 0 22px}
.illustration-context strong{font-weight:500;color:#544a44}.illustration-context a{display:inline-block;text-underline-offset:3px}.illustration-context .link-chevron{width:11px;height:11px;vertical-align:middle}
@media(max-width:700px){.card-art:not(:has(.supplier-photo)){height:210px}.illustration-context{font-size:12px}}

/* Compact budget help, placed before the rental cards. */
.budget-guide-links{display:flex;align-items:center;flex-wrap:wrap;gap:5px 20px;margin:-10px 0 23px;font-size:12px;color:#786a62}.budget-guide-links a{display:inline-flex;align-items:center;min-height:44px;color:#775960;text-underline-offset:4px}.analytics-testing-status{max-width:1000px;margin:18px auto;padding:12px 20px;background:#f6efec;color:#62564f;border-radius:5px;font-size:12px;line-height:1.7}
@media(max-width:600px){.budget-guide-links{gap:0 18px;margin-top:0}.budget-guide-links>span{width:100%;margin-bottom:2px}.analytics-testing-status{margin:12px 5%}}
