/* R113 Batch B — soft 3D surfaces, one icon family and the site colour combination.
   Every colour here is a theme token (set in <head> by app/r113_design.php from the chosen combination), so clicking a
   combination on Theme & Appearance recolours all of it. Depth comes from light: a bright top edge, a faint lower edge
   and two soft shadows tinted with the deep colour. Motion is short, transform-only, and off for reduced motion. */

:root{
  --r113-edge:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 color-mix(in srgb,var(--d3-navy) 5%,transparent);
  --r113-lift-1:0 1px 2px color-mix(in srgb,var(--d3-navy) 7%,transparent),0 6px 16px -10px color-mix(in srgb,var(--d3-navy) 30%,transparent);
  --r113-lift-2:0 2px 4px color-mix(in srgb,var(--d3-navy) 6%,transparent),0 18px 34px -18px color-mix(in srgb,var(--d3-navy) 42%,transparent);
  --r113-line:color-mix(in srgb,var(--d3-navy) 11%,#fff);
  --r113-line-accent:color-mix(in srgb,var(--d3-green) 38%,#fff);
  --r113-ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- shared gradients for icons (stops read the theme) ---------- */
.r113-s-tint1{stop-color:#fff}
.r113-s-tint2{stop-color:var(--r113-accent-soft,#9fd2c3)}
.r113-s-white2{stop-color:var(--d3-navy-tint,#e8eef8)}
.r113-s-acc1{stop-color:var(--d3-green-brand,#14937a)}
.r113-s-acc2{stop-color:var(--d3-green-hover,#0b6151)}

/* ---------- the icon family ---------- */
.r113-i{display:inline-block;flex:none;vertical-align:-.2em;overflow:visible}
.r113-i .r113-f{fill:url(#r113-tint) var(--r113-accent-soft,#bfe3d8);stroke:none}
.r113-i .r113-o{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.btn .r113-i .r113-f,.d3-btn-primary .r113-i .r113-f,button .r113-i .r113-f{fill:color-mix(in srgb,currentColor 18%,transparent)}
.r113-i.is-on .r113-f{fill:#f5b83d}.r113-i.is-on .r113-o{stroke:#b7791f}
.r113-i.is-ok{color:var(--d3-ok,#1e6b47)}.r113-i.is-ok .r113-f{fill:var(--d3-ok-bg,#e3f3ea)}
.r113-i.is-bad{color:var(--d3-bad,#a3261b)}.r113-i.is-bad .r113-f{fill:var(--d3-bad-bg,#fdeae7)}
.r113-i.is-warn{color:var(--d3-warn,#7a4e00)}.r113-i.is-warn .r113-f{fill:var(--d3-warn-bg,#fff3d6)}
.r113-i.is-muted{color:var(--d3-faint,#8a93a0)}
.r113-i.is-lock{color:var(--d3-muted,#5a6472);vertical-align:-.15em}
.r113-stars{display:inline-flex;gap:1px;vertical-align:-.15em}
.r113-stars .r113-i .r113-f{fill:#e7ebf0}.r113-stars .r113-i .r113-o{stroke:#c3cad4}
.r113-stars .r113-i.is-on .r113-f{fill:#f5b83d}.r113-stars .r113-i.is-on .r113-o{stroke:#b7791f}
a .r113-i[width="15"],a .r113-i[width="14"]{margin-left:2px;transition:transform .18s var(--r113-ease)}
a:hover>.r113-i[width="15"]{transform:translateX(2px)}

/* The raised tile: a lit squircle that holds one icon. */
.r113-tile{position:relative;display:inline-grid;place-items:center;flex:none;width:46px;height:46px;border-radius:14px;color:var(--d3-navy);
  background:linear-gradient(160deg,#fff 0%,var(--d3-green-tint) 58%,color-mix(in srgb,var(--r113-accent-soft) 70%,#fff) 100%);
  border:1px solid color-mix(in srgb,var(--d3-green) 16%,#fff);
  box-shadow:inset 0 1px 0 #fff,inset 0 -2px 3px color-mix(in srgb,var(--d3-green) 10%,transparent),0 7px 14px -8px color-mix(in srgb,var(--d3-navy) 45%,transparent),0 1px 2px color-mix(in srgb,var(--d3-navy) 10%,transparent)}
.r113-tile .r113-i{width:24px;height:24px;filter:drop-shadow(0 1px 0 #fff)}
.r113-tile .r113-i .r113-f{fill:url(#r113-tint) var(--r113-accent-soft)}
.r113-tile .r113-i .r113-o{stroke:var(--d3-navy);stroke-width:1.6}

/* The duotone illustration icons (guides, journeys, help) take the same light and the theme colours. */
.d3-duo{filter:drop-shadow(0 1.5px 1.5px color-mix(in srgb,var(--d3-navy) 16%,transparent))}
.d3-duo .dd-t{fill:url(#r113-tint) var(--d3-navy-tint);stroke:var(--d3-navy)}
.d3-duo .dd-w{fill:url(#r113-white) #fff;stroke:var(--d3-navy)}
.d3-duo .dd-s{stroke:var(--d3-navy)}
.d3-duo .dd-a{stroke:var(--d3-green-brand)}
.d3-duo .dd-g{fill:url(#r113-accent) var(--d3-green-brand);stroke:var(--d3-green-hover)}

/* Icon holders already on the public pages become raised tiles too. */
body.d3-public .v7-ic,body.d3-public .d3-guide-icon,body.d3-public .d3-sc-icon,body.d3-public .d3-jn-icon,body.d3-public .d3-how-ic,body.d3-public .d3-empty-icon,
body.d3-public .k-category-strip .d3-cat-icon,body.d3-app .experience-advanced a.experience-quick-tile .d3-tile-ic,body.d3-app .experience-quick-icon.d3-qa-duo{
  background:linear-gradient(160deg,#fff 0%,var(--d3-green-tint) 60%,color-mix(in srgb,var(--r113-accent-soft) 60%,#fff) 100%);
  border:1px solid color-mix(in srgb,var(--d3-green) 15%,#fff);
  box-shadow:inset 0 1px 0 #fff,inset 0 -2px 3px color-mix(in srgb,var(--d3-green) 9%,transparent),0 7px 14px -9px color-mix(in srgb,var(--d3-navy) 45%,transparent)}
body.d3-public .d3-flow li .d3-duo,body.d3-public .d3-band-steps .d3-duo,body.d3-public .d3-free-list li .d3-duo{background:linear-gradient(160deg,#fff,var(--d3-green-tint));box-shadow:var(--r113-edge),var(--r113-lift-1);border-color:var(--r113-line)}
body.d3-public .v7-free li>svg{background:linear-gradient(160deg,#fff,var(--d3-green-tint));box-shadow:0 2px 6px -2px rgba(0,0,0,.35)}

/* ---------- surfaces ---------- */
body.d3-public{background:var(--d3-bg)}
body.d3-public .v7-need-card,body.d3-public .v7-rail a,body.d3-public .v7-reg-steps li,body.d3-public .v7-guide-grid a,body.d3-public .v7-read-card,
body.d3-public .v7-faq-grid details,body.d3-public .d3-guide-card,body.d3-public .d3-post-card,body.d3-public .d3-side-box,body.d3-public .d3-help-group details,
body.d3-public .r112-faq,body.d3-public .d3-society .card,body.d3-public .k-service-card,body.d3-public .k-category-strip a,body.d3-public .card{
  background:linear-gradient(180deg,#fff 0%,#fff 62%,color-mix(in srgb,var(--d3-navy-tint) 45%,#fff) 100%);
  border:1px solid var(--r113-line);box-shadow:var(--r113-edge),var(--r113-lift-1)}
body.d3-public .v7-need-card,body.d3-public .v7-rail a,body.d3-public .v7-guide-grid a,body.d3-public .v7-read-card,body.d3-public .d3-guide-card,
body.d3-public .d3-post-card,body.d3-public .k-service-card,body.d3-public .k-category-strip a{transition:transform .2s var(--r113-ease),box-shadow .2s var(--r113-ease),border-color .2s}
body.d3-public .v7-need-card:hover,body.d3-public .v7-rail a:hover,body.d3-public .v7-guide-grid a:hover,body.d3-public .v7-read-card:hover,body.d3-public .d3-guide-card:hover,
body.d3-public .d3-post-card:hover,body.d3-public .k-service-card:hover,body.d3-public .k-category-strip a:hover{transform:translateY(-3px);border-color:var(--r113-line-accent);box-shadow:var(--r113-edge),var(--r113-lift-2)}
body.d3-public .v7-tasks{box-shadow:var(--r113-edge),var(--r113-lift-2);border-color:var(--r113-line)}
body.d3-public .v7-tasks a:hover{background:linear-gradient(180deg,#fff,var(--d3-green-tint))}

/* Bands keep their colour but gain depth from the theme. */
body.d3-public .v7-demo{background:linear-gradient(135deg,var(--d3-green-tint) 0%,var(--d3-navy-tint) 100%);border-color:var(--r113-line)}
body.d3-public .v7-free{background:radial-gradient(120% 140% at 0% 0%,var(--d3-navy-2) 0%,var(--d3-navy) 55%,color-mix(in srgb,var(--d3-navy) 80%,#000) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 24px 44px -26px color-mix(in srgb,var(--d3-navy) 80%,transparent)}
body.d3-public .v7-free .d3-kicker{color:var(--r113-accent-soft)}
body.d3-public .v7-free b.is-free,body.d3-public .v7-free-tag{background:var(--r113-accent-soft);color:var(--d3-navy)}
body.d3-public .d3-page-hero{background:radial-gradient(90% 120% at 100% 0%,var(--d3-green-tint) 0%,transparent 55%),linear-gradient(180deg,var(--d3-navy-tint) 0,var(--d3-bg) 100%)}
body.d3-public .d3-page-hero-art svg{box-shadow:var(--r113-edge),var(--r113-lift-2)}
body.d3-public .d3-footer{background:linear-gradient(180deg,var(--d3-navy) 0%,color-mix(in srgb,var(--d3-navy) 82%,#000) 100%)}

/* Header: frosted glass with a lit lower edge. */
body.d3-public .d3-header{background:#fff;border-bottom-color:var(--r113-line)}
body.d3-public .d3-header.is-compact{box-shadow:0 1px 0 #fff inset,0 10px 26px -18px color-mix(in srgb,var(--d3-navy) 55%,transparent)}

/* ---------- buttons ---------- */
.d3-btn{transition:transform .16s var(--r113-ease),box-shadow .16s var(--r113-ease),background-color .16s,border-color .16s}
.d3-btn:not(.d3-btn-primary):not(.d3-btn-ghost){background:linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--d3-navy-tint) 55%,#fff) 100%);border-color:var(--r113-line);box-shadow:inset 0 1px 0 #fff,0 1px 2px color-mix(in srgb,var(--d3-navy) 10%,transparent)}
.d3-btn-primary,body .btn:not(.btn-secondary):not(.btn-danger):not(.btn-light):not(.btn-ghost){
  background:linear-gradient(180deg,var(--d3-green-brand) 0%,var(--d3-green) 100%);border-color:var(--d3-green-hover);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),inset 0 -1px 0 rgba(0,0,0,.12),0 8px 16px -10px color-mix(in srgb,var(--d3-green) 80%,transparent)}
.d3-btn:hover,body .btn:hover{transform:translateY(-1px)}
.d3-btn-primary:hover{background:linear-gradient(180deg,var(--d3-green) 0%,var(--d3-green-hover) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 12px 22px -12px color-mix(in srgb,var(--d3-green) 90%,transparent)}
.d3-btn:active,body .btn:active{transform:translateY(1px);box-shadow:inset 0 2px 4px rgba(0,0,0,.14)}

/* Inputs: a slightly sunken field. */
body.d3-public input[type=text],body.d3-public input[type=search],body.d3-public input[type=email],body.d3-public input[type=tel],body.d3-public select,body.d3-public textarea{box-shadow:inset 0 1px 2px color-mix(in srgb,var(--d3-navy) 8%,transparent)}

/* Native controls (checkboxes, radios, range sliders) follow the accent colour. */
:root{accent-color:var(--d3-green)}

/* ---------- older public screens (directory, marketplace, properties) ---------- */
.view-toggle button,.view-switch button,[data-view]{display:inline-flex;align-items:center;gap:6px}
.property-facts span,.place,.rating{display:inline-flex;align-items:center;gap:5px}
.k-category-strip a{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center}
.k-category-strip a .r113-tile{grid-row:span 2}
.k-verified{display:inline-flex;align-items:center;gap:4px}
.v6-intent-icon{font-size:0}
.experience-quick-icon{font-size:0!important;background:none!important;width:auto!important;height:auto!important}
.experience-quick-icon.is-small .r113-tile{width:38px;height:38px;border-radius:12px}
.experience-quick-icon.is-small .r113-i{width:20px;height:20px}
.experience-advanced a.experience-quick-tile{display:flex;align-items:center;gap:10px}
.admin-bar .r113-i,.mobile-toggle .r113-i,.admin-menu-toggle .r113-i{vertical-align:middle}
.admin-bar a,.account-toggle{display:inline-flex;align-items:center;gap:5px}

/* ---------- Theme & Appearance: colour combinations ---------- */
.r113-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:10px;margin:14px 0}
.r113-swatch{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--r113-line);border-radius:14px;background:#fff;cursor:pointer;box-shadow:var(--r113-edge),var(--r113-lift-1);transition:transform .16s var(--r113-ease),box-shadow .16s,border-color .16s}
.r113-swatch:hover{transform:translateY(-2px);box-shadow:var(--r113-edge),var(--r113-lift-2)}
.r113-swatch input{position:absolute;opacity:0;pointer-events:none}
.r113-swatch b{font-size:13.5px;font-weight:600;color:var(--d3-ink,#1b2430)}
.r113-swatch-chip{flex:none;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--sd) 0 50%,var(--sa) 50% 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -2px 4px rgba(0,0,0,.25),0 3px 8px -3px rgba(0,0,0,.4)}
.r113-swatch:has(input:checked){border-color:var(--d3-green);box-shadow:0 0 0 2px var(--d3-green-tint),var(--r113-lift-2)}
.r113-swatch:has(input:checked)::after{content:"";position:absolute;top:6px;right:8px;width:16px;height:16px;border-radius:50%;background:var(--d3-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center/10px no-repeat}
.r113-swatch:has(input:focus-visible){outline:3px solid var(--d3-green-brand);outline-offset:2px}
.r113-custom-row{display:flex;flex-wrap:wrap;gap:16px}
.r113-custom-row input[type=color]{width:64px;height:40px;padding:2px;border-radius:10px}
.r113-has-palette #presets,.r113-has-palette .content-tabs a[href="#presets"],.r113-has-palette #colors .color-row>label:nth-child(-n+2){display:none}

@media (prefers-reduced-motion:reduce){
  .d3-btn,body .btn,.r113-swatch,body.d3-public .v7-need-card,body.d3-public .v7-rail a,body.d3-public .v7-guide-grid a,body.d3-public .v7-read-card,body.d3-public .d3-guide-card,body.d3-public .d3-post-card,body.d3-public .k-service-card,body.d3-public .k-category-strip a,a .r113-i{transition:none!important}
  .d3-btn:hover,body .btn:hover,.r113-swatch:hover,body.d3-public .v7-need-card:hover,body.d3-public .v7-rail a:hover,body.d3-public .v7-guide-grid a:hover,body.d3-public .v7-read-card:hover,body.d3-public .d3-guide-card:hover,body.d3-public .d3-post-card:hover,body.d3-public .k-service-card:hover,body.d3-public .k-category-strip a:hover{transform:none}
}
@media print{.r113-tile{box-shadow:none;background:none;border:0}.d3-duo{filter:none}}

/* R114: amenity fee state chips and the management form. */
.r114-fee{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:999px;font-size:12.5px;font-weight:600}
.r114-fee-warn{background:var(--d3-warn-bg,#fff3d6);color:var(--d3-warn,#7a4e00)}
.r114-fee-ok{background:var(--d3-ok-bg,#e3f3ea);color:var(--d3-ok,#1e6b47)}
.r114-fee-muted{background:#eef1f5;color:#4b5563}
.r114-fee-ref{display:block;color:var(--d3-muted,#5a6472);font-size:12px}
.r114-fee-form{margin-top:6px}.r114-fee-form summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--d3-green)}
.r114-fee-form form{display:grid;gap:4px;margin-top:6px;max-width:320px}

/* R116: society profile illustration (colours follow the colour combination). */
.r116-figure{margin:0}
.r116-elev{display:block;width:100%;height:auto;aspect-ratio:1200/620;border-radius:14px 14px 0 0}
.r116-elev .r116-sky1{stop-color:var(--d3-navy-tint,#e8eef8)}
.r116-elev .r116-ground1{stop-color:color-mix(in srgb,var(--d3-green-tint,#e3f2ed) 70%,#cfe3c4)}
.r116-elev .r116-ground2{stop-color:color-mix(in srgb,var(--d3-green-tint,#e3f2ed) 40%,#a9c99a)}
.r116-elev .r116-far{fill:color-mix(in srgb,var(--d3-navy,#0a2a66) 9%,#fff)}
.r116-elev .r116-fin{fill:var(--d3-green,#0f7a63);opacity:.78}
.r116-elev .r116-rail{fill:none;stroke:color-mix(in srgb,var(--d3-navy,#0a2a66) 55%,#fff);stroke-width:1.6}
.r116-elev .r116-canopy{fill:var(--d3-navy,#0a2a66)}
.r116-figure figcaption{padding:10px 14px;font-size:13px;color:var(--d3-muted,#5a6472);border-top:1px solid var(--d3-line,#e1e6ed)}
/* Pages that draw their own breadcrumb trail do not repeat the generic one. */
body.d3-public:has(.d3-crumbs) .breadcrumbs{display:none}

/* Society profile: a lit header band and raised panels. */
body.d3-public .d3-soc-hero{background:radial-gradient(80% 140% at 100% 0%,var(--d3-green-tint) 0%,transparent 60%),linear-gradient(180deg,var(--d3-navy-tint) 0%,#fff 100%)}
body.d3-public .d3-soc-hero h1{font-size:clamp(28px,3.4vw,42px);letter-spacing:-.02em}
body.d3-public .d3-viewer,body.d3-public .d3-facts,body.d3-public .d3-society .d3-board,body.d3-public .d3-loc-card,body.d3-public .d3-review{border-radius:18px;border-color:var(--r113-line);box-shadow:var(--r113-edge),var(--r113-lift-2)}
body.d3-public .d3-viewer-tabs{background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--d3-navy-tint) 50%,#fff))}
body.d3-public .d3-viewer-tabs button[aria-selected="true"]{box-shadow:inset 0 1px 0 #fff,0 3px 8px -4px color-mix(in srgb,var(--d3-navy) 45%,transparent)}
body.d3-public .d3-facts dl>div{border-bottom-color:var(--r113-line)}

/* R119: the Phosphor duotone family (filled shapes). Wins over older rules written for stroked icons. */
svg.ph{display:inline-block;flex:none;vertical-align:-.18em;overflow:visible;fill:currentColor!important;stroke:none!important}
svg.ph .ph-b{opacity:.22}
svg.ph-duo{color:var(--d3-navy)}
svg.ph-duo .ph-b{fill:url(#r113-accent) var(--d3-green-brand);opacity:.42}
svg.ph-duo .ph-f{fill:var(--d3-navy)}
.r113-tile svg.ph{color:var(--d3-navy);filter:drop-shadow(0 1px 0 #fff)}
.r113-tile svg.ph .ph-b{fill:url(#r113-accent) var(--d3-green-brand);opacity:.5}
.r113-stars svg.ph .ph-b{fill:#e7ebf0;opacity:1}.r113-stars svg.ph .ph-f{fill:#c3cad4}
svg.ph.is-on .ph-b,.r113-stars svg.ph.is-on .ph-b{fill:#f5b83d;opacity:1}svg.ph.is-on .ph-f,.r113-stars svg.ph.is-on .ph-f{fill:#b7791f}
.btn svg.ph .ph-b,.d3-btn-primary svg.ph .ph-b{opacity:.3}
body.d3-app .d3-nav-ic svg.ph{width:18px;height:18px}
body.d3-app .sidebar .experience-nav-links a.active svg.ph .ph-b{fill:var(--d3-green);opacity:.35}

/* R122: tablet layout (iPad portrait ≈ 600–860 px). The hero used phone rules there: a narrow text column with an
   empty right half, a stacked search button and a pause button sitting on the shortcuts. */
@media (min-width:600px) and (max-width:860px){
  body.d3-public .d3-hero-copy{max-width:none}
  body.d3-public .d3-hero h1{font-size:clamp(34px,5.4vw,44px);max-width:20ch;text-wrap:balance}
  body.d3-public .d3-lede{max-width:62ch}
  body.d3-public .d3-search{max-width:none}
  body.d3-public .d3-search-row{flex-wrap:nowrap;padding:4px 4px 4px 12px}
  body.d3-public .d3-search-row input{flex-basis:auto}
  body.d3-public .d3-search-row button{width:auto}
}
@media (max-width:860px){
  body.d3-public .d3-motion-toggle{top:12px;right:12px;bottom:auto;left:auto}
}
/* "What is free" band: one column with a two-column list up to large tablets; badges never break. */
@media (max-width:1100px){
  body.d3-public .v7-free{grid-template-columns:1fr}
}
@media (min-width:641px) and (max-width:1100px){
  body.d3-public .v7-free ul{grid-template-columns:repeat(2,minmax(0,1fr))}
}
body.d3-public .v7-free b{white-space:nowrap}
body.d3-public .v7-free li span{min-width:0}
/* Sign out beside Dashboard in the public header. */
body.d3-public .d3-signout{display:inline-flex;margin:0}
body.d3-public .d3-signout button{border:0;background:none;cursor:pointer;font:600 14.5px var(--d3-font);color:var(--d3-navy);padding:9px 10px}
body.d3-public .d3-drawer-actions form{margin:0}
/* Headings and leads wrap evenly instead of leaving one word alone on the last line. */
body.d3-public :is(h1,h2,h3){text-wrap:balance}
body.d3-public :is(.d3-lede,.v7-head p,.d3-hero-copy p){text-wrap:pretty}

/* R124: menu button lines stand upright while the menu is closed and lie flat when it is open. */
.admin-menu-toggle svg,[data-d3-menu] svg{transition:transform .25s ease}
.admin-menu-toggle[aria-expanded="false"] svg,[data-d3-menu][aria-expanded="false"] svg{transform:rotate(90deg)}
@media (prefers-reduced-motion:reduce){.admin-menu-toggle svg,[data-d3-menu] svg{transition:none}}

/* ===== R124 home page polish (25 Oct): no cut-off strips, quieter controls, menu over the page ===== */
/* Society tools: a tidy grid that wraps, never a sideways strip with a cut-off tile. */
body.d3-public .v7-rail.r124-tools{display:grid;grid-auto-flow:row;grid-template-columns:repeat(8,minmax(0,1fr));overflow:visible;scroll-snap-type:none;padding:4px 0 8px}
body.d3-public .v7-rail.r124-tools a{min-width:0}
@media (max-width:1100px){body.d3-public .v7-rail.r124-tools{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:480px){body.d3-public .v7-rail.r124-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Hero ticks: a plain tick, not a box that looks like a form checkbox. */
body.d3-public .d3-hero-note .ph-b{display:none}
body.d3-public .d3-hero-note .ph-f{stroke:currentColor;stroke-width:6}
/* Pause/play: a small round icon button. */
body.d3-public .d3-motion-toggle{width:34px;height:34px;padding:0;justify-content:center;border-radius:50%;background:rgba(10,35,80,.38);border-color:rgba(255,255,255,.5);opacity:.8}
body.d3-public .d3-motion-toggle:hover,body.d3-public .d3-motion-toggle:focus-visible{opacity:1}
/* Card subtitles and arrows easier to read. */
body.d3-public .v7-tasks small,body.d3-public .v7-need-card small{color:#4a5668}
body.d3-public .v7-tasks a>svg:last-child,body.d3-public .v7-need-card .v7-go{color:var(--d3-navy);opacity:.75}
/* Walkthrough tabs: fade the edge instead of cutting a word in half. */
body.d3-public .v7-tabs{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
/* Help button: smaller, tucked into the corner. */
body.d3-public .chat-toggle{width:46px!important;height:46px!important;font-size:19px!important}
/* Tablets: show the whole gate picture (wide drawing at its own proportions) instead of a cropped tall one. */
@media (min-width:601px) and (max-width:860px){
  body.d3-public .d3-hero-art-mobile{display:none}
  body.d3-public .d3-hero-art-wide{display:block;position:relative;inset:auto;z-index:0;width:100%;aspect-ratio:1920/900;height:auto;order:2}
  body.d3-public .d3-hero-inner{order:1}
  body.d3-public .d3-hero-art-wide::after{display:none}
  body.d3-public .d3-hero-art-wide svg{width:100%;height:100%;display:block}
}
/* Menu on tablets and phones: opens over the page with the page dimmed, instead of pushing it down. */
@media (max-width:1020px){
  body.d3-public .d3-drawer{position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - 64px);overflow:auto;overscroll-behavior:contain;border-radius:0 0 16px 16px;box-shadow:0 18px 36px -12px rgba(10,30,70,.35),0 0 0 100vmax rgba(10,25,55,.35)}
}
/* Register / Sign in / Dashboard are already in the header above phone width, so the menu does not repeat them. */
@media (min-width:481px){body.d3-public .d3-drawer-actions{display:none}}
/* R123 (DEV-01): on phones Sign out lives in the menu only, so the signed-in header fits 375 px. */
@media (max-width:480px){body.d3-public .d3-signout.d3-hide-xs{display:none}body.d3-public .d3-actions .d3-btn{padding-left:12px;padding-right:12px}}
/* R123 (DEV-02): a clear keyboard focus ring on every field and menu item. */
body.d3-public :is(input,select,textarea):focus-visible,body.d3-app :is(input,select,textarea):focus-visible{outline:3px solid var(--d3-green,#0f766e);outline-offset:1px;border-color:var(--d3-green,#0f766e)}
body.d3-app .experience-sidebar a:focus-visible,body.d3-app .experience-sidebar summary:focus-visible,body.d3-app .admin-menu-toggle:focus-visible,body.d3-public .d3-drawer a:focus-visible{outline:3px solid var(--d3-green,#0f766e);outline-offset:2px;border-radius:8px}
/* R123 retest (DEV-02): the form rule in d3/forms.css removed the outline with !important and its focus shadow is not
   defined on every page, so a focused field showed nothing. A 3 px outline now always marks the focused field. */
html body.d3-public:not(.r123-x) form :is(input,select,textarea):focus-visible,
html body.d3-app:not(.d3-studio):not(.r123-x) form :is(input,select,textarea):focus-visible,
html body.d3-app:not(.d3-studio):not(.r123-x) :is(input,select,textarea):focus-visible{outline:3px solid var(--d3-green,#0f766e)!important;outline-offset:1px!important}
/* 28 Oct 2026: search boxes whose whole bar lights up when in use (home, blog, help) show that one ring only, not a second
   outline around the text field inside it. */
html body.d3-public:not(.r123-x) :is(.d3-search-row,.d3-blog-search) :is(input,select,textarea):focus-visible,html body.d3-public:not(.r123-x) form :is(.d3-search-row,.d3-blog-search) :is(input,select,textarea):focus-visible,html body.d3-public:not(.r123-x) form:is(.d3-blog-search) :is(input,select,textarea):focus-visible{outline:none!important;box-shadow:none!important}
/* 30 Oct 2026 (audit DEPLOY-SEARCH-HELP): the Help box's text field also kept its own thin border inside the ring. */
html body.d3-public :is(.d3-search-row,.d3-blog-search) :is(input[type=search],input[type=text]),html body.d3-public form.d3-blog-search #d3-hq{border:0!important;box-shadow:none!important;outline:none!important;background:transparent!important}

/* R127 (28 Oct, owner): the home hero follows the chosen colour combination instead of fixed blues and greys.
   The sky, haze and the soft wash behind the headline are mixed from the theme's accent and deep colours; the gate,
   buildings, trees and road keep their natural colours so the picture still reads as a real place. */
body.d3-public .d3-hero{background:color-mix(in srgb,var(--r113-accent,#0F7A63) 16%,#eef3f8)}
body.d3-public .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(1){stop-color:color-mix(in srgb,color-mix(in srgb,var(--r113-accent,#0F7A63) 70%,var(--r113-deep,#0A2A66)) 46%,#ffffff)}
body.d3-public .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(2){stop-color:color-mix(in srgb,var(--r113-accent,#0F7A63) 22%,#ffffff)}
body.d3-public .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(3){stop-color:color-mix(in srgb,var(--r113-accent,#0F7A63) 7%,#ffffff)}
body.d3-public .d3-art-gate :is(#g-haze,#g-haze-m) stop{stop-color:color-mix(in srgb,var(--r113-accent,#0F7A63) 7%,#ffffff)}
/* 28 Oct 2026: the sky by Indian time, still in the site's colour combination */
body.d3-public .d3-hero[data-d3-sky="night"] .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(1){stop-color:color-mix(in srgb,var(--r113-deep,#0A2A66) 45%,#020617)}
body.d3-public .d3-hero[data-d3-sky="night"] .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(2){stop-color:color-mix(in srgb,var(--r113-deep,#0A2A66) 70%,#0b1430)}
body.d3-public .d3-hero[data-d3-sky="night"] .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(3){stop-color:color-mix(in srgb,var(--r113-accent,#0F7A63) 25%,#1c2747)}
body.d3-public .d3-hero[data-d3-sky="night"] .d3-art-gate :is(#g-haze,#g-haze-m) stop{stop-color:#1c2747}
body.d3-public .d3-hero[data-d3-sky="dusk"] .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(1){stop-color:color-mix(in srgb,var(--r113-deep,#0A2A66) 60%,#3b2a5a)}
body.d3-public .d3-hero[data-d3-sky="dusk"] .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(2){stop-color:#f08a6c}
body.d3-public .d3-hero[data-d3-sky="dusk"] .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(3){stop-color:#ffc98b}
body.d3-public .d3-hero[data-d3-sky="dusk"] .d3-art-gate :is(#g-haze,#g-haze-m) stop{stop-color:#ffcf9c}
body.d3-public .d3-hero[data-d3-sky="dusk"] .d3-art-gate #g-sun stop{stop-color:#ffb36b}
body.d3-public .d3-hero[data-d3-sky="dawn"] .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(1){stop-color:color-mix(in srgb,var(--r113-accent,#0F7A63) 30%,#8fb3d9)}
body.d3-public .d3-hero[data-d3-sky="dawn"] .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(2){stop-color:#f9c9b6}
body.d3-public .d3-hero[data-d3-sky="dawn"] .d3-art-gate :is(#g-sky,#g-sky-m) stop:nth-of-type(3){stop-color:#fde6cf}
body.d3-public .d3-hero[data-d3-sky="dawn"] .d3-art-gate :is(#g-haze,#g-haze-m) stop{stop-color:#fde6cf}
/* the light wash behind the headline stays readable at night */
body.d3-public .d3-hero[data-d3-sky="night"] .d3-hero-art-wide::after{opacity:1}
body.d3-public .d3-hero-art-wide::after{background:linear-gradient(90deg,
  color-mix(in srgb,color-mix(in srgb,var(--r113-accent,#0F7A63) 6%,#f6f7fa) 94%,transparent) 0%,
  color-mix(in srgb,color-mix(in srgb,var(--r113-accent,#0F7A63) 6%,#f6f7fa) 82%,transparent) 26%,
  color-mix(in srgb,color-mix(in srgb,var(--r113-accent,#0F7A63) 6%,#f6f7fa) 35%,transparent) 44%,
  transparent 56%)}
body.d3-public .d3-motion-toggle{background:color-mix(in srgb,var(--r113-deep,#0A2A66) 45%,transparent)}
body.d3-public .v7-free .d3-kicker{color:color-mix(in srgb,var(--r113-accent,#0F7A63) 45%,#ffffff)}
body.d3-public .v7-demo{border-block-color:color-mix(in srgb,var(--r113-accent,#0F7A63) 18%,#ffffff)}
body.d3-public .v7-tasks>a>svg{color:color-mix(in srgb,var(--r113-deep,#0A2A66) 45%,#ffffff)}
@media (max-width:860px){body.d3-public .d3-hero{background:var(--d3-bg)}}
/* Letterhead contact line (R127). */
.v6-letterhead-contact{font-size:11px;margin:2px 0 0}

/* R132 (31 Oct): company and legal pages (About, Contact, Terms, Privacy, Refund, Disclaimer) — readable heading sizes. */
body.d3-public article.prose h2{font-size:clamp(21px,2.2vw,26px);line-height:1.25;margin:30px 0 10px;letter-spacing:-.01em}
body.d3-public article.prose h2:first-child{margin-top:0}
body.d3-public article.prose ul,body.d3-public article.prose ol{padding-left:1.25em}
body.d3-public article.prose li{margin:6px 0}
body.d3-public article.prose p,body.d3-public article.prose li{line-height:1.65}
body.d3-public article.prose h3{font-size:18px;margin:20px 0 6px}
body.d3-public article.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:14px 0 18px;font-size:15px}
body.d3-public article.prose th,body.d3-public article.prose td{border:1px solid var(--d3-line,#e2e8f0);padding:9px 12px;text-align:left;vertical-align:top;min-width:140px}
body.d3-public article.prose th{background:color-mix(in srgb,var(--d3-navy,#1e293b) 6%,#fff)}
body.d3-public article.prose .r132-faq{margin-top:28px;padding-top:4px;border-top:1px solid var(--d3-line,#e2e8f0)}
@media (max-width:640px){
  body.d3-public article.prose table.r132-table{display:block;border:0;overflow:visible}
  body.d3-public article.prose table.r132-table thead{display:none}
  body.d3-public article.prose table.r132-table tbody,body.d3-public article.prose table.r132-table tr{display:block}
  body.d3-public article.prose table.r132-table tr{border:1px solid var(--d3-line,#e2e8f0);border-radius:12px;padding:10px 12px;margin:0 0 10px;background:#fff}
  body.d3-public article.prose table.r132-table td{display:block;border:0;padding:3px 0;min-width:0;white-space:normal;overflow-wrap:break-word}
  body.d3-public article.prose table.r132-table a{white-space:normal!important}
  body.d3-public article.prose table.r132-table td:first-child{font-weight:700}
  body.d3-public article.prose table.r132-table td:not(:first-child)::before{content:attr(data-label) ": ";font-weight:600;color:var(--d3-muted,#64748b)}
}

/* 1 Nov 2026: property listing page (render_property). */
.r134-price{font:800 clamp(24px,3vw,32px)/1.1 var(--d3-font,inherit);color:var(--d3-navy,#1e293b);margin:10px 0 0}
.r134-price span{font-size:15px;font-weight:600;color:var(--d3-muted,#64748b)}
.r134-photo{margin:0 0 16px;border-radius:16px;overflow:hidden;border:1px solid var(--d3-line,#e2e8f0);background:#f1f5f9}
.r134-photo img{display:block;width:100%;max-height:460px;object-fit:cover}
.r134-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(140px,100%),1fr));gap:10px;margin:0}
.r134-facts div{padding:10px 12px;border:1px solid var(--d3-line,#e2e8f0);border-radius:12px;background:#fff}
.r134-facts dt{font-size:12.5px;color:var(--d3-muted,#64748b);margin:0}
.r134-facts dd{margin:2px 0 0;font-weight:700;color:var(--d3-navy,#1e293b);overflow-wrap:anywhere}
.r134-steps{margin:6px 0 10px;padding-left:1.3em}
.r134-steps li{margin:8px 0;line-height:1.6}
.r134-safety{padding:14px 16px;border-radius:12px;background:#FFF8E6;border:1px solid #F0D58C;color:#5b4410;line-height:1.6;margin:0 0 16px}
.r134-soc p{margin:0 0 8px}
.r134-prop-head ~ .section .card h2{font-size:clamp(19px,2vw,22px);line-height:1.3;margin:0 0 12px}
.r134-prop-head ~ .section .card h3{font-size:18px;margin:0 0 10px}
.r126-h1{font-size:clamp(22px,2.6vw,28px);margin:0 0 10px}
