*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  /* 北村工務店：ネイビー＋ブラスオレンジ（一級建築士事務所の品格＋温かみ） */
  --navy:#1a2e4f;--navy-2:#243d6a;
  --orange:#cc6f3c;--orange-dark:#a8552a;
  --cream:#f4ede1;--cream-2:#ebe4d6;
  --gray:#525252;--gray-light:#8a8a8a;
  --white:#fff;
  --text:#1a1f2c;--border:#dcd6c8;
  --accent:#a8552a;
  --green:#3a6b4f; /* 安全・信頼 */
}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',sans-serif;color:var(--text);background:var(--white);line-height:1.7;}

img{display:block;max-width:100%;}
a{color:inherit;}

/* Demo tag */
.demo-tag{position:fixed;top:0;left:0;right:0;background:#1e293b;color:white;text-align:center;padding:6px;font-size:0.7rem;letter-spacing:0.1em;z-index:200;}

/* Header */
header{position:fixed;top:32px;left:0;right:0;background:var(--navy);z-index:100;height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 56px;border-bottom:3px solid var(--orange);}
.logo{display:flex;align-items:center;gap:14px;color:white;text-decoration:none;font-size:1.0rem;font-weight:900;}
.logo-mark{width:48px;height:48px;background:var(--orange);color:var(--navy);display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-weight:700;font-size:1.6rem;letter-spacing:-0.05em;}
.logo-text{display:flex;flex-direction:column;line-height:1.1;}
.logo-text small{font-size:0.6rem;opacity:0.7;letter-spacing:0.1em;font-weight:500;margin-top:3px;}
nav{display:flex;align-items:center;gap:6px;}
nav a{color:rgba(255,255,255,0.75);text-decoration:none;font-size:0.85rem;padding:8px 14px;font-weight:500;}
nav a:hover{color:var(--orange);}
nav a.current{color:var(--orange);}
.nav-cta{background:var(--orange)!important;color:var(--navy)!important;font-weight:900!important;padding:11px 22px!important;}

/* Hero */
.hero{padding:140px 80px 80px;background:var(--navy);min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;color:white;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;top:0;left:0;right:0;height:6px;background:repeating-linear-gradient(45deg,var(--orange) 0,var(--orange) 18px,var(--navy) 18px,var(--navy) 36px);}
.hero::after{content:'';position:absolute;bottom:-100px;right:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(204,111,60,0.08) 0%,transparent 70%);}
.hero-text{position:relative;z-index:1;}
.hero-tag{display:inline-flex;align-items:center;gap:10px;background:var(--orange);color:var(--navy);font-family:'Cormorant Garamond',serif;font-size:0.95rem;letter-spacing:0.15em;padding:6px 16px;font-weight:700;margin-bottom:28px;}
.hero h1{font-family:'Noto Serif JP',serif;font-size:clamp(2.6rem,4.8vw,4.6rem);font-weight:700;line-height:1.15;margin-bottom:14px;letter-spacing:-0.01em;color:white;}
.hero h1 em{font-style:normal;color:var(--orange);}
.hero-jp{font-size:clamp(1.2rem,2.0vw,1.6rem);font-weight:500;color:rgba(255,255,255,0.85);margin-bottom:32px;line-height:1.6;}
.hero p{color:rgba(255,255,255,0.7);font-size:0.95rem;line-height:2;margin-bottom:36px;max-width:520px;}
.hero-stats{display:flex;gap:14px;margin-bottom:36px;flex-wrap:wrap;}
.hero-stat{background:rgba(255,255,255,0.05);border:2px solid var(--orange);padding:14px 22px;text-align:center;}
.hero-stat strong{display:block;font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:700;color:var(--orange);line-height:1;}
.hero-stat span{font-size:0.72rem;color:rgba(255,255,255,0.7);font-weight:700;letter-spacing:0.1em;}
.btn{display:inline-block;background:var(--orange);color:var(--navy);padding:18px 40px;text-decoration:none;font-weight:700;font-size:0.95rem;letter-spacing:0.1em;font-family:'Noto Sans JP',sans-serif;transition:background 0.2s;cursor:pointer;border:none;}
.btn:hover{background:var(--orange-dark);color:white;}
.btn-out{background:transparent;border:2px solid white;color:white;margin-left:10px;}
.btn-out:hover{background:white;color:var(--navy);}
.hero-visual{display:flex;align-items:center;justify-content:center;position:relative;}
.hero-photo-card{width:100%;max-width:440px;aspect-ratio:4/5;position:relative;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,0.5);}
.hero-photo-card img{width:100%;height:100%;object-fit:cover;filter:contrast(1.05);}
.hero-photo-card::before{content:'';position:absolute;top:0;left:0;right:0;height:6px;background:var(--orange);z-index:2;}
.hero-photo-card::after{content:'EST. 1951';position:absolute;bottom:24px;left:0;right:0;color:var(--orange);font-family:'Cormorant Garamond',serif;font-size:1.4rem;letter-spacing:0.3em;font-weight:700;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,0.8);z-index:2;}

