:root {
--color-primary: #2c1810;
--color-secondary: #8b6f47;
--color-accent: #d4a574;
--color-light: #f5f1ed;
--color-white: #ffffff;
--color-text: #3a3a3a;
--color-text-light: #6a6a6a;

--font-display: 'Cormorant Garamond', serif;
--font-body: 'Work Sans', sans-serif;

--space-xs: 0.5rem;
--space-sm: 1rem;
--space-md: 2rem;
--space-lg: 4rem;
--space-xl: 6rem;

--radius-sm: 0.25rem;
--radius-md: 0.5rem;

--transition-base: 0.3s ease;
--transition-slow: 0.6s ease;

--shadow-sm: 0 2px 8px rgba(0,0,0,0.1);
--shadow-md: 0 4px 16px rgba(0,0,0,0.15);
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

html {
font-size: 100%;
scroll-behavior: smooth;
}

body {
font-family: var(--font-body);
font-size: 0.9rem;
line-height: 1.6;
color: var(--color-text);
background: var(--color-white);
overflow-x: hidden;
}

body.nav-active {
overflow: hidden;
}

h1, h2, h3, h4, h5, h6 {
font-family: var(--font-display);
font-weight: 400;
line-height: 1.2;
color: var(--color-primary);
}

h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.3rem; }

a {
color: inherit;
text-decoration: none;
transition: var(--transition-base);
}

img {
max-width: 100%;
height: auto;
display: block;
}

button {
font-family: inherit;
border: none;
background: none;
cursor: pointer;
}

.main-header {
position: absolute;
top: 0;
left: 0;
width: 100%;
z-index: 1000;
padding: var(--space-sm) 0;
background: linear-gradient(to bottom, rgba(0,0,0,0.3), transparent);
}

.header-container {
max-width: 90rem;
margin: 0 auto;
padding: 0 var(--space-sm);
display: flex;
justify-content: space-between;
align-items: center;
}

.brand-mark {
font-family: var(--font-display);
font-size: 1.3rem;
font-weight: 600;
color: var(--color-white);
letter-spacing: 0.05em;
}

.menu-trigger {
display: none;
flex-direction: column;
gap: 0.3rem;
padding: 0.5rem;
z-index: 1001;
}

.menu-trigger span {
width: 1.5rem;
height: 0.15rem;
background: var(--color-white);
transition: var(--transition-base);
}

.menu-trigger.active span:nth-child(1) {
transform: rotate(45deg) translate(6px, 6px);
}

.menu-trigger.active span:nth-child(2) {
opacity: 0;
}

.menu-trigger.active span:nth-child(3) {
transform: rotate(-45deg) translate(5px, -5px);
}

.primary-nav {
display: flex;
gap: var(--space-md);
}

.primary-nav a {
font-size: 0.85rem;
font-weight: 400;
color: var(--color-white);
text-transform: uppercase;
letter-spacing: 0.1em;
padding: 0.5rem 0;
position: relative;
}

.primary-nav a::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 1px;
background: var(--color-white);
transition: var(--transition-base);
}

.primary-nav a:hover::after {
width: 100%;
}

.hero-space {
min-height: 100vh;
display: grid;
grid-template-columns: 1fr 1fr;
align-items: center;
background: var(--color-primary);
color: var(--color-white);
position: relative;
}

.hero-content {
padding: var(--space-xl) var(--space-lg);
max-width: 40rem;
}

.hero-title {
font-size: 3.5rem;
font-weight: 300;
color: var(--color-white);
margin-bottom: var(--space-md);
line-height: 1.1;
}

.hero-text {
font-size: 1rem;
line-height: 1.8;
color: var(--color-light);
margin-bottom: var(--space-lg);
}

.hero-action {
margin-top: var(--space-md);
}

.primary-link {
display: inline-block;
padding: 0.8rem 2rem;
background: var(--color-accent);
color: var(--color-primary);
font-size: 0.85rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.1em;
transition: var(--transition-base);
}

.primary-link:hover {
background: var(--color-light);
transform: translateY(-2px);
}

.hero-visual {
height: 100vh;
overflow: hidden;
}

.hero-visual img {
width: 100%;
height: 100%;
object-fit: cover;
}

.philosophy-layer {
padding: var(--space-xl) var(--space-sm);
background: var(--color-light);
}

.philosophy-grid {
max-width: 75rem;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 2fr;
gap: var(--space-lg);
align-items: start;
}

