/* ROOFY_GUI_V1: shared visual layer; existing content and data layouts retained. */
:root{--rg-navy:#0b2339;--rg-ink:#142d49;--rg-green:#11834d;--rg-line:#dce5ec;--rg-bg:#f7fafc}
body{background:var(--rg-bg)!important;color:var(--rg-ink);font-family:Arial,Helvetica,sans-serif!important}
main h1,main h2,main h3{color:var(--rg-ink)}
main .card,main .panel,main .metric{border-color:var(--rg-line);border-radius:14px;box-shadow:0 6px 24px #0b233906}
main input,main select,main textarea{max-width:100%;box-sizing:border-box}
main p,main li{overflow-wrap:break-word}
#roofy-unified-header,#roofy-unified-header *{box-sizing:border-box}
#roofy-unified-header{display:block;width:100%;max-width:none;height:auto;min-height:72px;margin:0;padding:0;background:var(--rg-navy);color:#fff;border:0;position:relative;z-index:20;line-height:1.4}
#roofy-unified-header .rg-inner{width:100%;max-width:1240px;min-height:72px;margin:0 auto;padding:12px 24px;display:grid;grid-template-columns:auto minmax(160px,240px) 1fr;gap:24px;align-items:center}
#roofy-unified-header .rg-brand{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-size:23px;font-weight:800;letter-spacing:1px;white-space:nowrap}
#roofy-unified-header .rg-house{color:#50c878;font-size:29px;line-height:1}
#roofy-unified-header .rg-search{display:flex;align-items:stretch;gap:0;width:100%;min-width:0;margin:0;padding:0;background:#fff;border:1px solid #dce5ec;border-radius:8px;overflow:hidden}
#roofy-unified-header .rg-search input{display:block;flex:1;width:0;min-width:0;max-width:100%;margin:0;padding:10px;color:#142d49;background:white;border:0;border-radius:0;font:14px/1.4 Arial,Helvetica,sans-serif;box-shadow:none}
#roofy-unified-header button{margin:0;min-height:44px;padding:10px 12px;background:var(--rg-green);color:white;border:0;border-radius:0;font:700 13px/1.4 Arial,Helvetica,sans-serif;cursor:pointer;letter-spacing:normal}
#roofy-unified-header #rg-navigation{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:14px;max-width:none;margin:0;padding:0;background:none;position:static;width:auto}
#roofy-unified-header #rg-navigation a{display:inline-flex;align-items:center;min-height:44px;margin:0;padding:4px 0;color:white;font:700 13px/1.4 Arial,Helvetica,sans-serif;text-decoration:none;white-space:nowrap}
#roofy-unified-header #rg-navigation .rg-share{padding:9px 12px;background:var(--rg-green);border-radius:7px}
#roofy-unified-header #rg-navigation a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px}
#roofy-unified-header a:focus-visible,#roofy-unified-header button:focus-visible,#roofy-unified-header input:focus-visible{outline:3px solid #ffc85c;outline-offset:-3px}
#roofy-unified-header .rg-toggle{display:none;border:1px solid #63788a;border-radius:7px;background:transparent;gap:8px;align-items:center}
@media(max-width:1100px){
 #roofy-unified-header .rg-inner{grid-template-columns:1fr auto;gap:12px;padding:12px 18px}
 #roofy-unified-header .rg-search{grid-row:2;grid-column:1/-1}
 #roofy-unified-header .rg-toggle:not([hidden]){display:inline-flex;grid-column:2;grid-row:1}
 #roofy-unified-header #rg-navigation{grid-column:1/-1;justify-content:flex-start;gap:8px 18px}
 #roofy-unified-header.rg-ready:not(.rg-open) #rg-navigation{display:none}
 #roofy-unified-header #rg-navigation a{padding:8px 2px}
}
@media(max-width:480px){
 #roofy-unified-header .rg-inner{padding:10px 16px}
 #roofy-unified-header .rg-brand{font-size:23px}
 #roofy-unified-header #rg-navigation{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
 #roofy-unified-header #rg-navigation .rg-share{grid-column:1/-1;justify-content:center;margin-top:4px}
}

/* ROOFY_READABILITY_V1: page titles and explanatory text. */
body{--muted:#526477}
/* These selectors exclude the homepage hero and property report address. */
main > h1,main > .intro > h1,main > header > h1{
 font-size:clamp(30px,3.4vw,42px);line-height:1.18;font-weight:750;
 letter-spacing:-.025em;color:#142d49;margin:0 0 18px;overflow-wrap:break-word;
}
main > .eyebrow{font-size:12px;line-height:1.5;letter-spacing:.12em;color:#176744;margin-bottom:14px}
main > .card h2,main > .panel h2,main .grid > .panel h2{
 font-size:clamp(21px,2.1vw,24px);line-height:1.3;letter-spacing:-.015em;
 color:#142d49;margin-top:0;margin-bottom:14px;
}
main > p,main > .intro,main .intro p,main .card p,main .card li,main .panel p{
 font-size:16px;line-height:1.7;
}
main > .intro,main .intro p{color:#526477;max-width:70ch}
main .card p,main .card li{color:#34465a}
main .muted,main .small,main .roofy-freshness-note,main .town-chart-notes{
 color:#526477;font-size:14px;line-height:1.65;
}
main .metric span{font-size:14px;color:#526477;line-height:1.5}
main .roofy-saved-note,main .roofy-saved-row span,main .roofy-recent span,
main .roofy-address-filter-status{font-size:14px;line-height:1.6;color:#526477}
main .roofy-feature span{font-size:14px;line-height:1.55;color:#526477}
main .card .notice{font-size:14px;line-height:1.65;color:#34465a}
/* Alphabet counts and chart ticks retain their compact data-specific sizing. */
@media(max-width:600px){
 main input,main select,main textarea,#roofy-unified-header .rg-search input{font-size:16px}
 main > h1,main > .intro > h1,main > header > h1{margin-bottom:16px}
}

/* ROOFY_MOBILE_USABILITY_V1 */
@media(max-width:850px){
 /* Let grid/flex children shrink to their available width. Keep wide data
    inside its own scrolling region rather than clipping the document. */
 main,main .grid,main .grid > *,main .metrics,main .metrics > *,
 main .report-grid,main .report-grid > *,main .summary-grid > *,
 main .panel,main .card,main .report-card,main .town-chart-panel,
 main .roofy-freshness-grid > *,main .roofy-saved-list > *,
 main .roofy-recent-heading,main .roofy-saved-row > *{min-width:0;box-sizing:border-box}
 main .table,main .table-wrap,main .table-wrapper,main .town-chart-scroll{
  min-width:0;max-width:100%;overflow-x:auto;
  overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
 }
 main .table table{min-width:440px}
 main .table table:has(th:nth-child(4)){min-width:620px}
 main .table th,main .table td{vertical-align:top}
 main .table th:last-child,main .table td:last-child{white-space:nowrap}
 main .table a{overflow-wrap:anywhere}
 main button,main .cta,main .roofy-save-button,
 main .roofy-street-browse a,main .roofy-postcode-directory-link a,
 main .alphabet a,main .pagination a{min-height:44px;box-sizing:border-box;touch-action:manipulation}
 main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
 main select{min-height:44px;font-size:16px}
 main textarea{font-size:16px}
 main .cta,main .roofy-street-browse a,main .roofy-postcode-directory-link a{
  display:inline-flex;align-items:center;justify-content:center;max-width:100%;white-space:normal;
 }
 main .roofy-save-control,main .roofy-address-filter-controls,
 main .town-share-actions{flex-wrap:wrap;gap:10px}
 main .form > label{min-width:0;flex-basis:200px}
 main .form input{min-width:0;max-width:100%}
 main .roofy-saved-row{flex-wrap:wrap;gap:12px}
 main .roofy-saved-row > a{flex-basis:180px}
 main .roofy-saved-row button{flex-shrink:0}
 main .roofy-recent-heading{flex-wrap:wrap;gap:12px}
 main .roofy-recent-heading h2{min-width:0;flex:1 1 180px}
 main .roofy-recent-heading button{white-space:normal}
 main .roofy-address-filter-controls input{min-width:0}
 main .roofy-modern-search input{min-width:0;max-width:100%}
 main .property-option{max-width:100%;min-width:0;white-space:normal}
 main .property-main,main .property-address,main .property-meta{min-width:0;overflow-wrap:anywhere}
 main > ul > li{min-width:0}
 main > ul > li > a{min-height:44px;display:flex;align-items:center;overflow-wrap:anywhere}
 footer a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:4px 6px;box-sizing:border-box;overflow-wrap:anywhere}
}
@media(max-width:480px){
 main .search-row{flex-wrap:wrap}
 main .search-row input{flex:1 1 100%;min-width:0}
 main .search-row button{flex:1 1 100%}
 main .roofy-modern-search{flex-direction:column;align-items:stretch}
 main .roofy-modern-search .roofy-search-icon{display:none}
 main .roofy-modern-search input{width:100%;flex-basis:auto}
 main .roofy-modern-search button{width:100%;white-space:normal}
 main .alphabet,main .pagination{gap:8px}
 main .alphabet a,main .pagination a{min-width:44px}
 main .town-share-actions .cta,main .town-share-actions button{flex:1 1 130px}
 main .roofy-freshness-grid{grid-template-columns:minmax(0,1fr)}
 main .report-address{overflow-wrap:anywhere}
}

/* ROOFY_SHARED_FOOTER_V1 */
#roofy-unified-footer,#roofy-unified-footer *{box-sizing:border-box}
#roofy-unified-footer{
 display:block;clear:both;position:relative;width:100%;max-width:none;margin:48px 0 0;padding:0;
 background:#0b2339;color:#d2dde7;border:0;border-top:1px solid #294258;text-align:left;
 font:15px/1.6 Arial,Helvetica,sans-serif;overflow-wrap:break-word;
}
#roofy-unified-footer .rf-inner{width:100%;max-width:1240px;margin:0 auto;padding:36px 24px 12px}
#roofy-unified-footer .rf-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.3fr);gap:40px}
#roofy-unified-footer .rf-grid > *{min-width:0}
#roofy-unified-footer .rf-brand{display:inline-flex;align-items:center;gap:9px;min-height:44px;font-size:24px;font-weight:800;letter-spacing:.01em;color:#fff}
#roofy-unified-footer .rf-brand span{font-size:30px;color:#50c878}
#roofy-unified-footer p{margin:10px 0 0;color:#d2dde7;font-size:15px;line-height:1.7;max-width:34ch}
#roofy-unified-footer .rf-description{color:#b8cad9;font-size:14px}
#roofy-unified-footer nav{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;position:static;width:auto;max-width:none;margin:0;padding:0;background:transparent}
#roofy-unified-footer h2{margin:8px 0 10px;font-size:16px;line-height:1.4;letter-spacing:normal;font-weight:700;color:#fff}
#roofy-unified-footer a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:6px 0;color:#d2dde7;text-decoration:none;font-size:14px;line-height:1.5;overflow-wrap:anywhere;white-space:normal;touch-action:manipulation}
#roofy-unified-footer a:hover{text-decoration:underline;text-underline-offset:4px;color:#fff}
#roofy-unified-footer a:focus-visible{outline:3px solid #ffc85c;outline-offset:3px;border-radius:3px}
#roofy-unified-footer a.rf-brand{font-size:24px;color:#fff}
#roofy-unified-footer .rf-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;margin-top:28px;padding-top:12px;border-top:1px solid #294258}
#roofy-unified-footer small{color:#b8cad9;font-size:13px;line-height:1.6}
@media(max-width:760px){
 #roofy-unified-footer{margin-top:32px}
 #roofy-unified-footer .rf-inner{padding:28px 20px 12px}
 #roofy-unified-footer .rf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 #roofy-unified-footer .rf-brand-block{grid-column:1/-1}
 #roofy-unified-footer p{max-width:54ch}
}
@media(max-width:480px){
 #roofy-unified-footer .rf-inner{padding:24px 16px 12px}
 #roofy-unified-footer .rf-grid{grid-template-columns:minmax(0,1fr);gap:20px}
 #roofy-unified-footer .rf-bottom{margin-top:20px}
}

/* ROOFY_SEARCH_FOCUS_FIX_V1 */
#roofy-unified-header .rg-search input{
  font-size:16px!important;
  min-width:0;
}
#roofy-unified-header .rg-search button{
  flex-shrink:0;
}


/* ROOFY_FAVICON_BRAND_LOGO_V1 */
#roofy-unified-header .rg-brand .rg-house,
#roofy-unified-footer .rf-brand .rf-house{
    display:inline-block;
    flex:0 0 30px;
    width:30px;
    height:30px;
    padding:0;
    margin:0;
    background:url("/favicon.svg?v=roofy1") center/contain no-repeat;
    font-size:0;
    line-height:0;
    color:transparent;
}
#roofy-unified-header .rg-brand .rg-house::before,
#roofy-unified-header .rg-brand .rg-house::after,
#roofy-unified-footer .rf-brand .rf-house::before,
#roofy-unified-footer .rf-brand .rf-house::after{
    content:none;
}


/* ROOFY_FOOTER_FAVICON_V2 */
#roofy-unified-footer .rf-brand > span:first-child{
    display:inline-block;
    flex:0 0 30px;
    width:30px;
    height:30px;
    padding:0;
    margin:0;
    background:url("/favicon.svg?v=roofy1") center/contain no-repeat;
    font-size:0;
    line-height:0;
    color:transparent;
}
#roofy-unified-footer .rf-brand > span:first-child::before,
#roofy-unified-footer .rf-brand > span:first-child::after{
    content:none;
}


/* ROOFY_LOGO_GREEN_BUTTONS_V1 */
:root{
    --roofy-button-green:#08a94f;
    --roofy-button-hover:#078b41;
}

html body #searchButton.primary-btn,
html body #roofy-unified-header .rg-search button,
html body #roofy-unified-header #rg-navigation .rg-share,
html body #propertyList .roofy-search-report,
html body main.roofy-postcode-directory .property .roofy-report-button,
html body .roofy-sort-buttons button[aria-pressed="true"]{
    background:var(--roofy-button-green) !important;
    border-color:var(--roofy-button-green) !important;
    color:#fff !important;
}

html body #searchButton.primary-btn:hover:not(:disabled),
html body #roofy-unified-header .rg-search button:hover:not(:disabled),
html body #roofy-unified-header #rg-navigation .rg-share:hover,
html body #propertyList .property-option:hover .roofy-search-report,
html body #propertyList .property-option:focus-visible .roofy-search-report,
html body main.roofy-postcode-directory .property:hover .roofy-report-button,
html body main.roofy-postcode-directory .property:focus-visible .roofy-report-button,
html body .roofy-sort-buttons button[aria-pressed="true"]:hover{
    background:var(--roofy-button-hover) !important;
    border-color:var(--roofy-button-hover) !important;
}


/* ROOFY_TOWN_BUTTON_GREEN_V1 */
html body .town-share-bar .town-share-actions a.cta{
    background:#08a94f !important;
    border-color:#08a94f !important;
    color:#fff !important;
}
html body .town-share-bar .town-share-actions a.cta:hover{
    background:#078b41 !important;
    border-color:#078b41 !important;
}
html body .town-share-bar .town-share-actions a.cta:focus-visible{
    outline:3px solid #2878cc;
    outline-offset:3px;
}