/* License badges */
.license-strip{background:var(--cream);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:28px 80px;display:flex;flex-wrap:wrap;gap:32px;justify-content:center;align-items:center;}
.license-item{display:flex;flex-direction:column;align-items:center;gap:4px;}
.license-item .l-en{font-family:'Cormorant Garamond',serif;color:var(--orange-dark);font-size:0.78rem;letter-spacing:0.2em;font-weight:700;}
.license-item .l-jp{font-size:0.95rem;font-weight:700;color:var(--navy);}
.license-item .l-num{font-size:0.78rem;color:var(--gray);font-family:'Cormorant Garamond',serif;letter-spacing:0.05em;}

/* Page hero */
.page-hero{padding:160px 80px 80px;background:var(--navy);color:white;position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:6px;background:repeating-linear-gradient(45deg,var(--orange) 0,var(--orange) 18px,var(--navy) 18px,var(--navy) 36px);}
.page-hero-inner{position:relative;z-index:1;max-width:1200px;margin:0 auto;}
.page-hero .crumb{font-family:'Cormorant Garamond',serif;color:var(--orange);font-size:0.9rem;letter-spacing:0.2em;font-weight:700;margin-bottom:14px;}
.page-hero h1{font-family:'Noto Serif JP',serif;font-size:clamp(2.0rem,4vw,3.4rem);font-weight:700;line-height:1.2;margin-bottom:14px;}
.page-hero p{color:rgba(255,255,255,0.7);font-size:0.95rem;line-height:2;max-width:640px;margin-top:18px;}

/* Section */
.section{padding:120px 80px;}
.section-tag{display:inline-flex;align-items:center;gap:10px;background:var(--navy);color:var(--orange);font-family:'Cormorant Garamond',serif;font-size:0.95rem;letter-spacing:0.2em;padding:5px 14px;font-weight:700;margin-bottom:18px;}
.section h2{font-family:'Noto Serif JP',serif;font-size:clamp(2.2rem,3.8vw,3.4rem);font-weight:700;line-height:1.2;margin-bottom:14px;}
.section h2 em{font-style:normal;color:var(--orange-dark);}
.section-jp{font-size:1.2rem;font-weight:700;margin-bottom:18px;}
.section-lead{color:var(--gray);font-size:0.95rem;line-height:2;max-width:560px;margin-bottom:48px;}

/* Services */
.services{background:var(--cream);}
.services-head{text-align:center;}
.services-head .section-lead{margin:0 auto 56px;}
.services-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.service-item{background:white;padding:48px 36px;border-bottom:5px solid var(--orange);position:relative;transition:transform 0.2s;}
.service-item:hover{transform:translateY(-4px);}
.service-item::before{content:attr(data-num);position:absolute;top:24px;right:24px;font-family:'Cormorant Garamond',serif;font-size:3rem;color:var(--cream-2);font-weight:700;line-height:1;}
.service-icon{width:60px;height:60px;background:var(--navy);color:var(--orange);display:flex;align-items:center;justify-content:center;margin-bottom:24px;}
.service-icon svg{width:28px;height:28px;}
.service-item h3{font-family:'Noto Serif JP',serif;font-size:1.4rem;font-weight:700;margin-bottom:6px;}
.service-item .h3-en{font-family:'Cormorant Garamond',serif;color:var(--orange-dark);font-size:0.9rem;letter-spacing:0.2em;font-weight:700;margin-bottom:14px;}
.service-item p{color:var(--gray);font-size:0.88rem;line-height:1.9;}

