/* Rope Access Singapore — site stylesheet
   Palette: Deep ocean navy + signal orange accent + warm neutral.
   Typography: Inter (body) + Space Grotesk (display) loaded via system fallback. */

:root{
  --bg:#FAFAF7;
  --surface:#FFFFFF;
  --surface-alt:#F4F2EC;
  --border:#D8D3C7;
  --text:#0F1F2E;
  --text-muted:#5C6573;
  --text-faint:#8C95A0;
  --primary:#102A43;        /* Deep navy */
  --primary-hover:#0A1A2C;
  --accent:#E07A29;          /* Signal orange */
  --accent-hover:#B85F18;
  --success:#2F7A3A;
  --warning:#964219;
  --error:#A12C7B;

  --maxw:1180px;
  --gap:1.5rem;
  --radius:10px;
  --shadow-sm: 0 1px 2px rgba(15,31,46,.06), 0 1px 1px rgba(15,31,46,.04);
  --shadow-md: 0 4px 14px rgba(15,31,46,.08);

  --ff-display: 'Space Grotesk', 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --ff-body: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--ff-body);
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg{max-width:100%;display:block;height:auto}
a{color:var(--primary);text-decoration-color:rgba(16,42,67,.35);text-underline-offset:3px}
a:hover{color:var(--accent-hover);text-decoration-color:currentColor}

h1,h2,h3,h4{font-family:var(--ff-display);font-weight:600;color:var(--text);letter-spacing:-.01em;line-height:1.18;margin:0 0 .6em}
h1{font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.1;letter-spacing:-.02em}
h2{font-size:clamp(1.55rem,3vw,2.1rem)}
h3{font-size:1.25rem}
h4{font-size:1.05rem}
p{margin:0 0 1em}
ul,ol{padding-left:1.25em;margin:0 0 1em}
li{margin:.25em 0}

