:root{
    --ink:#17171a;
    --ink-soft:#232327;
    --paper:#faf8f4;
    --paper-dim:#f1ede4;
    --gold:#c08a34;
    --gold-deep:#8c6423;
    --gold-light:#e3b866;
    --slate:#6b6b66;
    --line:#e4e0d8;
    --line-dark:#33332e;
    --white:#ffffff;
    --radius:2px;
    --display: 'Oswald', sans-serif;
    --body: 'Work Sans', sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--body);
    color:var(--ink);
    background:var(--paper);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block; max-width:100%;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  button{font-family:inherit; cursor:pointer; border:none; background:none;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
  .eyebrow{
    font-family:var(--display);
    text-transform:uppercase;
    letter-spacing:.22em;
    font-size:12.5px;
    color:var(--gold-deep);
    font-weight:600;
  }
  h1,h2,h3,h4{
    font-family:var(--display);
    text-transform:uppercase;
    line-height:1.08;
    font-weight:600;
    letter-spacing:.01em;
  }
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    font-family:var(--display);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:14px;
    font-weight:600;
    padding:16px 30px;
    border-radius:var(--radius);
    transition:transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
    white-space:nowrap;
  }
  .btn:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
  .btn-solid{background:var(--ink); color:var(--paper);}
  .btn-solid:hover{background:var(--gold-deep); transform:translateY(-2px);}
  .btn-outline{background:transparent; color:var(--ink); border:1.5px solid var(--ink);}
  .btn-outline:hover{background:var(--ink); color:var(--paper); transform:translateY(-2px);}
  .btn-gold{background:var(--gold); color:var(--ink);}
  .btn-gold:hover{background:var(--gold-light); transform:translateY(-2px);}

  /* ===== Logo mark ===== */
  .logo{display:flex; align-items:center; gap:12px;}
  .logo svg{width:46px; height:46px; flex-shrink:0;}
  .logo-text{line-height:1.15;}
  .logo-text .big{font-family:var(--display); font-size:20px; font-weight:700; letter-spacing:.02em;}
  .logo-text .small{font-family:var(--display); font-size:9px; letter-spacing:.16em; color:var(--slate); text-transform:uppercase;}
  .logo.on-dark .logo-text .big{color:var(--paper);}
  .logo.on-dark .logo-text .small{color:#a3a39a;}

  /* ===== Header ===== */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(250,248,244,.94);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .header-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 0;}
  nav.main-nav{display:flex; gap:30px;}
  nav.main-nav a{
    font-family:var(--display); font-size:13px; text-transform:uppercase;
    letter-spacing:.06em; font-weight:500; color:var(--ink);
    position:relative; padding:6px 0;
  }
  nav.main-nav a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--gold);
    transition:width .2s ease;
  }
  nav.main-nav a:hover::after{width:100%;}
  nav.main-nav a[aria-current="page"]{color:var(--gold-deep);}
  nav.main-nav a[aria-current="page"]::after{width:100%;}
  .header-actions{display:flex; align-items:center; gap:22px;}
  .lang-switch{
    display:flex; align-items:center; justify-content:center;
    width:32px; height:32px; border:1px solid var(--line-dark, var(--line)); border-radius:50%;
    font-family:var(--display); font-size:12px; font-weight:600; letter-spacing:.03em;
    color:var(--ink); border-color:#c9c4b4;
  }
  .lang-switch:hover{background:var(--paper-dim); border-color:var(--gold-deep);}
  .header-phone{display:flex; align-items:center; gap:8px; font-family:var(--display); font-weight:600; font-size:15px;}
  .header-phone svg{width:16px; height:16px; stroke:var(--gold-deep);}
  .menu-toggle{display:none; width:26px; height:20px; position:relative;}
  .menu-toggle span{position:absolute; left:0; width:100%; height:2px; background:var(--ink); transition:.2s;}
  .menu-toggle span:nth-child(1){top:0;} .menu-toggle span:nth-child(2){top:9px;} .menu-toggle span:nth-child(3){top:18px;}

  /* ===== Hero ===== */
  .hero{
    position:relative;
    background:
      linear-gradient(120deg, rgba(23,23,26,.88), rgba(23,23,26,.6) 55%, rgba(23,23,26,.25)),
      url('../assets/photos/stone-fireplace.jpg');
    background-size:cover;
    background-position:center 30%;
    color:var(--paper);
    overflow:hidden;
  }
  .hero-inner{
    position:relative; z-index:2;
    padding:110px 28px 90px;
    max-width:1180px; margin:0 auto;
  }
  .hero h1{font-size:clamp(34px,6vw,58px); max-width:720px;}
  .hero h1 .gold-line{color:var(--gold-light);}
  .hero p.lead{
    font-family:var(--body); font-size:17px; color:#d8d5cb;
    max-width:460px; margin:22px 0 34px; line-height:1.7;
  }
  .hero-ctas{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:56px;}
  .hero-trust{display:flex; gap:44px; flex-wrap:wrap;}
  .hero-trust .item{display:flex; align-items:center; gap:10px;}
  .hero-trust svg{width:26px; height:26px; stroke:var(--gold-light);}
  .hero-trust span{font-family:var(--display); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:#cfccc1;}

  .plank-divider{height:64px; width:100%; overflow:hidden; line-height:0;}
  .plank-divider svg{width:100%; height:100%;}

  /* ===== Section basics ===== */
  section{padding:96px 0;}
  .section-head{max-width:640px; margin-bottom:52px;}
  .section-head h2{font-size:clamp(26px,3.6vw,38px); margin-top:10px;}
  .section-head p{color:var(--slate); margin-top:16px; font-size:16px;}
  .section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

  /* ===== Services ===== */
  .services{background:var(--paper-dim);}
  .service-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .service-card{
    background:var(--paper-dim); padding:34px 26px; transition:background .2s ease;
  }
  .service-card:hover{background:var(--white);}
  .service-card svg{width:34px; height:34px; stroke:var(--gold-deep); margin-bottom:20px;}
  .service-card h3{font-size:15px; letter-spacing:.03em; margin-bottom:10px;}
  .service-card p{font-size:14px; color:var(--slate);}

  /* ===== Services (detailed) ===== */
  .service-detail-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .service-detail-card{background:var(--paper-dim); padding:44px 40px; transition:background .2s ease;}
  .service-detail-card:hover{background:var(--white);}
  .service-detail-card svg.icon{width:34px; height:34px; stroke:var(--gold-deep); margin-bottom:20px;}
  .service-detail-card h3{font-size:19px; letter-spacing:.02em; margin-bottom:12px;}
  .service-detail-card > p{font-size:15px; color:var(--slate); margin-bottom:20px; line-height:1.6;}
  .service-detail-card ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:11px;}
  .service-detail-card li{display:flex; align-items:flex-start; gap:10px; font-size:14px; color:var(--ink);}
  .service-detail-card li svg{width:15px; height:15px; stroke:var(--gold-deep); flex-shrink:0; margin-top:3px;}

  /* ===== About ===== */
  .about-grid{display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch;}
  .about-panel{
    background:var(--ink); color:var(--paper);
    padding:70px 56px; display:flex; flex-direction:column; justify-content:center;
  }
  .about-panel .eyebrow{color:var(--gold-light);}
  .about-panel h2{font-size:clamp(24px,3.2vw,32px); margin:14px 0 22px; max-width:420px;}
  .about-panel p{color:#c9c6bc; font-size:15.5px; margin-bottom:14px; max-width:440px;}
  .about-stats{display:flex; gap:36px; margin-top:28px;}
  .about-stats div strong{display:block; font-family:var(--display); font-size:26px; color:var(--gold-light);}
  .about-stats div span{font-size:12px; color:#a3a39a; text-transform:uppercase; letter-spacing:.05em;}
  .about-images{display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr;}
  .about-img{
    position:relative; overflow:hidden; min-height:170px;
    display:flex; align-items:flex-end; padding:16px;
  }
  .about-img img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
  .about-img span{
    position:relative; z-index:1;
    font-family:var(--display); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
    color:#fff; background:rgba(0,0,0,.45); padding:5px 10px;
  }
  .about-img.a{background:linear-gradient(135deg,#5b4a34,#2c2318);}
  .about-img.b{background:linear-gradient(135deg,#3d3d3d,#191919);}
  .about-img.c{background:linear-gradient(135deg,#6b5738,#332a1b);}
  .about-img.d{background:linear-gradient(135deg,#494940,#1e1e1a);}

  /* ===== Projects ===== */
  .project-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .project-card{
    border:1px solid var(--line); background:var(--white);
  }
  .project-photo{
    height:210px;
    background:linear-gradient(135deg,#e9e3d5,#cfc6ae);
    position:relative; display:flex; align-items:center; justify-content:center;
  }
  .project-photo::before{content:'BEFORE / AFTER'; font-family:var(--display); font-size:11px; letter-spacing:.1em; color:#8a8270;}
  .project-photo img{width:100%; height:210px; object-fit:cover; display:block;}
  .project-photo.before-after{padding:0; display:flex;}
  .project-photo.before-after::before{content:none;}
  .project-photo.before-after .ba-half{position:relative; width:50%; height:210px; overflow:hidden;}
  .project-photo.before-after .ba-half:first-child{border-right:2px solid var(--gold);}
  .project-photo.before-after .ba-half img{width:100%; height:100%; object-fit:cover; display:block;}
  .project-photo.before-after .ba-label{
    position:absolute; bottom:8px; left:8px; z-index:1;
    font-family:var(--display); font-size:10px; letter-spacing:.12em; text-transform:uppercase;
    color:#fff; background:rgba(23,23,26,.72); padding:3px 8px; border-radius:var(--radius);
  }
  .project-body{padding:20px 22px;}
  .project-body .tag{font-family:var(--display); font-size:11px; letter-spacing:.1em; color:var(--gold-deep); text-transform:uppercase;}
  .project-body h3{font-size:16px; margin:8px 0 6px; text-transform:none; letter-spacing:0;}
  .project-body p{font-size:13.5px; color:var(--slate);}

  /* ===== Reviews ===== */
  .reviews{background:var(--ink); color:var(--paper);}
  .reviews .section-head .eyebrow{color:var(--gold-light);}
  .reviews .section-head p{color:#b9b6ab;}
  .review-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  .review-card{
    background:var(--ink-soft); border:1px solid var(--line-dark); padding:30px 28px;
  }
  .stars{display:flex; gap:4px; margin-bottom:16px;}
  .stars svg{width:16px; height:16px; fill:var(--gold-light);}
  .review-card p.quote{font-size:15px; color:#dcdad0; margin-bottom:20px; line-height:1.65;}
  .review-card .who{font-family:var(--display); font-size:13px; letter-spacing:.04em; color:var(--gold-light); text-transform:uppercase;}
  .review-card .where{font-size:12px; color:#8f8c82;}

  /* ===== Service Areas ===== */
  .areas-wrap{
    display:grid; grid-template-columns:1.1fr .9fr; gap:0;
    border:1px solid var(--line);
  }
  .areas-list{padding:52px; background:var(--white);}
  .areas-list .eyebrow{margin-bottom:10px;}
  .areas-list ul{margin-top:26px; display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  .areas-list li{display:flex; align-items:center; gap:10px; font-family:var(--display); font-size:14.5px; letter-spacing:.02em;}
  .areas-list li svg{width:16px; height:16px; stroke:var(--gold-deep); flex-shrink:0;}
  .areas-map{
    background:var(--paper-dim); display:flex; align-items:center; justify-content:center; padding:40px;
  }
  .areas-map svg{width:100%; max-width:280px;}

  /* ===== Contact / CTA ===== */
  .contact{background:var(--paper-dim);}
  .contact-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start;}
  .contact-info h2{font-size:clamp(24px,3.4vw,32px);}
  .contact-info p{color:var(--slate); margin:18px 0 26px; max-width:400px;}
  .contact-phone-big{
    font-family:var(--display); font-size:clamp(26px,3.4vw,34px); font-weight:600; letter-spacing:.02em;
    display:flex; align-items:center; gap:12px; margin-bottom:26px;
  }
  .contact-phone-big svg{width:24px; height:24px; stroke:var(--gold-deep);}
  .contact-hours{border-top:1px solid var(--line); padding-top:20px; font-size:14px; color:var(--slate);}
  .contact-hours div{display:flex; justify-content:space-between; max-width:280px; padding:4px 0;}

  form.estimate{
    background:var(--white); border:1px solid var(--line); padding:38px;
  }
  form.estimate .row{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px;}
  form.estimate label{
    display:block; font-family:var(--display); font-size:11.5px; letter-spacing:.08em;
    text-transform:uppercase; color:var(--slate); margin-bottom:8px;
  }
  form.estimate input, form.estimate select, form.estimate textarea{
    width:100%; border:1.5px solid var(--line); background:var(--paper);
    padding:12px 14px; font-family:var(--body); font-size:14.5px; color:var(--ink);
    border-radius:var(--radius);
  }
  form.estimate input:focus, form.estimate select:focus, form.estimate textarea:focus{
    outline:none; border-color:var(--gold);
  }
  form.estimate .full{margin-bottom:18px;}
  form.estimate button{width:100%; margin-top:6px; justify-content:center;}
  .form-note{font-size:12.5px; color:var(--slate); margin-top:14px; text-align:center;}
  #formSuccess{display:none; text-align:center; padding:20px 0;}
  #formSuccess.show{display:block;}
  #formSuccess svg{width:40px; height:40px; stroke:var(--gold-deep); margin:0 auto 14px;}

  /* ===== Footer ===== */
  footer{background:var(--ink); color:#c9c6bc; padding:56px 0 26px;}
  .footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid var(--line-dark);}
  .footer-grid h4{font-size:12.5px; letter-spacing:.1em; color:var(--paper); margin-bottom:16px;}
  .footer-grid ul li{margin-bottom:10px; font-size:14px;}
  .footer-grid ul li a:hover{color:var(--gold-light);}
  .footer-about p{font-size:14px; margin-top:14px; max-width:280px; color:#a3a39a;}
  .footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:22px; font-size:12.5px; color:#8f8c82; flex-wrap:wrap; gap:10px;}

  /* ===== Responsive ===== */
  @media (max-width:980px){
    nav.main-nav{display:none;}
    .menu-toggle{display:block;}
    .header-phone span.label-txt{display:none;}
    .service-grid{grid-template-columns:repeat(2,1fr);}
    .service-detail-grid{grid-template-columns:1fr;}
    .about-grid{grid-template-columns:1fr;}
    .about-images{grid-template-columns:1fr 1fr;}
    .project-grid{grid-template-columns:1fr 1fr;}
    .review-grid{grid-template-columns:1fr;}
    .areas-wrap{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
    form.estimate .row{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:600px){
    .service-grid{grid-template-columns:1fr;}
    .project-grid{grid-template-columns:1fr;}
    .hero-trust{gap:24px;}
    .footer-grid{grid-template-columns:1fr;}
  }