/* Works */
.works{background:white;}
.works-head{text-align:center;}
.works-head .section-lead{margin:0 auto 56px;}
.works-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;}
.work-card{position:relative;aspect-ratio:1;overflow:hidden;background:linear-gradient(135deg,var(--navy-2),var(--navy));display:flex;align-items:flex-end;padding:24px;color:white;cursor:pointer;text-decoration:none;}
.work-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(0.55) contrast(1.1);transition:transform 0.4s,filter 0.4s;}
.work-card:hover img{transform:scale(1.05);filter:brightness(0.7) contrast(1.1);}
.work-card::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,transparent 50%,rgba(0,0,0,0.7) 100%);z-index:1;}
.work-card-content{position:relative;z-index:2;}
.work-cat{font-family:'Cormorant Garamond',serif;color:var(--orange);font-size:0.85rem;letter-spacing:0.2em;font-weight:700;margin-bottom:10px;}
.work-card h3{font-size:1.05rem;font-weight:700;margin-bottom:6px;font-family:'Noto Serif JP',serif;}
.work-card p{font-size:0.78rem;color:rgba(255,255,255,0.8);}

/* Numbers */
.numbers{background:var(--navy);color:white;padding:96px 80px;border-top:6px solid var(--orange);border-bottom:6px solid var(--orange);}
.numbers-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.num-card{padding:24px;text-align:center;border-right:1px solid rgba(255,255,255,0.15);}
.num-card:last-child{border-right:none;}
.num-card .big{font-family:'Cormorant Garamond',serif;font-size:3.6rem;font-weight:700;color:var(--orange);line-height:1;}
.num-card .big span{font-size:1.2rem;}
.num-card .lbl{color:rgba(255,255,255,0.7);font-size:0.85rem;letter-spacing:0.1em;margin-top:10px;font-weight:500;}

/* Process steps */
.process{background:var(--cream);padding:120px 80px;}
.process-head{text-align:center;margin-bottom:64px;}
.process-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;}
.process-grid::before{content:'';position:absolute;top:36px;left:5%;right:5%;height:2px;background:var(--orange);z-index:0;}
.process-step{position:relative;z-index:1;text-align:center;padding:0 8px;}
.process-num{width:72px;height:72px;background:var(--navy);color:var(--orange);font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 22px;border:3px solid var(--orange);}
.process-step h3{font-family:'Noto Serif JP',serif;font-size:1.05rem;font-weight:700;margin-bottom:10px;color:var(--navy);}
.process-step p{font-size:0.8rem;color:var(--gray);line-height:1.85;}

/* Why us */
.why{background:white;}
.why-head{text-align:center;}
.why-head .section-lead{margin:0 auto 56px;}
.why-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.why-card{background:var(--cream);padding:36px 28px;border-top:4px solid var(--orange);}
.why-num{font-family:'Cormorant Garamond',serif;color:var(--orange-dark);font-size:1.3rem;letter-spacing:0.2em;font-weight:700;margin-bottom:14px;}
.why-card h3{font-size:1.1rem;font-weight:700;margin-bottom:10px;font-family:'Noto Serif JP',serif;}
.why-card p{font-size:0.85rem;color:var(--gray);line-height:1.9;}

/* CTA */
.cta-section{background:var(--orange);color:var(--navy);padding:96px 40px;text-align:center;position:relative;overflow:hidden;}
.cta-section::before{content:'';position:absolute;top:0;left:0;right:0;height:6px;background:repeating-linear-gradient(45deg,var(--navy) 0,var(--navy) 18px,var(--orange) 18px,var(--orange) 36px);}
.cta-section h2{color:var(--navy);font-family:'Noto Serif JP',serif;font-size:clamp(2rem,3.5vw,3rem);margin-bottom:14px;}
.cta-section p{color:rgba(0,0,0,0.7);font-size:1rem;margin-bottom:32px;}
.cta-section .btn{background:var(--navy);color:white;}
.cta-section .btn:hover{background:var(--navy-2);color:var(--orange);}

/* Generic */
.container{max-width:1100px;margin:0 auto;}
.container-narrow{max-width:840px;margin:0 auto;}

