/* Shared readable project guides. Brand colours and existing enquiry routes stay in place. */
.project-visual{--v-green:#193f36;--v-ink:#203c35;--v-gold:#b58a42;--v-line:#e2e7e1;--v-soft:#f0f4ee}
.v-icon{width:26px;height:26px;display:block;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.project-visual .detail-grid{gap:32px}
.project-visual .detail-main{gap:24px;min-width:0}
.project-visual .detail-block,.project-visual .detail-block:first-child{padding:30px;border:1px solid var(--v-line);border-radius:24px;background:#fff;box-shadow:0 10px 32px #1d3a2e04;min-width:0}
.project-visual .detail-no{display:inline-block;padding:8px 11px;background:#edf3ed;border-radius:9px;color:#496f5c;letter-spacing:.12em}
.project-visual .detail-block h2{font-size:clamp(32px,3.5vw,43px);line-height:1.1;margin:18px 0}
.project-visual .detail-block p,.project-visual .detail-lead{font-size:16px;line-height:1.75;color:#56615b}
.project-visual .detail-lead{font-size:17px!important;line-height:1.7!important}
.project-visual .detail-note{font-size:13px!important;line-height:1.65;color:#6f776e!important}
.project-visual .detail-list{font-size:15px;line-height:1.85}
.project-visual .detail-section{padding-top:36px}
.project-visual .detail-overview-grid{gap:12px;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}
.project-visual .detail-fact{border:1px solid var(--v-line);border-radius:18px;padding:22px 20px;background:#fff;min-height:160px}
.project-visual .detail-fact .v-icon{color:var(--v-gold);margin-bottom:16px}
.project-visual .detail-fact span{font-size:10px;letter-spacing:.11em;color:#707c71}
.project-visual .detail-fact strong{font-size:23px;line-height:1.15}
.project-visual .project-contents{gap:8px;position:relative}
.project-visual .project-contents a{font-size:12px;padding:12px 14px}
.project-visual .detail-costs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:0}
.project-visual .detail-cost-row{display:block;padding:20px;border:1px solid var(--v-line);border-radius:16px;background:#f8faf6;min-width:0}
.project-visual .detail-cost-row .v-icon{color:var(--v-gold);margin-bottom:14px}
.project-visual .detail-cost-row strong{display:block;font-size:15px;line-height:1.45;margin-bottom:8px}
.project-visual .detail-cost-row span{display:block;font-size:14px;line-height:1.65;color:#66716a}
.project-visual .detail-steps{gap:12px}
.project-visual .detail-step,.project-visual .detail-step:last-child{padding:18px;border:1px solid var(--v-line);border-radius:16px;background:#f8faf6}
.project-visual .detail-step strong{font-size:15px}
.project-visual .detail-step p{font-size:14px!important}
.project-visual .detail-plan div{background:var(--v-soft);border-color:var(--v-line)}
.project-visual .detail-plan strong{font-size:39px;color:var(--v-green)}
.project-visual .detail-plan span{font-size:13px;line-height:1.5}
.project-visual .detail-callout{font-size:14px;line-height:1.7;border-radius:0 16px 16px 0}
.project-visual .detail-disclaimer{font-size:12px;line-height:1.75}
.project-visual .detail-source-list a{font-size:14px;line-height:1.6}
.project-visual .detail-card p,.project-visual .detail-card .mini-list li{font-size:13px}
.project-visual .rockhill-notice{font-size:14px!important;line-height:1.75!important}
.v-offer{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;padding:24px;border-radius:18px;background:linear-gradient(120deg,#eaf0e7,#f7f4e8);margin:20px 0}
.v-offer .v-icon{width:44px;height:44px;color:var(--v-gold)}
.v-offer span,.v-offer strong,.v-offer small{display:block}
.v-offer span{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:#637561}
.v-offer strong{font:600 clamp(36px,4vw,48px)/1.15 "Cormorant Garamond",serif;color:var(--v-ink);margin:5px 0}
.v-offer small{font-size:13px;line-height:1.6;color:#5e6a60}
.v-subtitle{font:600 29px/1.15 "Cormorant Garamond",serif;margin:30px 0 18px;color:var(--v-ink)}
.v-journey{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:22px 0 0;counter-reset:journey}
.v-journey li{counter-increment:journey;position:relative;padding:22px;border:1px solid var(--v-line);border-radius:16px;background:#fafbf7;min-width:0}
.v-journey li::before{content:counter(journey,decimal-leading-zero);position:absolute;right:18px;top:16px;font:600 28px/1 "Cormorant Garamond",serif;color:#becbbd}
.v-journey .v-icon{color:var(--v-gold);margin-bottom:18px}
.v-journey strong{display:block;font-size:15px;line-height:1.45;color:#243e31}
.v-journey p{font-size:14px!important;line-height:1.65!important;margin:8px 0 0}
.v-location{margin:22px 0;border:1px solid #d7dfd4;border-radius:22px;overflow:hidden;background:#f1f4eb}
.v-location-art{position:relative;height:220px;overflow:hidden;background:radial-gradient(ellipse at 80% 10%,#d1e2d9 0,transparent 55%),#eaf0e6}
.v-location-art>svg{width:100%;height:100%;display:block}
.v-location-origin{position:absolute;top:25px;left:24px;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;background:#fff;box-shadow:0 8px 22px #1d3d2810}
.v-location-origin .v-icon{color:var(--v-gold);width:32px;height:32px}
.v-location-origin strong{font-size:16px;display:block;line-height:1.4}
.v-location-origin span{font-size:12px;color:#687769}
.v-location-road{position:absolute;right:25px;bottom:24px;color:#fff;background:var(--v-green);border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.05em}
.v-location-caption{position:absolute;left:24px;bottom:18px;font-size:11px;color:#687765;max-width:48%;line-height:1.5}
.v-travel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#436057}
.v-travel-item{display:flex;align-items:center;gap:14px;padding:20px;background:#24483e;min-width:0;color:white}
.v-travel-item .v-icon{color:#c7ac71;width:22px;height:22px}
.v-travel-time{flex:none;min-width:52px}
.v-travel-time strong{font:600 34px/1 "Cormorant Garamond",serif;color:#e0bf7d}
.v-travel-time small{font-size:10px;margin-left:3px;color:#d5dfd5}
.v-travel-name{font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.v-note{font-size:13px!important;line-height:1.65!important;color:#697566!important}
.v-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:24px 0}
.v-stat{padding:20px 14px;border-radius:16px;background:var(--v-green);color:white;text-align:center;min-width:0}
.v-stat strong{display:block;font:600 45px/1 "Cormorant Garamond",serif;color:#e1c17f;margin-bottom:8px}
.v-stat span{display:block;font-size:12px;line-height:1.5;color:#e3eae1}
.v-amenity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0}
.v-amenity-group{padding:22px;border:1px solid var(--v-line);border-radius:18px;background:#f9fbf6;min-width:0}
.v-amenity-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.v-amenity-heading .v-icon{width:31px;height:31px;color:var(--v-gold)}
.v-amenity-heading h3{font:600 25px/1.1 "Cormorant Garamond",serif;margin:0;color:var(--v-ink)}
.v-amenity-group ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.v-amenity-group li{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.45;color:#4c6253}
.v-amenity-group li .v-icon{width:20px;height:20px;color:#759474}
.v-family-note{display:flex;align-items:flex-start;gap:18px;border:1px solid #c7d5c3;border-radius:18px;padding:24px;background:#eaf1e5;margin:22px 0}
.v-family-note>.v-icon{color:var(--v-gold);width:38px;height:38px}
.v-family-note strong{font:600 28px/1.1 "Cormorant Garamond",serif;display:block;color:var(--v-ink)}
.v-family-note p{font-size:14px!important;line-height:1.7!important;margin:10px 0 0}
.v-brands{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0}
.v-brand{border:1px solid var(--v-line);border-radius:15px;padding:18px;background:#fbfaf5;min-width:0}
.v-brand .v-icon{color:var(--v-gold);margin-bottom:14px}
.v-brand strong{display:block;font:600 24px/1.1 "Cormorant Garamond",serif;color:#77602c;overflow-wrap:anywhere}
.v-brand span{display:block;font-size:12px;line-height:1.5;color:#6b7466;margin-top:8px}
.v-fitout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;list-style:none;padding:0;margin:20px 0}
.v-fitout li{display:flex;align-items:flex-start;gap:12px;padding:18px;border:1px solid var(--v-line);border-radius:15px;font-size:14px;line-height:1.5;color:#4a604f;min-width:0}
.v-fitout .v-icon{color:var(--v-gold);width:24px;height:24px}
.v-timing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}
.v-timing-card{padding:22px;border:1px solid var(--v-line);border-radius:18px;background:#f4f7ef;min-width:0}
.v-timing-card .v-icon{color:var(--v-gold);margin-bottom:16px}
.v-timing-card strong{display:block;font:600 33px/1.1 "Cormorant Garamond",serif;color:var(--v-ink);margin-bottom:10px}
.v-timing-card span{display:block;font-size:13px;line-height:1.6;color:#61705e}
.v-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.v-path{padding:22px;border-radius:18px;background:#f0f4eb;border:1px solid var(--v-line)}
.v-path .v-icon{color:var(--v-gold);margin-bottom:15px}
.v-path h3{font:600 28px/1.1 "Cormorant Garamond",serif;margin:0 0 10px;color:var(--v-ink)}
.v-path p{font-size:14px!important;line-height:1.65!important;margin:0}
@media(max-width:1100px){.project-visual .detail-grid{grid-template-columns:minmax(0,1fr) 285px;gap:24px}.project-visual .detail-block{padding:24px}.v-brands{grid-template-columns:repeat(2,minmax(0,1fr))}.v-amenity-group{padding:18px}}
@media(max-width:900px){.project-visual .detail-grid{grid-template-columns:1fr}.project-visual .detail-fact{border:1px solid var(--v-line)}.project-visual .detail-fact:last-child{grid-column:1/-1}.project-visual .detail-aside{position:static}}
@media(max-width:600px){.project-visual .detail-main{gap:18px}.project-visual .detail-block,.project-visual .detail-block:first-child{padding:22px 18px;border-radius:20px}.project-visual .detail-block h2{font-size:34px}.project-visual .detail-block p{font-size:15px}.project-visual .detail-overview-grid{gap:9px}.project-visual .detail-fact{padding:17px 14px;min-height:150px}.project-visual .detail-fact strong{font-size:23px}.project-visual .detail-fact .v-icon{margin-bottom:13px}.project-visual .project-contents a{font-size:11px;padding:10px}.project-visual .detail-costs,.v-journey,.v-amenity-grid,.v-paths{grid-template-columns:1fr}.project-visual .detail-cost-row{padding:18px}.v-journey li{padding:20px}.v-stats{gap:7px}.v-stat{padding:18px 8px}.v-stat strong{font-size:39px}.v-stat span{font-size:11px}.v-travel-item{padding:16px 11px;gap:9px;flex-wrap:wrap}.v-travel-item>.v-icon{display:none}.v-travel-time{min-width:46px}.v-travel-name{font-size:12px;flex:1}.v-location-origin{left:16px;top:22px;padding:12px}.v-location-caption{left:16px;font-size:10px}.v-location-road{right:16px;bottom:22px}.v-brands{gap:9px}.v-brand{padding:16px 13px}.v-brand strong{font-size:23px}.v-fitout{grid-template-columns:1fr}.v-family-note{padding:19px;gap:13px}.v-family-note strong{font-size:26px}.v-family-note>.v-icon{width:30px;height:30px}.v-timing{gap:9px}.v-timing-card{padding:18px 13px}.v-timing-card strong{font-size:28px}.v-timing-card span{font-size:12px}.v-offer{padding:20px;gap:16px}.v-offer strong{font-size:43px}.project-visual .detail-cta{font-size:14px}}
