@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(font-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(font-4.ttf) format('truetype');
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(font-5.ttf) format('truetype');
}
:root{--ink:#111111;--muted:#64615b;--accent:#c5a46d;--paper:#fbfaf8;--line:#d4d0c8;--white:#fff;--serif:'Source Serif 4',Georgia,serif;--sans:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.65 var(--sans)}a{color:inherit;text-underline-offset:.2em}a:hover{color:#73572c}button,input,select{font:inherit}button{cursor:pointer;background:var(--ink);color:white;padding:.7em 1.1em;border:1px solid var(--ink);border-radius:3px}button:hover{background:#315052}button:disabled{opacity:.55;cursor:wait}input{display:block;width:100%;padding:.85em;border:1px solid #899693;border-radius:3px;background:#fff;color:var(--ink);margin:.4rem 0 1.2rem}input:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #97753d;outline-offset:4px}h1,h2,h3{font-family:var(--serif);line-height:1.18;font-weight:500}h1{font-size:clamp(2.3rem,4vw,3.6rem);margin:.4em 0 .5em;letter-spacing:-.035em}h2{font-size:1.9rem;margin-top:1.3em}h3{font-size:1.35rem}.site-header{min-height:94px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:20px 5vw;gap:20px}.brand{display:block;min-width:0;flex:0 1 260px}.brand img{display:block;width:260px;max-width:100%;height:auto;filter:url("#tnr-portal-logo-gold")}.header-actions{display:flex;align-items:center;gap:26px;font-size:.85rem;flex-shrink:0}.header-actions form{margin:0}.header-actions button{background:transparent;color:var(--ink);border-color:#bcc3bc;padding:.45em 1em}.login{max-width:520px;margin:9vh auto;padding:36px 36px 48px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--accent);box-shadow:0 12px 45px #152b3008}.login h1{font-size:3rem}.login p{color:var(--muted)}.login form{margin-top:28px}.login label{font-size:.9rem;font-weight:600}.login form button{margin:0 .4rem .6rem 0}.eyebrow{color:#786039;text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:700}.portal-layout{max-width:1400px;margin:auto;display:grid;grid-template-columns:265px minmax(0,1fr);gap:48px;padding:40px 5vw 75px}aside{padding-top:14px}aside h2{font-size:1.65rem;margin:12px 0 26px}aside nav{display:flex;flex-direction:column;gap:4px}aside nav a{padding:11px 14px;border-radius:3px;text-decoration:none;font-size:.9rem}aside nav a[aria-current]{background:var(--ink);color:#fff}aside nav a:hover{background:#e6e8df;color:var(--ink)}.quiet{color:var(--muted);font-size:.78rem;margin-top:35px;max-width:175px}.guide{min-width:0;background:#fff;padding:28px 40px 48px;border:1px solid var(--line);border-radius:4px}.guide-top{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:28px;font-size:.75rem;color:var(--muted)}.guide-top button{border:0;background:transparent;color:var(--muted);padding:0;text-decoration:underline}article{overflow-wrap:anywhere}article p,article li{max-width:74ch}article img{max-width:100%;height:auto;border-radius:4px;display:block;margin:20px 0}article img:first-child{max-height:450px;object-fit:cover}article ul,article ol{padding-left:1.4rem}article li{margin:.45rem 0}article a{color:#496666}article h1:first-child{margin-top:0}details{border-bottom:1px solid var(--line);padding:15px 0}summary{cursor:pointer;font-weight:600}footer{display:flex;flex-wrap:wrap;gap:12px 25px;justify-content:center;border-top:1px solid var(--line);padding:30px;font-size:.73rem;color:var(--muted);background:#fff}.skip{position:absolute;left:10px;top:-100px;background:#fff;padding:12px;z-index:10}.skip:focus{top:10px}.choices{list-style:none;padding:0}.choices a{display:block;border:1px solid var(--line);padding:16px;margin-bottom:10px}.privacy-cover article{visibility:hidden}@media(max-width:800px){.site-header{padding:18px 20px;min-height:80px}.brand{flex-basis:200px}.brand img{width:200px}.header-actions{gap:12px}.header-actions>a{display:none}.portal-layout{grid-template-columns:1fr;gap:20px;padding:22px 16px}aside{padding:0}aside h2{margin:4px 0 18px}aside nav{flex-direction:row;overflow-x:auto;gap:8px;padding:4px 4px 12px}aside nav a{white-space:nowrap;border:1px solid var(--line);padding:9px 13px}aside .quiet{display:none}.guide{padding:24px 22px 35px}.login{margin:45px 16px;padding:28px 24px}h1{font-size:2.4rem}footer{justify-content:flex-start;padding:25px 20px}}@media print{.site-header,aside,.guide-top,footer{display:none}.portal-layout{display:block;padding:0}.guide{border:0;padding:0}body{background:white}.privacy-cover article{visibility:visible}}
.home-intro{display:grid;grid-template-columns:1fr;gap:20px}.home-routes,.equipment-grid,.utility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:28px 0}.home-routes>a,.equipment-card,.utility-card{display:block;border:1px solid var(--line);padding:22px;text-decoration:none;border-radius:4px}.equipment-card h3{margin:.4em 0}.equipment-card p{font-size:.9rem}.route-number{font-size:.7rem;color:var(--muted)}.section-links,.tab-bar,.garden-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.section-links a,.season-link,.garden-tabs a{display:block;padding:7px 13px;border:1px solid var(--line);text-decoration:none;font-size:.85rem}.plant-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.plant-entry{display:block;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:18px}.plant-entry img{aspect-ratio:4/3;object-fit:cover;margin:0}.plant-entry h3{margin:.5em 0}.plant-entry p{font-size:.85rem}.care-list{list-style:none;padding:0}.care-list li{padding:18px 0;border-bottom:1px solid var(--line);display:flex;gap:18px}.care-list h3{margin:0 0 10px}.check-square{border:1px solid #b1b5ad;width:20px;height:20px;flex:0 0 20px;margin-top:4px}.contact-panel{border-top:1px solid var(--line);padding:25px 0}.contact-links,.topic-links{display:flex;flex-wrap:wrap;gap:15px}.breadcrumb{font-size:.8rem}.lead{font-size:1.1rem}.equipment-action{font-size:.8rem}.pill{font:12px var(--sans);color:var(--muted)}.row-meta .plus{display:none}.directory-equipment{border-bottom:1px solid var(--line);padding:10px 0}.source-footnote{color:var(--muted);font-size:.75rem}.button{display:inline-block;padding:10px 17px;background:#f0eee9;color:var(--ink);text-decoration:none}.button:hover{background:#e8e1d5;color:var(--ink)}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}@media(max-width:550px){.home-routes,.equipment-grid,.utility-grid,.plant-catalog,.photo-grid{grid-template-columns:1fr}.care-list li{gap:12px}.guide h1{font-size:2.15rem}}
aside,.home-title,.home-image,.home-routes>*{min-width:0}.home-intro{grid-template-columns:minmax(0,1fr)}@media(max-width:800px){.portal-layout{grid-template-columns:minmax(0,1fr)}aside nav{max-width:100%}}
.tnr-logo-filter { position: absolute; pointer-events: none; }
/* Keep the homeowner guide compact and readable without changing its content. */
.utility-card h2 { margin: .65em 0 .45em; }
.utility-card p { margin: .65em 0; }
.utility-card > a { display: block; width: fit-content; max-width: 100%; margin-top: .45rem; overflow-wrap: anywhere; }
.home-routes > a h2 { margin: .55em 0 .4em; }
.home-routes > a p { margin: .5em 0 .8em; }
.guide details > summary:has(> h3) {
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr);
  align-items: center;
  column-gap: .55rem;
  row-gap: .2rem;
  min-height: 44px;
  list-style: none;
}
.guide details > summary:has(> h3)::-webkit-details-marker { display: none; }
.guide details > summary:has(> h3)::before {
  content: '';
  width: .45rem;
  height: .45rem;
  border: solid currentColor;
  border-width: 0 2px 2px 0;
  transform: rotate(-45deg);
}
.guide details[open] > summary:has(> h3)::before { transform: rotate(45deg); }
.guide details > summary > h3 { margin: 0; }
.guide details > summary > .row-meta { grid-column: 2; }
.section-links a, .season-link, .garden-tabs a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 800px) {
  aside h2 { margin-bottom: 14px; }
  aside nav { padding-bottom: 10px; scrollbar-width: thin; scrollbar-color: #a99b82 #ece8df; }
  aside nav::-webkit-scrollbar { height: 5px; }
  aside nav::-webkit-scrollbar-track { background: #ece8df; }
  aside nav::-webkit-scrollbar-thumb { background: #a99b82; border-radius: 3px; }
  .guide-top { margin-bottom: 22px; }
}
/* Directory controls stay legible in both expanded and collapsed states. */
button[data-directory-toggle] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 44px;
  padding: 12px 18px;
  margin: 4px 0 16px;
  border: 1px solid #97753d;
  border-radius: 6px;
  background: #f7f3ec;
  color: var(--ink);
  font-weight: 600;
  line-height: 1.3;
}
button[data-directory-toggle]::after {
  content: "";
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  border: solid currentColor;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
button[data-directory-toggle][aria-expanded="true"]::after { transform: rotate(225deg); }
button[data-directory-toggle]:hover { background: #ebe2d2; border-color: #73572c; }
button[data-directory-toggle]:active { background: #e1d6c2; }
/* Preserve the full frame of the owner-provided home photograph. */
.guide .home-image img { width: 100%; height: auto; max-height: none; object-fit: contain; }
/* Contact actions stay together, with one identity and a separate topic group. */
.contact-page .page-heading h1 { margin: 26px 0 18px; }
.contact-page .lead { max-width: 66ch; margin: 0 0 30px; }
.contact-card {
  padding: 26px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent);
  border-radius: 8px;
  background: #fbfaf7;
}
.contact-identity { display: flex; justify-content: space-between; align-items: center; gap: 16px 24px; flex-wrap: wrap; }
.contact-identity p { margin: 0; line-height: 1.55; }
.contact-identity strong { display: block; font-size: 1rem; font-weight: 600; }
.contact-identity span { display: block; color: var(--muted); font-size: .9rem; }
.contact-identity > a { font-size: .85rem; text-underline-offset: 4px; }
.contact-methods { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); gap: 20px; margin-top: 24px; padding-top: 23px; border-top: 1px solid var(--line); }
.contact-methods h2 { margin: 0 0 5px; font: 600 .72rem/1.5 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.contact-methods .contact-value { margin: 0; font-size: 1.06rem; line-height: 1.6; overflow-wrap: anywhere; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.contact-action { display: inline-flex; align-items: center; justify-content: center; min-width: 112px; min-height: 46px; padding: 11px 19px; border: 1px solid #b8ac96; border-radius: 5px; background: #fff; color: var(--ink); font-size: .9rem; font-weight: 600; line-height: 1.45; text-decoration: none; }
.contact-action:visited { color: var(--ink); }
.contact-action:hover { color: var(--ink); background: #eee7dc; border-color: #97753d; }
.contact-action-primary, .contact-action-primary:visited { color: #fff; background: #202c2a; border-color: #202c2a; }
.contact-action-primary:hover { color: #fff; background: #354943; border-color: #354943; }
.contact-topics { margin-top: 30px; }
.contact-topics h2 { margin: 0 0 12px; font-size: 1.3rem; }
.contact-topics .topic-links { gap: 4px 24px; }
.contact-topics a { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; font-size: .9rem; text-underline-offset: 4px; }
@media (max-width: 600px) {
  .contact-card { padding: 21px 18px; }
  .contact-methods { grid-template-columns: 1fr; gap: 18px; }
  .contact-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .contact-action { min-width: 0; padding-inline: 12px; }
  .contact-action-primary { grid-column: 1 / -1; }
  .contact-topics .topic-links { flex-direction: column; gap: 0; }
}
@media print {
  .tnr-print, .tab-bar, .garden-tabs, .breadcrumb, [data-directory-toggle] { display: none !important; }
  .care-list li, .equipment-card, .plant-entry, .photo-grid img { break-inside: avoid; }
  article h1, article h2, article h3 { break-after: avoid; }
  article p, article li { orphans: 3; widows: 3; }
  .contact-card, .contact-topics { break-inside: avoid; }
  .contact-action-primary, .contact-action-primary:visited { background: #fff; color: #111; border-color: #777; }
}