/* About: greeting */
.greeting{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;align-items:start;max-width:1100px;margin:0 auto;}
.greeting-photo{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--navy);}
.greeting-photo img{width:100%;height:100%;object-fit:cover;}
.greeting-photo::after{content:'';position:absolute;left:0;bottom:0;width:60%;height:6px;background:var(--orange);}
.greeting-text h3{font-family:'Noto Serif JP',serif;font-size:1.5rem;font-weight:700;margin-bottom:10px;line-height:1.5;}
.greeting-text .ceo-en{font-family:'Cormorant Garamond',serif;color:var(--orange-dark);font-size:1.0rem;letter-spacing:0.2em;font-weight:700;margin-bottom:24px;display:block;}
.greeting-text p{color:var(--gray);font-size:0.95rem;line-height:2;margin-bottom:18px;}
.greeting-sign{margin-top:28px;font-weight:700;font-size:1rem;font-family:'Noto Serif JP',serif;}
.greeting-sign small{display:block;color:var(--gray);font-weight:500;font-size:0.78rem;margin-bottom:6px;font-family:'Noto Sans JP',sans-serif;}

/* History */
.history{max-width:840px;margin:0 auto;}
.history-row{display:grid;grid-template-columns:140px 1fr;gap:32px;padding:22px 0;border-bottom:1px solid var(--border);}
.history-row:last-child{border-bottom:none;}
.history-year{font-family:'Cormorant Garamond',serif;color:var(--orange-dark);font-size:1.1rem;font-weight:700;}
.history-event{font-size:0.95rem;color:var(--text);line-height:1.7;}

/* Info table */
.info-table{width:100%;border-collapse:collapse;}
.info-table th,.info-table td{text-align:left;padding:18px 12px;border-bottom:1px solid var(--border);font-size:0.92rem;}
.info-table th{width:200px;color:var(--navy);font-weight:700;background:var(--cream);padding-left:20px;}
.info-table td{color:var(--text);line-height:1.8;}

/* Policy boxes */
.policy-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.policy-card{background:white;padding:32px 26px;border-left:4px solid var(--orange);box-shadow:0 4px 14px rgba(26,46,79,0.05);}
.policy-num{font-family:'Cormorant Garamond',serif;color:var(--orange);font-size:1rem;letter-spacing:0.2em;font-weight:700;margin-bottom:8px;}
.policy-card h4{font-family:'Noto Serif JP',serif;font-size:1.0rem;font-weight:700;margin-bottom:10px;}
.policy-card p{font-size:0.82rem;color:var(--gray);line-height:1.85;}

/* News */
.news-list{max-width:920px;margin:0 auto;}
.news-row{display:grid;grid-template-columns:120px 100px 1fr;gap:24px;align-items:start;padding:24px 0;border-bottom:1px solid var(--border);}
.news-date{font-family:'Cormorant Garamond',serif;color:var(--gray-light);font-size:0.95rem;font-weight:700;letter-spacing:0.05em;}
.news-cat{font-family:'Cormorant Garamond',serif;font-size:0.72rem;letter-spacing:0.15em;font-weight:700;background:var(--navy);color:var(--orange);padding:4px 8px;text-align:center;}
.news-cat.notice{background:var(--orange);color:var(--navy);}
.news-cat.media{background:var(--accent);color:white;}
.news-title{font-size:0.98rem;font-weight:500;color:var(--text);}

/* Contact form */
.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;max-width:1100px;margin:0 auto;}
.contact-info h3{font-family:'Noto Serif JP',serif;font-size:1.1rem;font-weight:700;margin-bottom:14px;}
.contact-info-block{margin-bottom:32px;padding-bottom:20px;border-bottom:1px solid var(--border);}
.contact-info-block .lbl{font-family:'Cormorant Garamond',serif;color:var(--orange-dark);font-size:0.88rem;letter-spacing:0.2em;font-weight:700;margin-bottom:6px;}
.contact-info-block .v{font-size:1.1rem;font-weight:700;line-height:1.6;font-family:'Noto Serif JP',serif;}
.contact-info-block .v small{display:block;font-size:0.78rem;font-weight:500;color:var(--gray);margin-top:4px;font-family:'Noto Sans JP',sans-serif;}
.contact-form{background:var(--cream);padding:48px;}
.field{margin-bottom:22px;}
.field label{display:block;font-size:0.85rem;font-weight:700;margin-bottom:8px;}
.field label .req{color:var(--accent);font-size:0.75rem;margin-left:6px;}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:2px solid var(--border);font-family:inherit;font-size:0.95rem;background:white;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--orange);}
.field textarea{min-height:140px;resize:vertical;}
.contact-form .btn{width:100%;padding:18px;border:none;cursor:pointer;}