.philosophy-statement h2 {
font-size: 2.5rem;
margin-bottom: var(--space-md);
}

.philosophy-statement p {
font-size: 1rem;
line-height: 1.8;
color: var(--color-text-light);
}

.philosophy-principles {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: var(--space-md);
}

.principle-item {
text-align: center;
}

.principle-item i {
font-size: 2rem;
color: var(--color-secondary);
margin-bottom: var(--space-sm);
}

.principle-item h3 {
font-size: 1.1rem;
margin-bottom: var(--space-xs);
}

.principle-item p {
font-size: 0.85rem;
line-height: 1.6;
color: var(--color-text-light);
}

.service-spectrum {
padding: var(--space-xl) var(--space-sm);
background: var(--color-white);
}

.spectrum-title {
text-align: center;
font-size: 2.5rem;
margin-bottom: var(--space-lg);
}

.spectrum-layout {
max-width: 75rem;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: var(--space-md);
}

.service-block {
padding: var(--space-md);
background: var(--color-light);
transition: var(--transition-base);
}

.service-block:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-md);
}

.service-icon {
font-size: 2.5rem;
color: var(--color-secondary);
margin-bottom: var(--space-sm);
}

.service-block h3 {
margin-bottom: var(--space-sm);
}

.service-block p {
font-size: 0.85rem;
line-height: 1.6;
color: var(--color-text-light);
}

.process-reveal {
background: var(--color-white);
padding: var(--space-xl) var(--space-sm);
}

.process-container {
max-width: 75rem;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1.5fr;
gap: var(--space-lg);
align-items: start;
}

.process-visual img {
width: 100%;
height: 100%;
object-fit: cover;
}

.process-narrative h2 {
font-size: 2.5rem;
margin-bottom: var(--space-lg);
}

.process-phase {
display: flex;
gap: var(--space-md);
margin-bottom: var(--space-md);
align-items: start;
}

.phase-number {
font-family: var(--font-display);
font-size: 2rem;
color: var(--color-accent);
font-weight: 300;
min-width: 3rem;
}

.phase-content h3 {
margin-bottom: var(--space-xs);
}

.phase-content p {
font-size: 0.85rem;
line-height: 1.6;
color: var(--color-text-light);
}

.material-focus {
padding: var(--space-xl) var(--space-sm);
background: var(--color-primary);
color: var(--color-white);
}

.focus-title {
text-align: center;
font-size: 2.5rem;
color: var(--color-white);
margin-bottom: var(--space-lg);
}

.material-grid {
max-width: 75rem;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: var(--space-md);
}

.material-card {
padding: var(--space-md);
background: rgba(255,255,255,0.05);
border: 1px solid rgba(255,255,255,0.1);
}

.material-card h3 {
color: var(--color-accent);
margin-bottom: var(--space-sm);
}

.material-card p {
font-size: 0.85rem;
line-height: 1.6;
color: var(--color-light);
}

.portfolio-glimpse {
padding: var(--space-xl) var(--space-sm);
background: var(--color-light);
}

.glimpse-header {
max-width: 50rem;
margin: 0 auto var(--space-lg);
text-align: center;
}

.glimpse-header h2 {
font-size: 2.5rem;
margin-bottom: var(--space-sm);
}

.glimpse-header p {
font-size: 1rem;
line-height: 1.8;
color: var(--color-text-light);
}

.portfolio-display {
max-width: 75rem;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: var(--space-lg);
}

.portfolio-piece {
background: var(--color-white);
overflow: hidden;
box-shadow: var(--shadow-sm);
}

.portfolio-piece img {
width: 100%;
height: 30rem;
object-fit: cover;
transition: var(--transition-slow);
}

.portfolio-piece:hover img {
transform: scale(1.05);
}

.portfolio-piece figcaption {
padding: var(--space-md);
font-size: 0.85rem;
line-height: 1.6;
color: var(--color-text-light);
}

.location-anchor {
padding: var(--space-xl) var(--space-sm);
background: var(--color-white);
}

.location-content {
max-width: 75rem;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1.5fr;
gap: var(--space-lg);
align-items: center;
}

.location-info h2 {
font-size: 2.5rem;
margin-bottom: var(--space-md);
}

.location-info p {
font-size: 1rem;
line-height: 1.8;
color: var(--color-text-light);
margin-bottom: var(--space-md);
}

.contact-details {
display: flex;
flex-direction: column;
gap: var(--space-sm);
}