.container{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}
.section{padding:4rem 0}
.section--alt{background:var(--surface-alt)}
.section--dark{background:var(--primary);color:#E6EDF5}
.section--dark h2,.section--dark h3{color:#fff}
.text-center{text-align:center}
.lead{font-size:1.12rem;color:var(--text-muted);max-width:720px}
.eyebrow{font-family:var(--ff-display);text-transform:uppercase;font-size:.78rem;letter-spacing:.14em;color:var(--accent);font-weight:600;margin:0 0 .6rem}

.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:1rem;top:1rem;padding:.6rem 1rem;background:#fff;border:2px solid var(--accent);z-index:1000;border-radius:6px}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(150%) blur(8px);border-bottom:1px solid var(--border)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.25rem;gap:1rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--text)}
.brand__mark{width:36px;height:36px;flex:none}
.brand__name{font-family:var(--ff-display);font-weight:700;letter-spacing:-.01em;font-size:1.05rem;line-height:1}
.brand__name-sub{color:var(--text-muted);font-weight:500}

.menu-toggle{display:none;background:none;border:0;width:42px;height:42px;cursor:pointer;color:var(--text)}
.menu-toggle__bars,
.menu-toggle__bars::before,
.menu-toggle__bars::after{content:"";display:block;width:24px;height:2px;background:currentColor;transition:transform .25s ease}
.menu-toggle__bars{position:relative;margin:0 auto}
.menu-toggle__bars::before{position:absolute;top:-7px}
.menu-toggle__bars::after{position:absolute;top:7px}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars{background:transparent}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars::before{transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars::after{transform:translateY(-7px) rotate(-45deg)}

.nav{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.nav a{padding:.55rem .65rem;font-size:.96rem;color:var(--text);text-decoration:none;border-radius:6px}
.nav a:hover{background:var(--surface-alt);color:var(--primary)}
.nav__dropdown{position:relative}
.nav__dropdown-panel{
  position:absolute;top:calc(100% + 4px);left:0;
  background:#fff;border:1px solid var(--border);border-radius:10px;
  padding:.5rem;min-width:280px;box-shadow:var(--shadow-md);
  display:none;z-index:60;
}
.nav__dropdown-panel a{display:block;padding:.5rem .7rem;font-size:.92rem}
.nav__dropdown:hover .nav__dropdown-panel,
.nav__dropdown:focus-within .nav__dropdown-panel{display:block}

@media (max-width:920px){
  .menu-toggle{display:inline-block}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--border);padding:.6rem 1rem;gap:0;box-shadow:var(--shadow-md)}
  .nav.is-open{display:flex}
  .nav a{padding:.7rem .5rem;border-bottom:1px solid var(--surface-alt)}
  .nav__dropdown-panel{position:static;display:block;border:0;padding:0 0 .4rem .8rem;box-shadow:none;min-width:0}
  .nav__dropdown-panel a{font-size:.88rem;color:var(--text-muted)}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem 1.1rem;border-radius:8px;font-weight:600;font-family:var(--ff-display);font-size:.96rem;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:all .18s ease}
.btn--sm{padding:.45rem .75rem;font-size:.88rem}
.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.section--alt .btn--ghost,
.bg-light .btn--ghost{color:var(--primary);border-color:var(--primary)}
.section--alt .btn--ghost:hover{background:var(--primary);color:#fff}

/* Hero */
.hero{
  position:relative;
  background:linear-gradient(135deg,#0B1B2C 0%, #1A3E5C 60%, #2C5A85 100%);
  color:#E6EDF5;
  padding:5rem 0 4rem;
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 10% 90%, rgba(224,122,41,.18) 0, transparent 40%),
    radial-gradient(circle at 90% 10%, rgba(255,255,255,.08) 0, transparent 35%);
  pointer-events:none;
}
.hero__inner{position:relative;display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;align-items:center}
.hero h1{color:#fff}
.hero p.lead{color:#B8C7D6;max-width:560px}
.hero__media{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.35);aspect-ratio:4/5}
.hero__media img{width:100%;height:100%;object-fit:cover}
.hero__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}
@media (max-width:780px){.hero__inner{grid-template-columns:1fr}.hero{padding:3rem 0}}

/* Page hero (sub-pages) */
.page-hero{background:linear-gradient(180deg,#0F2235 0%, #142E48 100%);color:#E6EDF5;padding:3.4rem 0 3rem}
.page-hero h1{color:#fff;margin-bottom:.4rem}
.page-hero p.lead{color:#B8C7D6}
.page-hero .breadcrumb{margin-bottom:1.2rem}
.breadcrumb ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem;font-size:.86rem;color:#B8C7D6}
.breadcrumb li+li::before{content:"›";margin-right:.4rem;color:#7A8A9A}
.breadcrumb a{color:#B8C7D6;text-decoration-color:rgba(184,199,214,.4)}
.breadcrumb [aria-current]{color:#fff}

/* Cards & grids */
.grid{display:grid;gap:1.4rem}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}

.card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:1.4rem;box-shadow:var(--shadow-sm);transition:all .2s ease;
}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card h3{margin-top:0}
.card a.card__link{display:inline-flex;align-items:center;gap:.3rem;font-weight:600;color:var(--accent);text-decoration:none;margin-top:.6rem}
.card a.card__link:hover{color:var(--accent-hover)}
.card a.card__link::after{content:"→";transition:transform .2s}
.card a.card__link:hover::after{transform:translateX(3px)}

.service-card{display:flex;flex-direction:column;height:100%}
.service-card .eyebrow{font-size:.7rem}
.card--with-media{overflow:hidden;padding:0}
.card--with-media > :not(.card__media){margin-left:1.4rem;margin-right:1.4rem}
.card--with-media .card__media{margin:0 0 1rem}
.card--with-media .card__link{margin-bottom:1.4rem}
.card__media{display:block;aspect-ratio:16/9;background:var(--surface-alt);overflow:hidden;text-decoration:none}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.card:hover .card__media img{transform:scale(1.03)}

/* Image grid (gallery / project tiles) */
.tile{
  position:relative;display:block;border-radius:var(--radius);overflow:hidden;
  background:var(--surface-alt);aspect-ratio:4/3;border:1px solid var(--border);
}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.tile:hover img{transform:scale(1.04)}
.tile__caption{position:absolute;left:0;right:0;bottom:0;padding:.8rem 1rem;background:linear-gradient(180deg,transparent,rgba(15,31,46,.85));color:#fff;font-size:.92rem}
.tile__caption strong{display:block;font-family:var(--ff-display)}

/* Article body */
.prose{max-width:760px}
.prose h2{margin-top:2rem}
.prose h3{margin-top:1.4rem}
.prose ul,.prose ol{margin-bottom:1.2em}
.prose blockquote{border-left:3px solid var(--accent);padding:.4rem 1rem;color:var(--text-muted);font-style:italic;background:var(--surface-alt);border-radius:0 8px 8px 0;margin:1.2rem 0}
.post-hero-image{max-width:var(--maxw);margin:2rem auto 0;padding:0 1.25rem}
.post-hero-image img{width:100%;max-height:480px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow-md)}
.post-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}
.post-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.post-card__media{display:block;aspect-ratio:16/9;background:var(--surface-alt);overflow:hidden}
.post-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.post-card:hover .post-card__media img{transform:scale(1.03)}
.post-card__date,.post-card__title,.post-card__summary,.post-card__more{margin-left:1.2rem;margin-right:1.2rem}
.post-card__date{margin-top:1.1rem;color:var(--accent);font-family:var(--ff-display);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.post-card__title{font-size:1.2rem}
.post-card__title a{text-decoration:none;color:inherit}
.post-card__summary{color:var(--text-muted);font-size:.95rem}
.post-card__more{display:inline-flex;margin-bottom:1.2rem;font-weight:600;text-decoration:none;color:var(--accent)}
@media (max-width:720px){.post-list{grid-template-columns:1fr}}

.callout{
  border:1px solid var(--border);background:var(--surface);border-left:4px solid var(--accent);
  padding:1rem 1.2rem;border-radius:0 8px 8px 0;margin:1.2rem 0;
}
.callout strong{display:block;margin-bottom:.3rem}

/* Forms */
.form{display:grid;gap:1rem;max-width:640px}
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{font-weight:600;font-size:.92rem;color:var(--text)}
.field input,.field select,.field textarea{
  font:inherit;padding:.65rem .8rem;border:1px solid var(--border);background:#fff;border-radius:8px;color:var(--text);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.field textarea{min-height:140px;resize:vertical}
.help{font-size:.84rem;color:var(--text-muted)}

/* FAQ accordion */
details.faq{
  border:1px solid var(--border);border-radius:8px;background:var(--surface);
  padding:.9rem 1.1rem;margin-bottom:.6rem;
}
details.faq[open]{box-shadow:var(--shadow-sm)}
details.faq summary{cursor:pointer;font-weight:600;font-family:var(--ff-display);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--accent);transition:transform .2s}
details.faq[open] summary::after{content:"−"}
details.faq p{margin:.7rem 0 0}

/* Footer */
.site-footer{background:#0B1B2C;color:#dde3ea;padding:3rem 0 1.4rem;margin-top:4rem}
.site-footer__inner{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
@media (max-width:780px){.site-footer__inner{grid-template-columns:1fr}}
.site-footer h4{color:#fff;font-size:1rem;margin:0 0 .8rem}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin:.3rem 0}
.footer-links a{color:#B8C7D6;text-decoration:none;font-size:.92rem}
.footer-links a:hover{color:#fff;text-decoration:underline}
.site-footer a{color:#dde3ea}
.site-footer__base{margin-top:2rem;padding-top:1.4rem;border-top:1px solid #1B3550;color:#8c98a4;font-size:.84rem;text-align:center}

/* Project cards */
.project-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;height:100%}
.project-card__media{aspect-ratio:4/3;background:var(--surface-alt);overflow:hidden}
.project-card__media img{width:100%;height:100%;object-fit:cover}
.project-card__body{padding:1.2rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.project-card__meta{font-size:.82rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:.5rem}
.project-card__meta span{display:inline-flex;align-items:center;gap:.3rem}
.project-card h3{font-size:1.1rem;margin:0}

/* Empty/loading */
.empty-state{padding:3rem 1rem;text-align:center;color:var(--text-muted);background:var(--surface-alt);border-radius:var(--radius);border:1px dashed var(--border)}

/* Tables */
table.compare{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.94rem}
table.compare th,table.compare td{border:1px solid var(--border);padding:.7rem .9rem;text-align:left;vertical-align:top}
table.compare th{background:var(--surface-alt);font-family:var(--ff-display)}

/* Utility */
.row-cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}
.muted{color:var(--text-muted)}
.small{font-size:.88rem}
.section h2.section__title{margin-bottom:.4rem}
.section .section__lead{margin:0 auto 2rem;max-width:720px;color:var(--text-muted)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* Project category chips */
.chip-row{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1.4rem}
.chip{display:inline-flex;align-items:center;padding:.32rem .8rem;border-radius:999px;
  background:#F1F5F9;color:#102A43;font-size:.82rem;font-weight:500;
  border:1px solid #d8e0e8;letter-spacing:.01em}
.chip--muted{background:#102A43;color:#fff;border-color:#102A43}
.project-grid .project-card__media img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}
.project-card__meta span+span::before{content:"\00a0"}

/* Contact flash messages */
.contact-flash{padding:.85rem 1rem;border-radius:.45rem;margin:0 0 1rem;font-size:.95rem;border:1px solid #d8e0e8;background:#F7FAFC;color:#102A43}
.contact-flash--ok{background:#E8F5EE;border-color:#7CB69B;color:#1F4D38}
.contact-flash--err{background:#FBE9E7;border-color:#E07A29;color:#7C2D12}