/* Recruit specific */
.recruit-hero{padding:160px 80px 80px;background:var(--navy);color:white;position:relative;overflow:hidden;}
.recruit-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:6px;background:var(--orange);}
.recruit-hero-inner{position:relative;z-index:1;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center;}
.recruit-hero h1{font-family:'Noto Serif JP',serif;font-size:clamp(2.4rem,4.5vw,3.8rem);font-weight:700;line-height:1.2;margin-bottom:18px;}
.recruit-hero h1 em{font-style:normal;color:var(--orange);}
.recruit-hero p{color:rgba(255,255,255,0.8);font-size:1rem;line-height:2;}

.voices{background:var(--cream);padding:120px 80px;}
.voices-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.voice-card{background:white;padding:36px 28px;border-top:4px solid var(--orange);}
.voice-photo{width:96px;height:96px;border-radius:50%;background:var(--cream);overflow:hidden;margin-bottom:18px;border:3px solid var(--orange);}
.voice-photo img{width:100%;height:100%;object-fit:cover;}
.voice-name{font-family:'Noto Serif JP',serif;font-size:1.05rem;font-weight:700;}
.voice-meta{font-family:'Cormorant Garamond',serif;color:var(--orange-dark);font-size:0.78rem;letter-spacing:0.15em;font-weight:700;margin-bottom:18px;}
.voice-card blockquote{font-size:0.9rem;color:var(--gray);line-height:1.95;font-style:italic;}

.jobs{padding:120px 80px;}
.jobs-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.job-card{background:var(--cream);padding:36px 28px;border-left:4px solid var(--orange);}
.job-card h3{font-family:'Noto Serif JP',serif;font-size:1.2rem;font-weight:700;margin-bottom:14px;color:var(--navy);}
.job-card .job-tag{display:inline-block;background:var(--orange);color:var(--navy);font-family:'Cormorant Garamond',serif;font-size:0.72rem;letter-spacing:0.15em;font-weight:700;padding:3px 10px;margin-bottom:18px;}
.job-card dl{font-size:0.85rem;line-height:1.8;}
.job-card dt{font-weight:700;color:var(--navy);margin-top:10px;}
.job-card dd{color:var(--gray);margin-left:0;}

/* Footer */
footer{background:var(--navy);color:rgba(255,255,255,0.6);padding:64px 80px 32px;}
.footer-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,0.1);margin-bottom:24px;}
.footer-logo{display:flex;align-items:center;gap:14px;color:white;font-size:1rem;font-weight:700;margin-bottom:14px;font-family:'Noto Serif JP',serif;}
.footer-info{font-size:0.82rem;line-height:2;}
.footer-nav{display:flex;flex-direction:column;gap:8px;}
.footer-nav a{color:rgba(255,255,255,0.5);text-decoration:none;font-size:0.85rem;}
.footer-nav a:hover{color:var(--orange);}
.footer-copy{font-size:0.72rem;color:rgba(255,255,255,0.3);text-align:center;}

/* Mobile */
@media(max-width:900px){
  header{padding:0 20px;height:64px;}
  nav a:not(.nav-cta){display:none;}
  .hero{grid-template-columns:1fr;padding:120px 20px 60px;}
  .page-hero,.recruit-hero{padding:120px 20px 60px;}
  .recruit-hero-inner{grid-template-columns:1fr;}
  .section,.numbers,.process,.voices,.jobs{padding:64px 20px;}
  .services-grid,.works-grid{grid-template-columns:1fr;}
  .numbers-grid{grid-template-columns:1fr 1fr;}
  .num-card{border-right:0;border-bottom:1px solid rgba(255,255,255,0.15);}
  .why-grid,.policy-grid,.voices-grid,.jobs-grid{grid-template-columns:1fr;}
  .process-grid{grid-template-columns:1fr;gap:24px;}
  .process-grid::before{display:none;}
  .cta-section{padding:64px 20px;}
  footer{padding:48px 20px 24px;}
  .greeting,.contact-grid{grid-template-columns:1fr;gap:36px;}
  .news-row{grid-template-columns:1fr;gap:6px;}
  .history-row{grid-template-columns:90px 1fr;gap:16px;}
  .info-table th{width:110px;padding-left:10px;font-size:0.82rem;}
  .contact-form{padding:32px 20px;}
  .license-strip{padding:20px;flex-direction:column;gap:16px;}
}
