/* Terrace (estate agents): Bodoni and Jost, limestone and Aegean blue, square architecture, long Mediterranean shadows. */
.p-terrace {
  --fs-hero: clamp(2.8rem, 1.3rem + 5.4vw, 6rem);
  --shadow-sun: -36px 44px 70px -38px rgba(28, 34, 39, .5);
  letter-spacing: .004em;
}
.p-terrace :is(.hero__title, .page-title, .article-title, .biz-id__name, .owners__title, .section-title, .empty__title) { font-weight: 420; }
.p-terrace :is(.cat-index__name, .district__name, .acard__title, .lcard__title, .prose h2, .biz-sec__title) { font-weight: 460; }

/* Wordmark: italic Bodoni with a tracked roman suffix */
.p-terrace .wordmark__text { display: inline-flex; align-items: baseline; gap: .42em; }
.p-terrace .wm-a { font-family: var(--font-display); font-style: italic; font-weight: 500; letter-spacing: -.01em; font-size: 1.12em; }
.p-terrace .wm-b { font-family: var(--font-body); font-weight: 500; font-size: .5em; letter-spacing: .32em; text-transform: uppercase; color: var(--accent); }
.p-terrace .site-footer .wm-b { color: #D9B57C; }

.p-terrace .site-header, .p-terrace .site-header.is-scrolled { border-bottom-color: var(--line); background: color-mix(in oklab, var(--bg) 96%, transparent); }
.p-terrace .nav-list a { font-weight: 450; letter-spacing: .02em; }
.p-terrace .nav-list .is-current > a::after { height: 1px; bottom: 10px; }

/* Buttons: square, airy, quietly tracked */
.p-terrace .btn { font-weight: 500; letter-spacing: .06em; padding-inline: 1.5em; border-width: 1px; }
.p-terrace .btn--line { --b: var(--ink); background: transparent; }
.p-terrace .chip { border-radius: 0; font-weight: 450; letter-spacing: .02em; }
.p-terrace .kicker, .p-terrace .lcard__kicker, .p-terrace .hero__kicker { font-weight: 500; letter-spacing: .08em; }
.p-terrace .stars { --accent-2: #B98B49; }

/* Hero: a tall limestone portal casting a long late-afternoon shadow, with a brass setting-out line */
.p-terrace .hero__title { font-variation-settings: "opsz" 96; letter-spacing: -.03em; max-width: 13ch; }
.p-terrace .hero__intro { font-weight: 400; }
.p-terrace .hero__frame { box-shadow: var(--shadow-sun); }
.p-terrace .hero__media::before { content: ""; position: absolute; z-index: 0; inset: -22px 22px 22px -22px; border: 1px solid var(--accent-2); }
.p-terrace .hero__media::after { content: ""; position: absolute; z-index: 0; left: -22px; right: -64px; bottom: 22px; height: 1px; background: var(--accent-2); }
.p-terrace .hero__spot { border-radius: 0; border-top: 2px solid var(--accent-2); box-shadow: var(--shadow-sun); }
.p-terrace .hero__spot-name { font-style: italic; }
.p-terrace .ai-search__box { border: 1px solid var(--ink); border-radius: 0; box-shadow: none; padding-left: 20px; }
.p-terrace .ai-search__box:focus-within { box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 20%, transparent); }
@media (max-width: 900px) {
  .p-terrace .hero__frame { aspect-ratio: 4 / 4.4; }
  .p-terrace .hero__media::before { inset: -12px 12px 12px -12px; }
  .p-terrace .hero__media::after { display: none; }
}

/* Category index: italic Bodoni names over hairlines, a brass rule on hover */
.p-terrace .cat-index__item { border-top-color: var(--ink); position: relative; }
.p-terrace .cat-index__item::before { content: ""; position: absolute; top: -1px; left: 0; width: 0; height: 2px; background: var(--accent-2); transition: width .35s var(--ease); }
.p-terrace .cat-index__item:hover::before { width: 100%; }
.p-terrace .cat-index__name { font-style: italic; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.p-terrace .cat-index__count { letter-spacing: .06em; }

/* Areas: the island in limestone on an Aegean field */
.p-terrace .section--areas { --map-halo: var(--accent); --line: rgba(255, 255, 255, .22); --ink-soft: rgba(245, 245, 241, .76); --map-land: #F1EEE6; background: var(--accent); color: #F5F5F1; }
.p-terrace .section--areas .more-link { color: #E4C690; text-decoration-color: rgba(228, 198, 144, .5); }
.p-terrace .section--areas a:hover { color: #E4C690; }
.p-terrace .section--areas .cy-map__land { stroke: #D8C29A; }
.p-terrace .section--areas .cy-map__hatch { stroke: rgba(29, 76, 105, .12); }
.p-terrace .section--areas .cy-map__district { --map-halo: #F1EEE6; color: var(--ink); }
.p-terrace .section--areas .cy-map__count { fill: #575E66; }

/* Cards: square, lifted by a soft sun shadow */
.p-terrace .lcard { border-radius: 0; }
.p-terrace .lcard:has(.lcard__link:hover) { transform: translateY(-4px); box-shadow: var(--shadow-sun); }
.p-terrace .lcard__media { aspect-ratio: 4 / 3; }
.p-terrace .lcard__title { font-size: 1.4rem; line-height: 1.12; }
.p-terrace .logo-tile { border-radius: 0; box-shadow: 0 0 0 3px var(--surface), 0 0 0 4px var(--line); }
.p-terrace .logo-tile--mono { background: var(--ink); color: #F5F5F1; font-style: italic; }
.p-terrace .badge { border-radius: 0; letter-spacing: .06em; font-weight: 600; }
.p-terrace .acard__title { line-height: 1.1; }
.p-terrace .acard--lead .acard__title { font-style: italic; }

/* Owners band in charcoal with brass */
.p-terrace .owners { --on-accent: #F5F5F1; background: var(--ink); border-radius: 0; color: #F5F5F1; }
.p-terrace .owners .btn--on-accent { background: #F5F5F1; color: var(--ink); --b: #F5F5F1; }
.p-terrace .owners .btn--on-accent:hover { background: var(--accent-2); color: var(--ink); --b: var(--accent-2); }
.p-terrace .owners__steps li::before { border-radius: 0; border-color: #D9B57C; color: #D9B57C; font-style: italic; }

/* Business page and articles */
.p-terrace .biz-cover { box-shadow: var(--shadow-sun); }
.p-terrace .biz-id__logo { box-shadow: 0 0 0 6px var(--bg), 0 0 0 7px var(--line); }
.p-terrace .standfirst { font-style: italic; font-weight: 400; }
.p-terrace .article-title { font-size: clamp(2.4rem, 1.3rem + 4vw, 4.5rem); line-height: 1.02; }
.p-terrace .article-dek { font-size: var(--fs-lg); font-weight: 300; line-height: 1.45; color: var(--ink); }
.p-terrace .article-hero__img { aspect-ratio: 16 / 7; }
.p-terrace .prose--article { font-size: 1.125rem; line-height: 1.75; font-weight: 400; }
.p-terrace .prose blockquote { border-left-color: var(--accent-2); font-style: italic; }
.p-terrace .byline__avatar { border-radius: 0; background: var(--ink); font-family: var(--font-display); font-style: italic; }
.p-terrace .panel, .p-terrace .review-source, .p-terrace .branch, .p-terrace .facts div { border-radius: 0; }
.p-terrace .panel--claim { background: var(--sand); }
.p-terrace .map-pin span { border-radius: 0; transform: rotate(45deg); }
.p-terrace .view-toggle { border-radius: 0; }
.p-terrace .view-toggle a { border-radius: 0; }