.detail-item {
display: flex;
align-items: center;
gap: var(--space-sm);
font-size: 0.9rem;
}

.detail-item i {
color: var(--color-secondary);
width: 1.5rem;
}

.detail-item a:hover {
color: var(--color-secondary);
}

.location-map iframe {
width: 100%;
height: 25rem;
}

.site-footer {
background: var(--color-primary);
color: var(--color-light);
padding: var(--space-md) var(--space-sm);
}

.footer-content {
max-width: 75rem;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: var(--space-sm);
}

.footer-links {
display: flex;
gap: var(--space-md);
flex-wrap: wrap;
}

.footer-links a {
font-size: 0.8rem;
color: var(--color-light);
}

.footer-links a:hover {
color: var(--color-accent);
}

.footer-copy {
font-size: 0.8rem;
color: var(--color-light);
}

.privacy-notice {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: var(--color-primary);
color: var(--color-white);
padding: var(--space-sm);
transform: translateY(100%);
transition: var(--transition-base);
z-index: 2000;
}

.privacy-notice.show {
transform: translateY(0);
}

.notice-content {
max-width: 75rem;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
gap: var(--space-md);
flex-wrap: wrap;
}

.notice-content p {
font-size: 0.85rem;
flex: 1;
}

.notice-buttons {
display: flex;
gap: var(--space-sm);
align-items: center;
}

.notice-accept,
.notice-decline {
padding: 0.6rem 1.5rem;
font-size: 0.8rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.05em;
transition: var(--transition-base);
border: none;
cursor: pointer;
}

.notice-accept {
background: var(--color-accent);
color: var(--color-primary);
}

.notice-accept:hover {
background: var(--color-light);
}

.notice-decline {
background: transparent;
color: var(--color-white);
border: 1px solid var(--color-white);
}

.notice-decline:hover {
background: rgba(255, 255, 255, 0.1);
}

.subpage-hero {
padding: 8rem var(--space-sm) var(--space-lg);
background: var(--color-primary);
color: var(--color-white);
text-align: center;
}

.subpage-hero h1 {
font-size: 3rem;
color: var(--color-white);
margin-bottom: var(--space-sm);
}

.subpage-hero p {
font-size: 1rem;
color: var(--color-light);
max-width: 50rem;
margin: 0 auto;
}

.content-section {
padding: var(--space-lg) var(--space-sm);
}

.content-section:nth-child(even) {
background: var(--color-light);
}

.section-container {
max-width: 60rem;
margin: 0 auto;
}

.section-container h2 {
font-size: 2rem;
margin-bottom: var(--space-md);
}

.section-container p {
font-size: 0.95rem;
line-height: 1.8;
color: var(--color-text-light);
margin-bottom: var(--space-sm);
}

.section-container ul {
list-style: none;
margin: var(--space-md) 0;
}

.section-container li {
padding: var(--space-xs) 0 var(--space-xs) var(--space-md);
position: relative;
font-size: 0.9rem;
line-height: 1.6;
color: var(--color-text-light);
}

.section-container li::before {
content: '→';
position: absolute;
left: 0;
color: var(--color-secondary);
}

.areas-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: var(--space-md);
margin-top: var(--space-md);
}

.area-card {
padding: var(--space-md);
background: var(--color-white);
border-left: 3px solid var(--color-secondary);
}

.area-card h3 {
margin-bottom: var(--space-xs);
}

.area-card p {
font-size: 0.85rem;
}

.tips-grid {
display: grid;
gap: var(--space-md);
margin-top: var(--space-md);
}

.tip-card {
padding: var(--space-md);
background: var(--color-white);
border-radius: var(--radius-md);
box-shadow: var(--shadow-sm);
}

.tip-card h3 {
margin-bottom: var(--space-sm);
display: flex;
align-items: center;
gap: var(--space-sm);
}

.tip-card i {
color: var(--color-secondary);
}

.tip-card p {
font-size: 0.85rem;
}

.contact-form-section {
padding: var(--space-xl) var(--space-sm);
background: var(--color-light);
}

.form-container {
max-width: 50rem;
margin: 0 auto;
background: var(--color-white);
padding: var(--space-lg);
box-shadow: var(--shadow-md);
}

.form-container h2 {
font-size: 2.5rem;
margin-bottom: var(--space-sm);
text-align: center;
}

.form-intro {
text-align: center;
font-size: 0.95rem;
color: var(--color-text-light);
margin-bottom: var(--space-lg);
}

.form-group {
margin-bottom: var(--space-md);
}

.form-group label {
display: block;
font-size: 0.85rem;
font-weight: 500;
color: var(--color-text);
margin-bottom: var(--space-xs);
}

.form-group input,
.form-group textarea {
width: 100%;
padding: 0.8rem;
font-family: inherit;
font-size: 0.9rem;
border: 1px solid #ddd;
background: var(--color-light);
transition: var(--transition-base);
}

.form-group input:focus,
.form-group textarea:focus {
outline: none;
border-color: var(--color-secondary);
background: var(--color-white);
}

.form-group textarea {
min-height: 10rem;
resize: vertical;
}

.consent-group {
display: flex;
align-items: start;
gap: var(--space-sm);
margin: var(--space-md) 0;
}

.consent-group input[type="checkbox"] {
margin-top: 0.3rem;
width: auto;
}

.consent-group label {
font-size: 0.8rem;
line-height: 1.5;
color: var(--color-text-light);
}

.consent-group a {
color: var(--color-secondary);
text-decoration: underline;
}

.form-submit {
width: 100%;
padding: 1rem;
background: var(--color-primary);
color: var(--color-white);
font-size: 0.9rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.1em;
transition: var(--transition-base);
}

.form-submit:hover {
background: var(--color-secondary);
}

.thankyou-container {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: var(--space-lg) var(--space-sm);
}

.thankyou-content h1 {
font-size: 3rem;
margin-bottom: var(--space-md);
}

.thankyou-content p {
font-size: 1rem;
color: var(--color-text-light);
margin-bottom: var(--space-md);
line-height: 1.8;
}

.thankyou-content a {
display: inline-block;
margin-top: var(--space-md);
padding: 0.8rem 2rem;
background: var(--color-primary);
color: var(--color-white);
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.1em;
}

.thankyou-content a:hover {
background: var(--color-secondary);
}

.error-container {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: var(--space-lg) var(--space-sm);
}

.error-content h1 {
font-size: 6rem;
color: var(--color-accent);
margin-bottom: var(--space-sm);
}

.error-content h2 {
font-size: 2rem;
margin-bottom: var(--space-md);
}

.error-content p {
font-size: 1rem;
color: var(--color-text-light);
margin-bottom: var(--space-lg);
}

.error-content a {
display: inline-block;
padding: 0.8rem 2rem;
background: var(--color-primary);
color: var(--color-white);
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.1em;
}

.error-content a:hover {
background: var(--color-secondary);
}

@media (max-width: 768px) {
.menu-trigger {
display: flex;
}

.primary-nav {
position: fixed;
top: 0;
right: -100%;
width: 70%;
height: 100vh;
background: var(--color-primary);
flex-direction: column;
padding: 5rem var(--space-md) var(--space-md);
gap: var(--space-sm);
transition: var(--transition-base);
}

.primary-nav.active {
right: 0;
}

.hero-space {
grid-template-columns: 1fr;
min-height: auto;
}

.hero-content {
padding: 6rem var(--space-md) var(--space-lg);
}

.hero-title {
font-size: 2.5rem;
}

.hero-visual {
height: 50vh;
}

.philosophy-grid {
grid-template-columns: 1fr;
gap: var(--space-md);
}

.philosophy-principles {
grid-template-columns: 1fr;
}

.spectrum-layout {
grid-template-columns: 1fr;
}

.process-container {
grid-template-columns: 1fr;
}

.material-grid {
grid-template-columns: 1fr;
}

.portfolio-display {
grid-template-columns: 1fr;
}

.location-content {
grid-template-columns: 1fr;
}

.footer-content {
flex-direction: column;
text-align: center;
}

.footer-links {
flex-direction: column;
align-items: center;
}

.areas-grid {
grid-template-columns: 1fr;
}

h1 { font-size: 2rem; }
h2 { font-size: 1.6rem; }
h3 { font-size: 1.1rem; }

.subpage-hero {
padding: 6rem var(--space-sm) var(--space-md);
}

.subpage-hero h1 {
font-size: 2rem;
}
}

@media (max-width: 480px) {
:root {
--space-lg: 2rem;
--space-xl: 3rem;
}

.hero-title {
font-size: 2rem;
}

.hero-text {
font-size: 0.9rem;
}

body {
font-size: 0.85rem;
}

.notice-content {
flex-direction: column;
text-align: center;
}
}
